/* Ibtikar Tech shared shell: Header, Mega Menu, Mobile Menu, Footer.
 *
 * P0 shell consolidation:
 * - one canonical rule set for the approved flat/clean shell
 * - preserves the currently approved effective cascade without legacy override layers
 * - keeps responsive, RTL, accessibility, and reduced-motion behavior intact
 */

/* Header */
.ibt-shell-header,
.header.ibt-shell-header,
.site-header.ibt-shell-header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 2200;
  padding-inline: 0;
  background: color-mix(in srgb, var(--ibt-bg) 86%, transparent) !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: blur(18px) saturate(1.2);
  transition: transform .34s var(--ibt-ease), opacity .34s var(--ibt-ease);
}

.ibt-shell-header.hide,
.ibt-shell-header.cinematic-hidden {
  transform: translateY(-120%);
}

.ibt-shell-nav,
.nav.ibt-shell-nav,
.nav-shell.ibt-shell-nav,
html[data-theme="dark"] .ibt-shell-nav {
  width: min(calc(100% - 40px), var(--ibt-container));
  height: var(--ibt-header-h);
  margin-inline: auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}

.ibt-shell-header.scrolled .ibt-shell-nav,
.ibt-shell-header.is-scrolled .ibt-shell-nav {
  transform: none;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Brand */
.ibt-shell-brand,
.brand.ibt-shell-brand {
  min-width: max-content;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--ibt-text);
  text-decoration: none;
}

.ibt-shell-logo,
.logo.ibt-shell-logo,
.brand-mark.ibt-shell-logo,
.brand__mark.ibt-shell-logo {
  width: 38px;
  height: 38px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
  transform: rotate(-8deg);
  filter: drop-shadow(0 8px 16px rgba(82, 86, 235, .24));
}

.ibt-shell-logo i {
  display: block;
  border-radius: 4px;
  background: var(--ibt-gradient);
}

.ibt-shell-logo i:nth-child(1) { transform: translateY(8px); }
.ibt-shell-logo i:nth-child(2) { transform: translateY(2px); }
.ibt-shell-logo i:nth-child(3) { transform: translateY(-4px); }

.ibt-shell-brand-copy,
.brand-copy.ibt-shell-brand-copy,
.brand__text.ibt-shell-brand-copy {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.ibt-shell-brand-copy strong {
  font-size: 19px;
  font-weight: 900;
  color: var(--ibt-text);
}

.ibt-shell-brand-copy small {
  margin-top: 4px;
  color: var(--ibt-muted);
  font-size: 10px;
  line-height: 1.35;
  letter-spacing: 0;
}

/* Desktop navigation */
.ibt-shell-desktop-nav,
.desktop-nav.ibt-shell-desktop-nav,
.nav-links.ibt-shell-desktop-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 14px;
  font-weight: 800;
}

.ibt-shell-desktop-nav > a,
.ibt-shell-nav-link {
  position: relative;
  min-height: var(--ibt-target-min);
  display: inline-flex;
  align-items: center;
  border-radius: 10px;
  color: color-mix(in srgb, var(--ibt-text) 82%, var(--ibt-muted));
  text-decoration: none;
  transition: color .2s, background .2s, transform .2s;
}

.ibt-shell-desktop-nav > a {
  padding: 0 12px;
}

.ibt-shell-nav-link {
  padding: 0 11px;
  font-size: 13px;
  white-space: nowrap;
}

.ibt-shell-desktop-nav > a::after {
  display: none !important;
}

.ibt-shell-nav-link::before {
  content: "";
  position: absolute;
  right: 12px;
  left: 12px;
  bottom: 5px;
  height: 2px;
  border-radius: 99px;
  background: var(--ibt-gradient);
  opacity: 0;
  transform: scaleX(.35);
  transition: .2s;
}

.ibt-shell-desktop-nav > a:hover,
.ibt-shell-desktop-nav > a.active,
.ibt-shell-desktop-nav > a.is-active {
  color: var(--ibt-blue);
  background: color-mix(in srgb, var(--ibt-blue) 10%, transparent);
}

.ibt-shell-nav-link:hover,
.ibt-shell-nav-link.active,
.ibt-shell-nav-link.is-active {
  color: var(--ibt-text);
  background: var(--ibt-surface);
  box-shadow: 0 9px 20px rgba(20, 31, 67, .08);
}

.ibt-shell-nav-link:hover::before,
.ibt-shell-nav-link.active::before,
.ibt-shell-nav-link.is-active::before {
  opacity: 1;
  transform: scaleX(1);
}

.ibt-shell-nav-group {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding-inline-start: 0;
  border-radius: 12px;
}

.ibt-shell-mega-toggle {
  width: var(--ibt-target-min);
  min-width: var(--ibt-target-min);
  height: var(--ibt-target-min);
  min-height: var(--ibt-target-min);
  margin-inline-start: -8px;
  border: 0;
  border-radius: 12px;
  display: inline-grid;
  place-items: center;
  color: var(--ibt-muted);
  background: transparent;
  transition: background .2s, color .2s, transform .2s;
}

.ibt-shell-mega-toggle:hover,
.ibt-shell-mega-toggle:focus-visible {
  color: var(--ibt-blue);
  background: color-mix(in srgb, var(--ibt-blue) 10%, transparent);
}

.ibt-shell-mega-toggle svg {
  width: 16px;
  height: 16px;
  stroke-width: 2;
}

.ibt-shell-mega-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

/* Mega menu */
.ibt-shell-mega {
  position: absolute;
  top: calc(100% + 18px);
  right: 50%;
  width: min(940px, calc(100vw - 44px));
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--ibt-border) 88%, transparent);
  border-radius: 26px;
  background: color-mix(in srgb, var(--ibt-bg) 96%, transparent);
  box-shadow: var(--ibt-shadow-lg);
  backdrop-filter: blur(28px) saturate(1.35);
  opacity: 0;
  visibility: hidden;
  transform: translateX(50%) translateY(14px) scale(.985);
  pointer-events: none;
  transition: opacity .22s var(--ibt-ease), transform .22s var(--ibt-ease), visibility .22s;
}

html[data-theme="dark"] .ibt-shell-mega {
  background: rgba(12, 18, 40, .96);
}

.ibt-shell-mega.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(50%) translateY(0) scale(1);
  pointer-events: auto;
}

.ibt-shell-mega::before {
  content: "";
  position: absolute;
  top: -12px;
  right: 50%;
  width: 22px;
  height: 22px;
  margin-right: -11px;
  border-top: 1px solid var(--ibt-border);
  border-right: 1px solid var(--ibt-border);
  background: inherit;
  transform: rotate(-45deg);
}

.ibt-shell-mega-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr repeat(3, 1fr);
  gap: 10px;
}

.ibt-shell-mega-grid--services {
  grid-template-columns: 1.05fr repeat(3, 1fr);
}

.ibt-shell-mega-lead,
.ibt-shell-mega-link {
  min-height: 116px;
  padding: 17px;
  border: 1px solid var(--ibt-border);
  border-radius: 18px;
  background: color-mix(in srgb, var(--ibt-bg-soft) 72%, transparent);
  text-decoration: none;
  transition: transform .2s, border-color .2s, background .2s;
}

.ibt-shell-mega-lead {
  color: #fff;
  background: var(--ibt-gradient-dark);
  border-color: rgba(255, 255, 255, .12);
}

.ibt-shell-mega-lead span {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 5px 9px;
  border-radius: 99px;
  background: rgba(255, 255, 255, .09);
  color: #bfeaff;
  font-size: 10px;
  font-weight: 900;
}

.ibt-shell-mega-lead strong,
.ibt-shell-mega-link strong {
  display: block;
  margin-bottom: 7px;
  font-size: 15px;
  font-weight: 900;
}

.ibt-shell-mega-link strong {
  color: var(--ibt-text);
}

.ibt-shell-mega-lead p,
.ibt-shell-mega-link span {
  margin: 0;
  color: var(--ibt-muted);
  font-size: 12px;
  line-height: 1.75;
}

.ibt-shell-mega-lead p {
  color: rgba(255, 255, 255, .76);
}

.ibt-shell-mega-link:hover {
  border-color: color-mix(in srgb, var(--ibt-blue) 35%, var(--ibt-border));
  background: color-mix(in srgb, var(--ibt-blue) 7%, var(--ibt-bg-soft));
  transform: translateY(-3px);
}

/* Header actions */
.ibt-shell-actions,
.nav-actions.ibt-shell-actions,
.nav__actions.ibt-shell-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.ibt-shell-icon-btn,
.theme-toggle.ibt-shell-icon-btn,
.icon-btn.ibt-shell-icon-btn,
.ibt-shell-menu-toggle,
.menu-toggle.ibt-shell-menu-toggle,
.menu-btn.ibt-shell-menu-toggle {
  width: var(--ibt-target-min);
  height: var(--ibt-target-min);
  min-height: var(--ibt-target-min);
  padding: 0;
  border: 1px solid var(--ibt-border);
  border-radius: 13px;
  display: grid;
  place-items: center;
  color: var(--ibt-text);
  background: var(--ibt-surface);
  box-shadow: none;
}

.ibt-shell-icon-btn svg {
  width: 20px;
  height: 20px;
}

.ibt-shell-menu-toggle,
.menu-toggle.ibt-shell-menu-toggle,
.menu-btn.ibt-shell-menu-toggle {
  display: none;
  gap: 4px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ibt-shell-menu-toggle span,
.menu-toggle.ibt-shell-menu-toggle span,
.menu-btn.ibt-shell-menu-toggle span {
  display: none !important;
}

.ibt-shell-menu-toggle::before,
.menu-toggle.ibt-shell-menu-toggle::before,
.menu-btn.ibt-shell-menu-toggle::before {
  content: "";
  width: 20px;
  height: 20px;
  display: block;
  background:
    radial-gradient(circle at 5px 5px, currentColor 0 2.2px, transparent 2.4px),
    radial-gradient(circle at 15px 5px, currentColor 0 2.2px, transparent 2.4px),
    radial-gradient(circle at 5px 15px, currentColor 0 2.2px, transparent 2.4px),
    radial-gradient(circle at 15px 15px, currentColor 0 2.2px, transparent 2.4px);
}

.ibt-shell-cta {
  min-height: var(--ibt-control-h);
  padding: 0 20px;
  border: 0;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  background: var(--ibt-gradient-action, var(--ibt-gradient)) !important;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  touch-action: manipulation;
  box-shadow: 0 10px 24px rgba(49, 91, 178, .24);
}

/* Mobile menu */
.ibt-mobile-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2180;
  border: 0;
  background: rgba(3, 7, 18, .58);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

.ibt-mobile-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

.ibt-mobile-menu-head {
  min-height: 48px;
  padding: 0 4px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--ibt-border);
}

.ibt-mobile-menu-head span {
  display: grid;
  gap: 2px;
}

.ibt-mobile-menu-head strong {
  color: var(--ibt-text);
  font-size: 14px;
}

.ibt-mobile-menu-head small {
  color: var(--ibt-muted);
  font-size: 11px;
}

.ibt-mobile-menu-close {
  inline-size: var(--ibt-target-min);
  block-size: var(--ibt-target-min);
  flex: 0 0 var(--ibt-target-min);
  border: 1px solid var(--ibt-border);
  border-radius: 12px;
  color: var(--ibt-text);
  background: var(--ibt-bg-soft);
  font: inherit;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.ibt-mobile-menu-close:hover {
  color: var(--ibt-blue);
  border-color: color-mix(in srgb, var(--ibt-blue) 42%, var(--ibt-border));
}

.ibt-shell-mobile-menu,
.mobile-menu.ibt-shell-mobile-menu {
  position: fixed;
  top: 94px;
  right: 16px;
  left: 16px;
  z-index: 2190;
  display: none;
  max-height: calc(100svh - 112px);
  overflow: auto;
  padding: 14px;
  border: 1px solid var(--ibt-border);
  border-radius: 22px;
  background: color-mix(in srgb, var(--ibt-bg) 96%, transparent);
  box-shadow: var(--ibt-shadow-lg);
  backdrop-filter: blur(20px);
}

.ibt-shell-mobile-menu.open,
.ibt-shell-mobile-menu.is-open,
.mobile-menu.ibt-shell-mobile-menu.open,
.mobile-menu.ibt-shell-mobile-menu.is-open {
  display: grid;
  gap: 6px;
}

.ibt-shell-mobile-menu a {
  min-height: var(--ibt-control-h);
  padding: 10px 12px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  color: var(--ibt-text);
  text-decoration: none;
  font-weight: 800;
}

.ibt-shell-mobile-menu a:hover,
.ibt-shell-mobile-menu a.active,
.ibt-shell-mobile-menu a.is-active {
  background: var(--ibt-bg-soft);
  color: var(--ibt-blue);
}

.ibt-shell-mobile-menu .ibt-shell-mobile-cta {
  margin-top: 8px;
  justify-content: center;
  color: #fff;
}

.ibt-shell-mobile-group {
  border: 1px solid var(--ibt-border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--ibt-bg-soft) 62%, transparent);
  overflow: hidden;
}

.ibt-shell-mobile-group summary {
  min-height: var(--ibt-control-h);
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  font-weight: 900;
  color: var(--ibt-text);
  cursor: pointer;
}

.ibt-shell-mobile-group summary::-webkit-details-marker {
  display: none;
}

.ibt-shell-mobile-group summary::after {
  content: "⌄";
  font-size: 16px;
  color: var(--ibt-muted);
  transition: .2s;
}

.ibt-shell-mobile-group[open] summary::after {
  transform: rotate(180deg);
}

.ibt-shell-mobile-group a {
  min-height: var(--ibt-target-min);
  margin: 0 6px 6px;
  padding: 8px 12px !important;
  font-size: 13px;
  font-weight: 700;
  color: var(--ibt-muted);
}

/* Footer */
.ibt-shell-footer,
.site-footer.ibt-shell-footer,
.footer.ibt-shell-footer {
  padding: 76px 0 26px;
  color: #fff;
  background: #081127;
}

.ibt-shell-footer .ibt-shell-footer-grid {
  width: min(calc(100% - 40px), var(--ibt-container));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1.4fr repeat(4, .8fr);
  gap: 38px;
}

.ibt-shell-footer .ibt-shell-brand-copy strong {
  color: #fff;
}

.ibt-shell-footer .ibt-shell-brand-copy small,
.ibt-shell-footer p,
.ibt-shell-footer a {
  color: #a8b2c7;
}

.ibt-shell-footer p {
  max-width: 315px;
  margin: 17px 0 0;
  font-size: 13px;
  line-height: 1.85;
}

.ibt-shell-footer h3 {
  margin: 5px 0 16px;
  color: #fff;
  font-size: 14px;
}

.ibt-shell-footer a {
  display: block;
  margin: 10px 0;
  font-size: 13px;
  line-height: 1.55;
  text-decoration: none;
}

.ibt-shell-footer a:hover {
  color: #fff;
}

.ibt-shell-footer-bottom {
  width: min(calc(100% - 40px), var(--ibt-container));
  margin: 50px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: #8995ae;
  font-size: 12px;
}

.ibt-shell-footer-bottom div {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.ibt-shell-footer-bottom a {
  margin: 0;
}

/* Accessibility */
.ibt-shell-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.ibt-shell-header a:focus-visible,
.ibt-shell-header button:focus-visible,
.ibt-shell-mobile-menu a:focus-visible,
.ibt-shell-mobile-menu summary:focus-visible,
.ibt-shell-mobile-menu button:focus-visible,
.ibt-shell-footer a:focus-visible {
  outline: var(--ibt-focus-width) solid var(--ibt-focus-color);
  outline-offset: var(--ibt-focus-offset);
  box-shadow: none;
}

/* Page-specific shell integration */
body.source-home #home.hero {
  scroll-margin-top: var(--ibt-header-h);
}

body.source-home .cinematic-story__brand {
  display: none !important;
}

/* Responsive shell */
@media (max-width: 1180px) {
  .ibt-shell-desktop-nav {
    display: none !important;
  }

  .ibt-shell-cta {
    display: none;
  }

  .ibt-shell-menu-toggle,
  .menu-toggle.ibt-shell-menu-toggle,
  .menu-btn.ibt-shell-menu-toggle {
    display: grid !important;
  }
}

@media (max-width: 1100px) {
  .ibt-shell-footer .ibt-shell-footer-grid {
    grid-template-columns: 1.25fr 1fr 1fr;
  }

  .ibt-shell-footer-main {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  :root {
    --ibt-header-h: 64px;
  }

  .ibt-shell-header {
    top: 0;
    padding-inline: 0;
  }

  .ibt-shell-nav {
    width: min(calc(100% - 28px), var(--ibt-container));
  }

  .ibt-shell-logo {
    width: 32px;
    height: 32px;
  }

  .ibt-shell-brand {
    min-height: var(--ibt-target-min);
  }

  .ibt-shell-brand-copy strong {
    font-size: 16px;
  }

  .ibt-shell-brand-copy small {
    font-size: 10px;
  }

  .ibt-shell-icon-btn,
  .ibt-shell-menu-toggle {
    width: var(--ibt-target-min);
    height: var(--ibt-target-min);
    min-height: var(--ibt-target-min);
  }

  .ibt-shell-mobile-menu {
    top: 82px;
    right: 10px;
    left: 10px;
  }

  .ibt-shell-footer .ibt-shell-footer-grid {
    width: min(calc(100% - 28px), var(--ibt-container));
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .ibt-shell-footer-main {
    grid-column: 1 / -1;
  }

  .ibt-shell-footer-bottom {
    width: min(calc(100% - 28px), var(--ibt-container));
    display: block;
    text-align: center;
  }

  .ibt-shell-footer-bottom div {
    justify-content: center;
    margin-top: 12px;
  }

  .ibt-shell-footer a {
    min-height: var(--ibt-target-min);
    margin-block: 0;
    display: flex;
    align-items: center;
  }

  .ibt-shell-footer-bottom a {
    justify-content: center;
  }
}

@media (max-width: 460px) {
  .ibt-shell-footer .ibt-shell-footer-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ibt-shell-header,
  .ibt-shell-nav,
  .ibt-shell-mega,
  .ibt-shell-mega-link,
  .ibt-shell-nav-link,
  .ibt-shell-cta,
  .ibt-shell-mobile-backdrop {
    transition: none !important;
  }

  .ibt-shell-mega-link:hover,
  .ibt-shell-cta:hover {
    transform: none !important;
  }
}

/* Site-scoped brand assets and optional public contact settings. */
.ibt-shell-logo.ibt-shell-logo--asset {
  display: block;
  transform: none;
  filter: none;
  overflow: hidden;
}

.ibt-shell-logo--asset img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ibt-shell-logo-inverse {
  display: none !important;
}

html[data-theme="dark"] .ibt-shell-header .ibt-shell-logo--has-inverse .ibt-shell-logo-default {
  display: none;
}

html[data-theme="dark"] .ibt-shell-header .ibt-shell-logo--has-inverse .ibt-shell-logo-inverse {
  display: block !important;
}

.ibt-shell-footer-contact,
.ibt-shell-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 12px;
}

.ibt-shell-footer-contact a,
.ibt-shell-footer-social a {
  font-size: 12px;
  overflow-wrap: anywhere;
}

/* --------------------------------------------------------------------------
   Canonical effective shell refinements
   These rules previously lived in the global UX layer. Keeping them here makes
   this file the single owner of header, navigation drawer, mega menu and footer.
   -------------------------------------------------------------------------- */
.ibt-shell-header,
.header.ibt-shell-header,
.site-header.ibt-shell-header {
  background: color-mix(in srgb, var(--ibt-bg) 90%, transparent) !important;
  border-block-end: 1px solid transparent !important;
  transition: background-color .22s ease, border-color .22s ease, transform .3s var(--ibt-ease), opacity .3s var(--ibt-ease);
}

.ibt-shell-header.scrolled,
.ibt-shell-header.is-scrolled {
  background: color-mix(in srgb, var(--ibt-bg) 96%, transparent) !important;
  border-block-end-color: color-mix(in srgb, var(--ibt-border) 82%, transparent) !important;
}

.ibt-shell-nav::after { display: none !important; }
.ibt-shell-brand-copy strong { letter-spacing: -.015em; }
.ibt-shell-desktop-nav { gap: 2px !important; }

.ibt-shell-nav-link,
.ibt-shell-desktop-nav > a {
  min-height: var(--ibt-target-min) !important;
  padding-inline: 12px;
  border-radius: var(--ibt-radius-control) !important;
}

.ibt-shell-nav-link:hover,
.ibt-shell-nav-link.is-active,
.ibt-shell-nav-link[aria-current="page"],
.ibt-shell-desktop-nav > a:hover,
.ibt-shell-desktop-nav > a.is-active,
.ibt-shell-desktop-nav > a[aria-current="page"] {
  background: color-mix(in srgb, var(--ibt-blue) 7%, var(--ibt-bg-soft)) !important;
  box-shadow: none !important;
}

.ibt-shell-nav-link::before { bottom: 3px; height: 2px; }
.ibt-shell-mega-toggle { min-width: 36px; }
.ibt-shell-cta { box-shadow: 0 10px 24px rgba(79, 125, 243, .18) !important; }
.ibt-shell-cta:hover { transform: translateY(-1px); }

@media (min-width: 1181px) {
  .ibt-shell-mega {
    width: min(900px, calc(100vw - 48px));
    padding: 12px;
    border-radius: 20px;
    border-color: color-mix(in srgb, var(--ibt-border) 82%, transparent);
    box-shadow: 0 24px 70px rgba(7, 16, 43, .18);
  }

  .ibt-shell-mega-grid { gap: 6px; }

  .ibt-shell-mega-lead,
  .ibt-shell-mega-link {
    min-height: 108px;
    padding: 15px;
    border-radius: 14px;
  }

  .ibt-shell-mega-link {
    border-color: transparent;
    background: transparent;
  }

  .ibt-shell-mega-link:hover,
  .ibt-shell-mega-link:focus-visible {
    transform: none;
    border-color: color-mix(in srgb, var(--ibt-blue) 16%, var(--ibt-border));
    background: color-mix(in srgb, var(--ibt-blue) 7%, var(--ibt-bg-soft));
  }
}

.ibt-mobile-backdrop {
  z-index: 2240;
  padding: 0;
  background: rgba(4, 8, 20, .48);
  backdrop-filter: blur(3px);
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease;
}

.ibt-mobile-backdrop.is-open {
  visibility: visible;
}

@media (max-width: 1180px) {
  .ibt-shell-header { z-index: 2230; }

  .ibt-shell-menu-toggle {
    width: var(--ibt-target-min) !important;
    height: var(--ibt-target-min) !important;
    min-height: var(--ibt-target-min) !important;
    border-radius: var(--ibt-radius-control) !important;
  }

  .ibt-shell-menu-toggle:hover,
  .ibt-shell-menu-toggle:focus-visible {
    background: color-mix(in srgb, var(--ibt-blue) 7%, var(--ibt-bg-soft)) !important;
  }

  .ibt-shell-mobile-menu,
  .mobile-menu.ibt-shell-mobile-menu {
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    z-index: 2260;
    width: min(390px, calc(100vw - 12px));
    height: 100dvh;
    max-height: none;
    display: grid !important;
    grid-template-rows: auto;
    align-content: start;
    gap: 4px;
    padding: max(14px, env(safe-area-inset-top)) 14px max(16px, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 0;
    border-inline-start: 1px solid color-mix(in srgb, var(--ibt-border) 82%, transparent);
    border-radius: 0;
    background: color-mix(in srgb, var(--ibt-bg) 98%, transparent);
    box-shadow: -24px 0 70px rgba(4, 8, 24, .18);
    backdrop-filter: blur(22px) saturate(1.2);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(104%);
    transition: transform .28s var(--ibt-ease), opacity .2s ease, visibility .28s;
  }

  .ibt-shell-mobile-menu.open,
  .ibt-shell-mobile-menu.is-open,
  .mobile-menu.ibt-shell-mobile-menu.open,
  .mobile-menu.ibt-shell-mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);
  }

  .ibt-mobile-menu-head {
    min-height: 62px;
    margin-bottom: 8px;
    padding: 4px 4px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid color-mix(in srgb, var(--ibt-border) 82%, transparent);
  }

  .ibt-mobile-menu-head strong { font-size: 16px; font-weight: 900; }
  .ibt-mobile-menu-head small { font-size: 10px; line-height: 1.5; }

  .ibt-mobile-menu-close {
    width: var(--ibt-target-min);
    height: var(--ibt-target-min);
    display: grid;
    place-items: center;
    flex: 0 0 var(--ibt-target-min);
    border-color: color-mix(in srgb, var(--ibt-border) 82%, transparent);
    border-radius: var(--ibt-radius-control);
  }

  .ibt-shell-mobile-menu > a,
  .ibt-shell-mobile-group > summary {
    min-height: 48px !important;
    border-radius: var(--ibt-radius-control) !important;
  }

  .ibt-shell-mobile-menu > a:not(.ibt-shell-mobile-cta):hover,
  .ibt-shell-mobile-menu > a:not(.ibt-shell-mobile-cta):focus-visible,
  .ibt-shell-mobile-menu > a.is-active,
  .ibt-shell-mobile-menu > a[aria-current="page"] {
    background: color-mix(in srgb, var(--ibt-blue) 7%, var(--ibt-bg-soft)) !important;
  }

  .ibt-shell-mobile-group {
    border-radius: 12px !important;
    border-color: color-mix(in srgb, var(--ibt-border) 82%, transparent) !important;
    background: transparent !important;
  }

  .ibt-shell-mobile-group[open] {
    background: color-mix(in srgb, var(--ibt-bg-soft) 74%, transparent) !important;
  }

  .ibt-shell-mobile-group a { min-height: var(--ibt-target-min) !important; }
  .ibt-shell-mobile-cta { margin-top: 10px !important; }
}

.ibt-shell-footer { padding-top: clamp(64px, 6vw, 84px) !important; }
.ibt-shell-footer::after { opacity: .55; }
.ibt-shell-footer a:hover { transform: none !important; }
.ibt-shell-footer-bottom { margin-top: 40px !important; }

@media (max-width: 760px) {
  .ibt-shell-nav,
  .nav.ibt-shell-nav,
  .nav-shell.ibt-shell-nav {
    width: min(calc(100% - 32px), var(--ibt-container)) !important;
  }

  .ibt-shell-brand-copy small { margin-top: 2px; }
  .ibt-shell-footer { padding-top: 56px !important; }
  .ibt-shell-footer .ibt-shell-footer-grid { gap: 26px !important; }
}

@media (max-width: 520px) {
  .ibt-shell-brand-copy small { display: none; }
  .ibt-shell-footer .ibt-shell-footer-grid { grid-template-columns: 1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ibt-mobile-backdrop,
  .ibt-shell-mobile-menu,
  .ibt-shell-header,
  .ibt-shell-brand,
  .ibt-shell-cta {
    transition: none !important;
    animation: none !important;
  }

  .ibt-shell-cta:hover { transform: none !important; }
}
