/* V5.5.4B: responsive reading/touch/accessibility layer. No media or performance rewrite. */
:root { --sbi-global-shell-width:90rem; --sbi-global-header-height:4.75rem; }
.sbi-skip-link { position:fixed; z-index:1000001; top:8px; left:16px; padding:12px 20px; border-radius:8px; background:#fff; color:#21102e; font:700 16px/1.4 "SBI Inter",Arial,sans-serif; transform:translateY(-160%); text-decoration:none; }
.sbi-skip-link:focus { transform:translateY(0); outline:3px solid #a267e9; outline-offset:3px; }
.sbi-global-header-inner { padding-left:max(1rem,env(safe-area-inset-left)); padding-right:max(1rem,env(safe-area-inset-right)); }
.sbi-global-header .sbi-global-language > button { min-width:44px; min-height:44px; }
.sbi-global-header :is(.sbi-global-menu-toggle,.sbi-global-sound) { min-width:44px; min-height:44px; }
.sbi-global-desktop-nav a { display:inline-flex; align-items:center; min-height:44px; }
.sbi-global-mobile-menu { max-height:calc(100vh - var(--sbi-global-header-height)); max-height:calc(100dvh - var(--sbi-global-header-height)); overflow-y:auto; overscroll-behavior:contain; padding-bottom:max(1.25rem,env(safe-area-inset-bottom)); }
.sbi-global-mobile-menu nav { max-width:54rem; margin-inline:auto; }
.sbi-global-mobile-menu nav a { min-height:52px; }
.sbi-global-header [data-sbi-global-section] { overflow-wrap:anywhere; }
body.sbi-menu-open { overflow:hidden; }
body.admin-bar .sbi-global-mobile-menu { max-height:calc(100dvh - var(--sbi-global-header-height) - 46px); }
/* A desktop nav was previously enabled at 1024px, where long Greek labels compete with the brand. */
@media (min-width:1024px) and (max-width:1279px) {
    .sbi-global-desktop-nav { display:none; }
    .sbi-global-menu-toggle { display:grid !important; }
    .sbi-global-mobile-menu:not([hidden]) { display:block !important; }
}
@media (min-width:1280px) { .sbi-global-header-inner { padding-inline:2rem; }.sbi-global-desktop-nav { gap:1.2rem; } }
@media (min-width:1280px) and (max-width:1439px) { .sbi-global-brand-name { display:none; } }
@media (min-width:1440px) { .sbi-global-brand-name { font-size:.74rem !important; letter-spacing:.08em !important; } }
:is([data-sbi-v53-root],[data-sbi-case-root],[data-sbi-404-root],[data-sbi-global-header],[data-sbi-global-footer]) :is(a,button,input,select,textarea,summary,[tabindex="0"]):focus-visible { outline:3px solid #bb8cee; outline-offset:4px; }
[data-sbi-v53-root] .sbi-hero { padding-top:clamp(8rem,11vw,10.5rem) !important; padding-bottom:clamp(3rem,5vw,5rem) !important; }
[data-sbi-v53-root] .sbi-hero h1 { max-width:16ch; margin-inline:auto; font-size:clamp(3rem,7vw,7.3rem) !important; line-height:.99 !important; letter-spacing:-.055em !important; text-wrap:balance; }
[data-sbi-v53-root] .sbi-hero h2 { max-width:42ch; margin-inline:auto; font-size:clamp(1.25rem,2.1vw,1.8rem) !important; font-weight:650 !important; line-height:1.35 !important; letter-spacing:-.025em !important; text-wrap:balance; }
[data-sbi-v53-root] :is(.sbi-v54-copy,.sbi-service-body > p,.sbi-contact-copy) { font-weight:500 !important; line-height:1.75 !important; }
[data-sbi-v53-root] .sbi-v54-copy { color:rgba(255,255,255,.76); }
[data-sbi-v53-root] :is(.sbi-v54-title,.sbi-service-title,.sbi-faq-item h3) { overflow-wrap:break-word; }
[data-sbi-v53-root] .sbi-faq-item summary { min-height:52px; }
[data-sbi-v53-root] :is(#contact,.sbi-faq-section) { scroll-margin-top:6rem; }
[data-sbi-v53-root] #contact :is(a,button) { min-height:48px; }
.sbi-case-hero { padding-top:clamp(8rem,10vw,10rem); }
.sbi-case-hero h1 { max-width:14ch; font-size:clamp(3.25rem,8.3vw,8rem); line-height:.96; letter-spacing:-.065em; overflow-wrap:break-word; }
.sbi-case-root :is(.sbi-case-lead,.sbi-case-section-copy,.sbi-case-story-grid p,.sbi-case-deliverables p) { font-size:clamp(1rem,1.2vw,1.125rem); font-weight:500; line-height:1.75; }
.sbi-case-lead { max-width:58ch; }
.sbi-case-services { flex-wrap:wrap; }
.sbi-case-services span { font-size:.75rem; line-height:1.4; }
.sbi-case-root :is(.sbi-case-primary,.sbi-case-social,.sbi-case-project-nav a) { min-height:48px; }
.sbi-case-project-nav a { min-width:0; }
.sbi-case-project-nav strong { overflow-wrap:break-word; line-height:1.25; }
.sbi-v55-portfolio-filters { flex-wrap:wrap; }
.sbi-v55-portfolio-filters button { min-height:44px; }
.sbi-portfolio-lightbox-dialog { max-height:calc(100vh - 2rem); max-height:calc(100dvh - 2rem); }
.sbi-portfolio-lightbox-info { overscroll-behavior:contain; }
.sbi-portfolio-lightbox :is(button,a) { touch-action:manipulation; }
.sbi-global-footer-inner { gap:1.5rem; padding-bottom:max(1.5rem,env(safe-area-inset-bottom)); }
.sbi-global-socials a { min-height:44px; min-width:44px; }
.sbi-footer-marquee:focus-within .sbi-footer-marquee-track { animation-play-state:paused; }
@media (min-width:641px) and (max-width:1023px) {
    [data-sbi-v53-root] :is(.sbi-rhythm-section,.sbi-v54-section) { padding-top:4.5rem !important; padding-bottom:4.5rem !important; }
    .sbi-case-story-grid { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
    .sbi-case-story-grid article { padding:1.75rem; }
    .sbi-case-hero h1 { font-size:clamp(3.25rem,9vw,6.5rem); }
}
@media (max-width:640px) {
    [data-sbi-v53-root] .sbi-hero { min-height:auto; padding-top:7.5rem !important; padding-bottom:3.25rem !important; }
    [data-sbi-v53-root] .sbi-hero h1 { font-size:clamp(2.5rem,10.7vw,4.25rem) !important; line-height:1.03 !important; letter-spacing:-.045em !important; }
    [data-sbi-v53-root] .sbi-hero h2 { font-size:clamp(1.15rem,4.8vw,1.5rem) !important; line-height:1.45 !important; max-width:30ch; }
    [data-sbi-v53-root] .sbi-hero a { min-height:48px; }
    [data-sbi-v53-root] :is(.sbi-v54-copy,.sbi-service-body > p,.sbi-contact-copy) { font-size:1rem !important; }
    [data-sbi-v53-root] .sbi-visual-stage { touch-action:pan-y; }
    [data-sbi-v53-root] :is(input,select,textarea) { font-size:16px; }
    .sbi-case-hero { padding:7.5rem 0 3rem; }
    .sbi-case-hero h1 { max-width:100%; font-size:clamp(2.5rem,12vw,4.75rem); line-height:1; }
    .sbi-case-root .sbi-case-lead { font-size:1rem; line-height:1.7; }
    .sbi-case-services { gap:.5rem; }
    .sbi-case-project-nav { grid-template-columns:minmax(0,1fr); gap:.75rem; }
    .sbi-case-project-nav a { padding:1.25rem; text-align:left; }
    .sbi-case-project-nav strong { font-size:1.25rem; }
    .sbi-case-story-grid p { line-height:1.75; }
    .sbi-global-footer-inner { align-items:flex-start; text-align:left; }
}
@media (max-width:620px) {
    .sbi-portfolio-lightbox-dialog { height:100vh; height:100dvh; max-height:100vh; max-height:100dvh; }
    .sbi-portfolio-lightbox-close { top:max(.7rem,env(safe-area-inset-top)); right:max(.7rem,env(safe-area-inset-right)); }
    .sbi-portfolio-lightbox-media { padding-top:max(4.4rem,calc(env(safe-area-inset-top) + 3.7rem)); }
    .sbi-portfolio-lightbox-info { padding-bottom:max(1rem,env(safe-area-inset-bottom)); padding-left:max(1rem,env(safe-area-inset-left)); padding-right:max(1rem,env(safe-area-inset-right)); max-height:40dvh; }
}
@media (hover:none), (pointer:coarse) {
    [data-sbi-v53-root] .sbi-visual-open { opacity:1; visibility:visible; }
    [data-sbi-v53-root] #selected-work .sbi-selected-work-card { opacity:1 !important; }
    .sbi-v55-portfolio-open { -webkit-tap-highlight-color:rgba(197,156,255,.2); }
}
@media (prefers-reduced-motion:reduce) {
    .sbi-footer-marquee-track { animation:none !important; }
    .sbi-global-header *, .sbi-skip-link { transition:none !important; }
}
