/* Shared responsive corrections, loaded after each page's theme. */
.site-menu-toggle, .site-mobile-menu-close .js-menu-toggle {
  border: 0; background: transparent; color: #0b63ce; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0;
}
.site-menu-toggle .icon-menu { margin: 0; }
.site-mobile-menu-close .js-menu-toggle { font-size: 30px; }
.site-menu-toggle:focus-visible, .js-menu-toggle:focus-visible { outline: 2px solid #0b63ce; outline-offset: 2px; }
.site-mobile-menu { top: 0; width: min(340px, 100%); height: 100dvh; display: flex; flex-direction: column; visibility: hidden; }
.offcanvas-menu .site-mobile-menu { visibility: visible; }
.site-mobile-menu .site-mobile-menu-header { flex: 0 0 auto; }
.site-mobile-menu .site-mobile-menu-body { flex: 1; min-height: 0; height: auto; padding-bottom: max(24px, env(safe-area-inset-bottom)); overscroll-behavior: contain; }
.site-mobile-menu .site-nav-wrap a { min-height: 44px; margin: 0; padding: 12px 16px; }
body.offcanvas-menu { overflow: hidden; }
.page-spacer { height: var(--site-header-space, 80px); }
.page-start { padding-top: calc(var(--site-header-space, 80px) + 40px); }
.bd-page > .site-wrap > .bb-hero { padding-top: calc(var(--site-header-space, 80px) + 40px); }
@media (max-width: 1199.98px) {
  .site-navbar .designer-name { flex: 0 0 75%; max-width: 75%; }
  .site-navbar .row > .d-xl-none { flex: 0 0 25%; max-width: 25%; padding-top: 8px !important; padding-bottom: 8px !important; top: 0 !important; }
  .site-navbar .brand-logo { margin: 0; padding: 5px 0; font-size: 16px; letter-spacing: -.3px; }
  .site-navbar .site-logo { top: 0; }
}
@media (max-width: 991.98px) {
  #home-section, #home-section > .container > .row { height: auto; min-height: 0; }
  #home-section .hero-custom { padding-top: calc(var(--site-header-space, 80px) + 48px); padding-bottom: 48px; }
  .portfolio-page #portfolio-section .col-lg-5 { padding-left: 15px !important; }
  .bb-case .bb-section-tabs, .ai-case .bb-section-tabs { max-width: 100%; }
  .bb-case .bb-section-tabs .container, .ai-case .bb-section-tabs .container { width: max-content; max-width: none; min-width: 100%; }
}
@media (max-width: 767.98px) {
  .site-wrap .row > [class*="col-"] { min-width: 0; }
  .site-wrap :is(h1,h2,h3,p,li,td,th) { overflow-wrap: break-word; }
  #home-section .hero-message { font-size: clamp(28px, 7.5vw, 36px); line-height: 1.2; }
  #home-section .hero-description { font-size: 16px; }
  #home-section .hero-buttons { gap: 12px; width: 100%; }
  #home-section .hero-buttons a { width: 100%; min-width: 0; }
  #home-section .ux-specialization-row { margin-top: 32px; padding-top: 16px; }
  .site-section { padding-top: 40px; padding-bottom: 40px; }
  .legacy-case .projecttitle_details ul, .legacy-case .ourfocus_details ul { padding-left: 22px; }
  .legacy-case img { max-width: 100%; height: auto; }
  .legacy-case img[width="60%"], .legacy-case img[width="90%"] { width: 100%; }
  .legacy-case .Interpretationsimage table { table-layout: fixed; }
  .legacy-case .Interpretationsimage td:first-child { width: 44px; }
  .legacy-case .Interpretationsimage td { padding-bottom: 16px; }
  .bb-case .bb-impact-strip, .ai-case .bb-impact-strip { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .bb-case .bb-impact-strip strong, .ai-case .bb-impact-strip strong { white-space: normal; }
  .bb-case .bb-impact-values, .ai-case .bb-impact-values { display: flex; flex-wrap: wrap; min-width: 0; }
  .bb-case .bb-impact-values span, .ai-case .bb-impact-values span { white-space: normal; }
  .bb-case .bb-section-tabs a, .ai-case .bb-section-tabs a { flex-shrink: 0; }
  .bb-table-wrap, .service-table { max-width: 100%; overscroll-behavior-inline: contain; }
  .bd-page > .site-wrap > .bb-hero { padding-bottom: 40px; }
  .about-page .about-profile-links a { width: 100%; min-width: 0; }
  .handoff-map div { border-bottom: 1px solid #d4dce2; }
  .handoff-map div:last-child { border-bottom: 0; }
  .handoff-map div:not(:last-child)::after { content: "↓"; top: auto; bottom: -12px; right: 24px; }
  .screen-lightbox { padding: 64px 12px 24px; }
  .screen-lightbox img { max-width: 100%; max-height: calc(100dvh - 88px); }
}
/* Retain desktop link spacing after giving the navigation valid list markup. */
.site-navbar .site-navigation .site-menu > li > a { padding: 5px; }
.site-mobile-menu .site-nav-wrap a.active { color: #0b63ce !important; }
