.sb-icon {
    display: inline-block;
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    vertical-align: middle;
}

.sb-mobile-nav[aria-hidden="true"],
.sb-search-overlay[aria-hidden="true"] {
    visibility: hidden;
    pointer-events: none;
}

.sb-mobile-nav[aria-hidden="false"],
.sb-search-overlay[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
}

.sb-mobile-nav-close,
.sb-mobile-nav-minimize {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sb-gray-200);
    border-radius: var(--sb-radius-md);
    color: var(--sb-gray-800);
    background: var(--sb-white);
    cursor: pointer;
}

.sb-mobile-nav-close:focus-visible,
.sb-mobile-nav-minimize:focus-visible {
    outline: 3px solid var(--sb-saffron);
    outline-offset: 3px;
}

/* 3D icon kit (assets/icons/3d). Sized by the container's font-size, so
   existing icon slots (.sb-project-icon, .sb-platform-icon, ...) keep their scale. */
.sb-icon--3d {
    width: 1.45em;
    height: 1.45em;
    overflow: visible;
    transition: transform 0.2s ease;
}

.sb-icon--sm { font-size: 1rem; }
.sb-icon--lg { font-size: 2rem; }
.sb-icon--xl { font-size: 3rem; }

@media (prefers-reduced-motion: no-preference) {
    a:hover > span > .sb-icon--3d,
    .sb-project-card:hover .sb-icon--3d,
    .sb-platform-card:hover .sb-icon--3d {
        transform: translateY(-2px);
    }
}

.sb-contact-location > span .sb-icon--3d { font-size: 1.5rem; }

@media print {
    .sb-icon--3d { filter: none; }
}

/* 2.6.0 — final-ready-icons: photo icons, header emblem, footer banner. */
.sb-icon--raster {
    width: 1.6em;
    height: 1.6em;
    object-fit: contain;
}
[data-theme="dark"] .sb-icon--raster {
    filter: drop-shadow(0 0 6px rgba(255, 236, 200, .35));
}
.sb-logo img.sb-global-emblem,
.sb-header.scrolled .sb-logo img.sb-global-emblem {
    width: auto;
    height: 52px;
}
.sb-mobile-nav-brand img.sb-global-emblem {
    width: auto;
    height: 40px;
}
.sb-footer-logo img.sb-global-banner {
    display: block;
    width: 260px;
    max-width: 100%;
    height: auto;
}
@media (max-width: 1024px) {
    .sb-logo img.sb-global-emblem,
    .sb-header.scrolled .sb-logo img.sb-global-emblem { height: 46px; }
}
@media (max-width: 600px) {
    .sb-logo img.sb-global-emblem,
    .sb-header.scrolled .sb-logo img.sb-global-emblem { height: 40px; }
    .sb-footer-logo img.sb-global-banner { width: 220px; }
}
