@font-face {
    font-family: "SBI Inter";
    src: url("fonts/inter-latin-wght-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 100 900;
    unicode-range: U+0000-024F, U+1E00-1EFF;
}

:root {
    --sbi-global-shell-width: 80rem;
    --sbi-global-header-height: 4.25rem;
    --sbi-global-header-bg: #050308;
    --sbi-global-shell-purple: #c59cff;
    --sbi-global-shell-purple-soft: #d8bdff;
    --sbi-global-shell-ink: #090315;
    --sbi-global-font-display: "SBI Geist", "SBI Inter", Geist, Inter, Arial, sans-serif;
    --sbi-global-font-body: "SBI Inter", Inter, Arial, sans-serif;
    --sbi-global-weight-display: 900;
    --sbi-global-weight-ui: 800;
    --sbi-global-weight-body: 600;
}

@font-face {
    font-family: "SBI Inter";
    src: url("fonts/inter-greek-wght-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 100 900;
    unicode-range: U+0370-03FF;
}

@font-face {
    font-family: "SBI Geist";
    src: url("fonts/geist-latin-wght-normal.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 100 900;
}

.sbi-global-header,
.sbi-global-header *,
.sbi-global-footer,
.sbi-global-footer *,
.sbi-footer-marquee,
.sbi-footer-marquee * { box-sizing: border-box; }

/* The React bundle still contains its legacy shell for backwards-compatible
   content rendering. The server-rendered shared shell is the single visible
   header/footer on the homepage and every standalone route. */
[data-sbi-v53-root] header,
[data-sbi-v53-root] footer { display: none !important; }

.sbi-global-header {
    position: fixed;
    z-index: 240;
    top: 0;
    right: 0;
    left: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: #fff;
    background: var(--sbi-global-header-bg);
    font-family: var(--sbi-global-font-body);
    font-size: 1rem;
    font-synthesis: none;
    line-height: 1;
    isolation: isolate;
    -webkit-backdrop-filter: blur(24px);
    backdrop-filter: blur(24px);
}

body.admin-bar .sbi-global-header { top: 32px; }

.sbi-global-header-inner {
    display: flex;
    width: min(100%, var(--sbi-global-shell-width));
    min-height: var(--sbi-global-header-height);
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-inline: auto;
    padding: .75rem;
}

.sbi-global-brand {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: .75rem;
    color: #fff;
    text-decoration: none;
}

.sbi-global-mark {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    flex: none;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: .75rem;
    color: #090315;
    background: #fff;
    font-family: var(--sbi-global-font-display);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: -.04em;
}

.sbi-global-brand-name {
    display: none;
    overflow: hidden;
    color: rgba(255, 255, 255, .92);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sbi-global-desktop-nav { display: none; }

.sbi-global-desktop-nav a {
    position: relative;
    padding: .5rem 0;
    color: rgba(255, 255, 255, .88);
    font-size: .96rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: color .2s ease;
}

.sbi-global-desktop-nav a::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: #c59cff;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease;
}

.sbi-global-desktop-nav a:hover,
.sbi-global-desktop-nav a:focus-visible { color: #c59cff; }
.sbi-global-desktop-nav a:hover::after,
.sbi-global-desktop-nav a:focus-visible::after { transform: scaleX(1); }
.sbi-global-desktop-nav a[aria-current="location"] { color: #d8bdff; }
.sbi-global-desktop-nav a[aria-current="location"]::after { transform: scaleX(1); }

.sbi-global-actions { display: flex; align-items: center; gap: .5rem; }

.sbi-global-header-cta {
    display: none;
    align-items: center;
    min-height: 2.75rem;
    padding: 0 1.5rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, .04);
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1;
    text-decoration: none;
    transition: border-color .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease;
}

.sbi-global-header-cta:hover,
.sbi-global-header-cta:focus-visible {
    border-color: rgba(197, 156, 255, .5);
    color: #090315;
    background: #c59cff;
    box-shadow: 0 0 28px rgba(197, 156, 255, .28);
}

.sbi-global-language {
    display: flex;
    padding: .25rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    background: rgba(255, 255, 255, .04);
    font-size: .7rem;
    font-weight: 800;
    line-height: 1;
}

.sbi-global-language button {
    min-width: 2.5rem;
    min-height: 2.25rem;
    padding: 0 .625rem;
    border: 0;
    border-radius: 999px;
    color: rgba(255, 255, 255, .7);
    background: transparent;
    cursor: pointer;
    font: inherit;
    transition: color .2s ease, background .2s ease;
}

.sbi-global-language button[aria-pressed="true"] { color: #090315; background: #fff; }

.sbi-global-sound,
.sbi-global-menu-toggle {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    flex: none;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    color: rgba(255, 255, 255, .8);
    background: rgba(255, 255, 255, .04);
    cursor: pointer;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}

.sbi-global-sound { display: none; }
.sbi-global-sound:hover,
.sbi-global-menu-toggle:hover { border-color: rgba(197, 156, 255, .5); color: #c59cff; }
.sbi-global-header svg { width: 1rem; height: 1rem; }
.sbi-global-volume-off,
.sbi-global-menu-close { display: none; }
.sbi-global-sound[aria-pressed="false"] .sbi-global-volume-on,
.sbi-global-mobile-sound[aria-pressed="false"] .sbi-global-volume-on { display: none; }
.sbi-global-sound[aria-pressed="false"] .sbi-global-volume-off,
.sbi-global-mobile-sound[aria-pressed="false"] .sbi-global-volume-off { display: inline-flex; }
.sbi-global-menu-toggle[aria-expanded="true"] .sbi-global-menu-open { display: none; }
.sbi-global-menu-toggle[aria-expanded="true"] .sbi-global-menu-close { display: inline-flex; }

.sbi-global-mobile-menu {
    overflow-y: auto;
    max-height: calc(100svh - 4.25rem);
    padding: 1rem 1rem 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
    background: rgba(0, 0, 0, .96);
    -webkit-backdrop-filter: blur(24px);
    backdrop-filter: blur(24px);
}

.sbi-global-mobile-menu[hidden] { display: none !important; }
.sbi-global-mobile-menu nav { display: grid; width: min(100%, 80rem); gap: .5rem; margin-inline: auto; }

.sbi-global-mobile-menu a,
.sbi-global-mobile-sound {
    display: flex;
    width: 100%;
    min-height: 3rem;
    align-items: center;
    justify-content: space-between;
    padding: 0 1rem;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 1rem;
    color: #fff;
    background: rgba(255, 255, 255, .035);
    font-size: 1rem;
    font-weight: 800;
    text-decoration: none;
}

.sbi-global-mobile-menu a:hover,
.sbi-global-mobile-sound:hover { border-color: rgba(197, 156, 255, .4); background: rgba(197, 156, 255, .12); }
.sbi-global-mobile-menu a > svg { width: 1rem; height: 1rem; color: #c59cff; }
.sbi-global-mobile-sound { cursor: pointer; font-family: inherit; }
.sbi-global-mobile-sound-label { display: inline-flex; align-items: center; gap: .75rem; }
.sbi-global-mobile-sound-label svg { width: 1.25rem; height: 1.25rem; color: #c59cff; }
.sbi-global-mobile-sound > i { width: .625rem; height: .625rem; border-radius: 50%; background: #6ee7b7; box-shadow: 0 0 14px rgba(52, 211, 153, .65); }
.sbi-global-mobile-sound[aria-pressed="false"] > i { background: rgba(255, 255, 255, .24); box-shadow: none; }
.sbi-global-mobile-cta { justify-content: center !important; gap: .5rem; margin-top: .5rem; color: #090315 !important; background: #fff !important; font-size: .875rem !important; letter-spacing: .06em; }
.sbi-global-mobile-cta svg { color: #090315 !important; }

.sbi-global-progress {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, #c59cff, #d8bdff, #fff);
    box-shadow: 0 0 14px rgba(197, 156, 255, .58);
    transform: scaleX(0);
    transform-origin: 0 50%;
    will-change: transform;
}

.sbi-global-header :is(a, button):focus-visible,
.sbi-global-footer a:focus-visible,
.sbi-footer-marquee a:focus-visible { outline: 2px solid #d8bdff; outline-offset: 3px; }

.sbi-footer-marquee {
    position: relative;
    z-index: 12;
    display: flex;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, .1);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: #090315;
    background: #fff;
    font-family: var(--sbi-global-font-body);
}

.sbi-footer-marquee-track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: sbi-global-footer-loop 44s linear infinite;
}

.sbi-footer-marquee:hover .sbi-footer-marquee-track,
.sbi-footer-marquee:focus-within .sbi-footer-marquee-track { animation-play-state: paused; }

.sbi-footer-marquee-group {
    display: flex;
    align-items: center;
    flex: none;
    gap: clamp(1.35rem, 2.4vw, 3rem);
    padding-right: clamp(1.35rem, 2.4vw, 3rem);
}

.sbi-footer-marquee-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.15rem 1.4rem;
    color: #090315;
    font-family: var(--sbi-global-font-display);
    font-size: clamp(1rem, 2vw, 1.85rem);
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: color .2s ease, background-color .2s ease;
}

.sbi-footer-marquee-link:hover,
.sbi-footer-marquee-link:focus-visible { color: #fff; background: #4c1d95; outline: 0; }
.sbi-footer-marquee-separator { display: inline-flex; align-items: center; justify-content: center; color: #c59cff; font-size: 1rem; }

.sbi-global-footer {
    position: relative;
    z-index: 12;
    padding: 2rem 1rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: #fff;
    background: #090315;
    font-family: var(--sbi-global-font-body);
    font-size: 1rem;
    font-synthesis: none;
    line-height: 1.4;
}

.sbi-global-footer-inner {
    display: flex;
    width: min(100%, var(--sbi-global-shell-width));
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    margin-inline: auto;
    color: rgba(255, 255, 255, .62);
    font-size: .875rem;
    text-align: center;
}

.sbi-global-footer p { margin: 0; }
.sbi-global-socials { display: flex; justify-content: center; gap: .75rem; }

.sbi-global-socials a {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    color: rgba(255, 255, 255, .68);
    background: rgba(255, 255, 255, .035);
    text-decoration: none;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}

.sbi-global-socials a:hover { border-color: rgba(197, 156, 255, .45); color: #fff; background: rgba(197, 156, 255, .2); }
.sbi-global-socials svg { width: 1rem; height: 1rem; }
.sbi-global-footer-copy { color: rgba(255, 255, 255, .62); font-weight: 700; }

/* Keep the shared shell identical even when a standalone route loads its own link defaults later. */
.sbi-global-header .sbi-global-brand { color: #fff; }
.sbi-global-header .sbi-global-desktop-nav a { color: rgba(255, 255, 255, .88); }
.sbi-global-header .sbi-global-desktop-nav a:hover,
.sbi-global-header .sbi-global-desktop-nav a:focus-visible { color: #c59cff; }
.sbi-global-header .sbi-global-header-cta { color: #fff; }
.sbi-global-header .sbi-global-header-cta:hover,
.sbi-global-header .sbi-global-header-cta:focus-visible { color: #090315; }
.sbi-global-footer .sbi-global-socials a { color: rgba(255, 255, 255, .68); }
.sbi-global-footer .sbi-global-socials a:hover { color: #fff; }

/* V5.4.4.1 global shell lock. Every route uses these explicit type metrics,
   regardless of theme or page-level link/button resets loaded afterwards. */
[data-sbi-global-header] .sbi-global-brand {
    font: var(--sbi-global-weight-ui) .82rem/1 var(--sbi-global-font-body);
}
[data-sbi-global-header] .sbi-global-mark {
    font: var(--sbi-global-weight-display) .75rem/1 var(--sbi-global-font-display);
}
[data-sbi-global-header] .sbi-global-brand-name {
    font: var(--sbi-global-weight-ui) .82rem/1 var(--sbi-global-font-body);
    letter-spacing: .12em;
}
[data-sbi-global-header] .sbi-global-desktop-nav > a {
    font: 700 .96rem/1 var(--sbi-global-font-body);
}
[data-sbi-global-header] .sbi-global-header-cta {
    font: var(--sbi-global-weight-ui) .84rem/1 var(--sbi-global-font-body);
    letter-spacing: .06em;
}
[data-sbi-global-header] .sbi-global-language,
[data-sbi-global-header] .sbi-global-language > button {
    font: var(--sbi-global-weight-ui) .7rem/1 var(--sbi-global-font-body);
}
[data-sbi-global-header] .sbi-global-mobile-menu :is(a, button) {
    font: var(--sbi-global-weight-ui) 1rem/1.2 var(--sbi-global-font-body);
}
#sbi-footer-marquee .sbi-footer-marquee-link {
    color: var(--sbi-global-shell-ink);
    font: var(--sbi-global-weight-display) clamp(1rem, 2vw, 1.85rem)/1 var(--sbi-global-font-display);
    letter-spacing: -.04em;
}
#sbi-footer-marquee .sbi-footer-marquee-link:is(:hover, :focus-visible) {
    color: #fff;
    background: #4c1d95;
}
[data-sbi-global-footer] .sbi-global-footer-inner {
    font: 400 .875rem/1.4 var(--sbi-global-font-body);
}
[data-sbi-global-footer] .sbi-global-footer-copy {
    font: 700 .875rem/1.4 var(--sbi-global-font-body);
}

#sbi-case-content { scroll-margin-top: 5.25rem; }

/* Shared, crawlable navigation keeps the existing footer's visual footprint. */
[data-sbi-global-footer] .sbi-footer-capabilities { display:flex; flex-wrap:wrap; justify-content:center; gap:.3rem .85rem; }
[data-sbi-global-footer] .sbi-footer-capabilities > a { color:inherit; display:inline-flex; align-items:center; min-height:44px; max-width:100%; text-decoration:none; text-wrap:balance; }
[data-sbi-global-footer] .sbi-footer-capabilities > a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
[data-sbi-global-footer] .sbi-footer-capabilities > a:focus-visible { outline:2px solid #c59cff; outline-offset:4px; }
.sbi-case-service-links { padding-block:2rem; }
.sbi-case-service-links h2 { font-size:clamp(1.25rem,2vw,1.75rem); line-height:1.3; }
.sbi-case-service-links nav { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; }
.sbi-case-service-links a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; color:#d6c1f0; line-height:1.6; text-underline-offset:4px; overflow-wrap:anywhere; }
.sbi-case-service-links a:focus-visible { outline:2px solid #c59cff; outline-offset:4px; }

@keyframes sbi-global-footer-loop { to { transform: translateX(-50%); } }

@media (min-width: 768px) {
    .sbi-global-header-inner { padding-inline: 2rem; }
    .sbi-global-brand-name { display: block; }
    .sbi-global-mark { width: 2.75rem; height: 2.75rem; border-radius: 1rem; font-size: .875rem; }
    [data-sbi-global-header] .sbi-global-mark { font-size: .875rem; }
}

@media (min-width: 1024px) {
    .sbi-global-desktop-nav { display: flex; align-items: center; gap: 1.25rem; }
    .sbi-global-sound { display: grid; }
    .sbi-global-menu-toggle,
    .sbi-global-mobile-menu { display: none !important; }
}

@media (min-width: 1280px) {
    .sbi-global-desktop-nav { gap: 1.75rem; }
    .sbi-global-header-cta { display: inline-flex; }
}

@media (max-width: 782px) {
    body.admin-bar .sbi-global-header { top: 46px; }
}

@media (max-width: 640px) {
    .sbi-footer-marquee-group { gap: 1rem; padding-right: 1rem; }
    .sbi-footer-marquee-link { padding: 1rem .85rem; font-size: 1.05rem; }
}

@media (prefers-reduced-motion: reduce) {
    .sbi-footer-marquee-track { animation: none; }
    .sbi-footer-marquee-group[aria-hidden="true"] { display: none; }
    .sbi-global-header *,
    .sbi-global-footer *,
    .sbi-footer-marquee * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
