/* Neutralize legacy Digital header/footer rules when BESONG Group chrome is present. */
.site-header[data-header] {
  height: auto;
  position: relative;
  background: #fff;
  border-bottom: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.site-header[data-header] .brand img {
  width: 190px;
  max-height: none;
  height: auto;
}

.site-header[data-header] .nav-link,
.site-header[data-header] .nav-button {
  min-height: 0;
  padding: 10px 8px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 600;
  color: #202B3C;
  background: transparent;
  white-space: nowrap;
}

.site-header[data-header] .nav-link:hover,
.site-header[data-header] .nav-link.is-active,
.site-header[data-header] .nav-link[aria-current="page"],
.site-header[data-header] .nav-button:hover,
.site-header[data-header] .nav-item.is-open .nav-button {
  color: #0062FE;
  background: #EFF7FE;
}

.site-header[data-header] .mega-menu {
  max-height: none !important;
  overflow: visible !important;
}

/* Legacy Digital CSS opens .mega-menu on hover; Group chrome uses .is-open only. */
.site-header[data-header] .nav-item:hover > .mega-menu:not(.is-open),
.site-header[data-header] .nav-item:focus-within > .mega-menu:not(.is-open),
.site-header[data-header] .nav-item.is-open > .mega-menu:not(.is-open) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translate(-50%, 10px) !important;
  max-height: none !important;
}

.site-header[data-header] .mega-menu.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

.site-footer .footer-grid,
.site-footer .footer-bottom.shell {
  position: relative;
  z-index: 1;
}

.site-footer::before {
  display: none;
}

.back-to-top[data-back-to-top] {
  border-radius: 12px;
}

/* Digital local navigation — keeps Static_Website inner pages reachable */
.digital-subnav {
  position: sticky;
  top: 0;
  z-index: 80;
  background: #07152E;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.digital-subnav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 52px;
  flex-wrap: wrap;
}

.digital-subnav__brand {
  color: #fff;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}

.digital-subnav__brand:hover {
  color: #F36434;
}

.digital-subnav__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 2px;
}

.digital-subnav__links a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 12px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.84rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  transition: color 0.2s ease, background 0.2s ease;
}

.digital-subnav__links a:hover,
.digital-subnav__links a.is-active,
.digital-subnav__links a[aria-current="page"] {
  color: #fff;
  background: rgba(0, 98, 255, 0.28);
}

@media (max-width: 980px) {
  .site-header[data-header] .mega-menu {
    position: absolute;
    max-height: none !important;
    overflow: visible !important;
  }

  .digital-subnav__inner {
    min-height: 0;
    padding-block: 10px;
  }

  .digital-subnav__links {
    width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 2px;
    -webkit-overflow-scrolling: touch;
  }

  .digital-subnav__links a {
    flex: 0 0 auto;
  }
}


/* ========== UNIVERSAL RESPONSIVE FOUNDATION (all devices) ========== */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: hidden;
}
body {
  overflow-x: hidden;
  min-width: 0;
}
img, video, iframe, embed, object, svg, canvas {
  max-width: 100%;
  height: auto;
}
video {
  display: block;
}
table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
}
.shell, .container, .narrow, main, .site-footer, .footer, .page-hero, .hero, .hero-copy, .hero-inner {
  min-width: 0;
  max-width: 100%;
}

/* Sticky header baseline when present */
.site-header {
  max-width: 100%;
}

@media (max-width: 1180px) {
  .grid-4, .units-grid, .capability-grid, .practice-grid, .service-card-grid,
  .sector-grid, .insight-grid, .plan-grid, .audience-grid, .process-eight,
  .ecosystem-grid, .home-solution-grid, .related-grid, .company-link-grid,
  .phase-grid, .outcome-grid, .principle-grid, .challenge-grid, .delivery-grid,
  .value-grid, .engagement-grid, .career-grid, .region-grid, .why-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .grid-3, .footer-grid, .split, .split-intro, .contact-layout, .contact-grid,
  .article-layout, .demo-shell, .faq-layout, .narrative-grid, .architect-grid,
  .intelligence-grid, .africa-grid, .multiplier, .tab-panel, .position-band__grid,
  .convergence-grid, .career-panel {
    grid-template-columns: 1fr !important;
  }
  .hero-grid, .hero-inner, .home-hero-grid, .home-hero__layout, .page-hero-grid,
  .flow-hero-grid, .hero-layout {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

@media (max-width: 980px) {
  .menu-toggle, .nav-toggle, .mobile-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
  .service-ribbon__inner,
  .utility-inner,
  .utility-bar__inner {
    -webkit-overflow-scrolling: touch;
  }
  .mega-menu, .dropdown {
    max-width: 100%;
  }
  .button-row, .hero-actions, .actions, .cta-actions {
    flex-wrap: wrap;
  }
  .button, .btn {
    max-width: 100%;
  }
}

@media (max-width: 860px) {
  :root {
    --page-gutter: 24px;
  }
  .container, .shell, .narrow {
    width: min(100% - 24px, var(--container, var(--page-max, var(--max, 1240px)))) !important;
    margin-inline: auto;
  }
  .section, .section-sm, .section-dark, .section-muted, .cta-band {
    padding-left: 0;
    padding-right: 0;
  }
  .grid-2, .grid-3, .grid-4,
  .units-grid, .capability-grid, .practice-grid, .service-card-grid,
  .sector-grid, .insight-grid, .plan-grid, .audience-grid, .process-eight,
  .ecosystem-grid, .home-solution-grid, .related-grid, .company-link-grid,
  .phase-grid, .outcome-grid, .principle-grid, .challenge-grid, .delivery-grid,
  .value-grid, .engagement-grid, .career-grid, .region-grid, .why-grid,
  .process-grid, .process-line, .footer-grid, .form-grid, .stats-grid,
  .bullet-grid, .check-list.cols-2 {
    grid-template-columns: 1fr !important;
  }
  .hero h1, .page-hero h1, .home-hero h1, .home-copy h1, .hero-copy h1 {
    font-size: clamp(1.9rem, 8vw, 2.8rem) !important;
    line-height: 1.12 !important;
    word-break: break-word;
  }
  .hero p, .page-hero .lead, .hero-copy p, .hero-lead {
    font-size: 1rem !important;
  }
  .hero-actions, .actions, .button-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: min(100%, 420px);
    gap: 12px !important;
  }
  .hero-actions .button, .hero-actions .btn, .actions .button, .actions .btn {
    width: 100%;
    justify-content: center;
  }
  .footer-bottom, .footer-meta, .cta-inner, .engagement-band__inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 14px !important;
  }
  .sticky-mobile-cta {
    display: grid !important;
  }
}

@media (max-width: 620px) {
  :root {
    --page-gutter: 20px;
  }
  .container, .shell, .narrow {
    width: min(100% - 20px, var(--container, var(--page-max, var(--max, 1240px)))) !important;
  }
  .brand img, .footer-brand img, .footer-logo-panel img {
    max-width: min(170px, 55vw);
    height: auto;
  }
  .card, .insight-card, .plan-card, .ecosystem-card, .audience-card,
  .service-card, .unit-card, .stat-card, .contact-form-card {
    width: 100%;
  }
  table, .comparison, .table-wrap {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .quote-panel blockquote {
    font-size: clamp(1.15rem, 5vw, 1.5rem) !important;
  }
}

@media (max-width: 400px) {
  :root {
    --page-gutter: 16px;
  }
  .container, .shell, .narrow {
    width: min(100% - 16px, var(--container, var(--page-max, var(--max, 1240px)))) !important;
  }
  .utility-bar, .utility-inner, .utility-bar__right {
    font-size: 11px !important;
  }
}

/* Touch-friendly taps */
@media (hover: none) and (pointer: coarse) {
  .nav-link, .button, .btn, .mega-card, a.card {
    min-height: 44px;
  }
}

/* ========== FULL HEADER STICKY (all pages) ========== */
html {
  overflow-x: clip;
}
body {
  overflow-x: clip;
}
header.site-header,
.site-header[data-header],
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  max-width: 100% !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(7, 21, 46, .08);
}
.site-header .nav-wrap,
.nav-wrap {
  position: relative !important;
  top: auto !important;
}
/* ========== STATIC DIGITAL: mobile nav + FAQ stack ========== */
.site-header .nav-toggle,
.nav-toggle[data-nav-toggle] {
  width: 45px !important;
  height: 45px !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid #D5DEEA !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 2px rgba(7, 21, 46, .06);
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
}

.site-header .nav-toggle span,
.nav-toggle[data-nav-toggle] span {
  display: block !important;
  width: 20px !important;
  min-width: 20px !important;
  height: 2px !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  background: #07152E !important;
  border-radius: 2px !important;
  opacity: 1 !important;
}

.site-header .nav-toggle[aria-expanded="true"] span:nth-child(1),
.nav-toggle[data-nav-toggle][aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.site-header .nav-toggle[aria-expanded="true"] span:nth-child(2),
.nav-toggle[data-nav-toggle][aria-expanded="true"] span:nth-child(2) {
  opacity: 0 !important;
}
.site-header .nav-toggle[aria-expanded="true"] span:nth-child(3),
.nav-toggle[data-nav-toggle][aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1100px) {
  .site-header .nav-toggle,
  .nav-toggle[data-nav-toggle] {
    display: inline-flex !important;
  }

  .site-header,
  .site-header .nav-wrap,
  .site-header .nav-wrap__inner {
    overflow: visible !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transform: none !important;
  }

  .site-header .primary-nav {
    position: fixed !important;
    top: var(--mobile-nav-top, 110px) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 8px 16px 24px !important;
    margin: 0 !important;
    background: #fff !important;
    overflow-y: auto !important;
    transform: none !important;
    z-index: 2000 !important;
  }

  .site-header .primary-nav:not(.is-open) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .site-header .primary-nav.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  body.nav-open .site-header .service-ribbon {
    display: none !important;
  }
}

@media (max-width: 900px) {
  .grid.grid--2,
  .grid--2,
  .section-title--split,
  .faq-layout,
  .container.grid.grid--2 {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .service-ribbon__inner {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap !important;
  }

  .service-ribbon a {
    flex: 0 0 auto;
    white-space: nowrap;
  }
}