.bo-header-wrap{
  --hd-navy: #0B1F3A;
  --hd-gold: #1083E6;
  --hd-line: #E9EDF3;
  --hd-line-strong: #D6DCE5;
  --hd-slate: #54627A;
  --hd-slate-light: #8B97A8;
  --hd-ease: cubic-bezier(.22,1,.36,1);
  --hd-ease-spring: cubic-bezier(.34,1.56,.64,1);

  --hd-bar-bg: #ffffff;
  --hd-bar-border: #E9EDF3;
  --hd-bar-height: 72px;
  --hd-logo-height: 45px;

  --hd-link-color: var(--hd-navy);
  --hd-link-underline: var(--hd-gold);

  --hd-mega-bg: #ffffff;
  --hd-mega-tag: var(--hd-gold);
  --hd-mega-icon: var(--hd-navy);
  --hd-mega-icon-hover-bg: var(--hd-navy);
  --hd-mega-cta-start: var(--hd-navy);
  --hd-mega-cta-end: #16305a;

  --hd-cta-bg: var(--hd-navy);
  --hd-cta-color: #ffffff;
  --hd-cta-bg-hover: #16305a;

  --hd-mobile-bg: rgba(255,255,255,.98);
  --hd-mobile-link-color: var(--hd-navy);
  --hd-mobile-tag: var(--hd-gold);

--hd-mega-col-padding: 24px;
  --hd-mega-col-border: var(--hd-line);
  --hd-mega-panel-v-padding: 30px;
  --hd-mega-tag-spacing: 12px;

  --hd-mega-item-gap: 10px;
  --hd-mega-item-padding: 6px 8px;
  --hd-mega-item-radius: 8px;
  --hd-mega-item-hover-bg: rgba(11,31,58,.035);
  --hd-mega-item-active-bg: rgba(16,131,230,.06);

  --hd-mega-icon-size: 26px;
  --hd-mega-icon-radius: 8px;
  --hd-mega-icon-bg: var(--hd-line);
  --hd-mega-icon-border: var(--hd-line);
  --hd-mega-icon-hover-color: #ffffff;

  --hd-mega-title-color: var(--hd-navy);
  --hd-mega-title-hover-color: var(--hd-navy);
  --hd-mega-desc-color: var(--hd-slate-light);
  --hd-mega-desc-lines: 2;

  --hd-intro-tag-color: var(--hd-mega-tag);
  --hd-intro-tag-spacing: 16px;
  --hd-intro-heading-color: var(--hd-navy);
  --hd-intro-heading-spacing: 10px;
  --hd-intro-text-color: var(--hd-slate);
  --hd-intro-text-spacing: 20px;
  --hd-intro-cta-margin-top: 20px;
  --hd-intro-cta-padding: 20px;
  --hd-intro-cta-radius: 12px;
  --hd-intro-cta-text-color: #ffffff;
  --hd-intro-cta-link-color: var(--hd-mega-tag);
  --hd-intro-cta-link-hover: #ffffff;
}

.bo-header-wrap #bo-site-header{
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: var(--hd-bar-bg);
  border-bottom: 1px solid var(--hd-bar-border);
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
  transition: transform .35s var(--hd-ease), box-shadow .3s var(--hd-ease);
}
.bo-header-wrap #bo-site-header.scrolled{ box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.bo-header-wrap #bo-site-header.header-hidden{ transform: translateY(-100%); }

.bo-header-wrap .topnav{
  max-width: 1220px; margin: 0 auto; padding: 0 40px;
  height: var(--hd-bar-height); display: flex; align-items: center; justify-content: space-between;
}
.bo-header-wrap .logo{ display: flex; align-items: center; text-decoration: none; }
.bo-header-wrap .logo-img{ height: var(--hd-logo-height); width: auto; display: block; transition: transform .3s var(--hd-ease); }
.bo-header-wrap .logo:hover .logo-img{ transform: scale(1.03); }
.bo-header-wrap .logo-text{ font-family:'Roboto Slab', serif; font-weight:600; font-size:18px; color: var(--hd-navy); }

/* ---------- Top-level nav ---------- */
.bo-header-wrap .main-links{ display: flex; align-items: center; gap: 34px; }
.bo-header-wrap .main-links > ul{ display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0; }
.bo-header-wrap .main-links > ul > div{ position: relative; }
.bo-header-wrap .main-links > ul > div > a{
  font-size: 14px; font-weight: 500; color: var(--hd-link-color);
  position: relative; padding: 8px 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px; text-decoration: none;
}
.bo-header-wrap .has-mega{
  display: flex; align-items: center; gap: 6px;
  padding: 8px 0; cursor: pointer; position: relative;
}
.bo-header-wrap .main-links .ml-label{
  font-size: 14px; font-weight: 500; color: var(--hd-link-color);
  line-height: 1; position: relative;
}
.bo-header-wrap .main-links > ul > div > a::after,
.bo-header-wrap .has-mega::after{
  content:''; position:absolute; left:0; right:0; bottom:2px; height:1.5px;
  background: var(--hd-link-underline); transform: scaleX(0); transform-origin: left;
  transition: transform .35s var(--hd-ease);
}
.bo-header-wrap .main-links > ul > div:hover > a::after,
.bo-header-wrap .has-mega:hover::after{ transform: scaleX(1); }
.bo-header-wrap .chev{ width:9px; height:9px; transition: transform .3s var(--hd-ease); position:relative; top:-1px; }
.bo-header-wrap .has-mega:hover .chev{ transform: rotate(180deg); }

/* ---------- CTA / buttons ---------- */
.bo-header-wrap .nav-cta{ display:flex; align-items:center; gap:12px; }
.bo-header-wrap .btn{
  font-family:'Roboto', sans-serif; font-weight:600; font-size:13.5px;
  padding:11px 22px; border-radius:7px; display:inline-flex; align-items:center; gap:9px;
  transition: all .35s var(--hd-ease); border:1px solid transparent; white-space:nowrap;
  position:relative; overflow:hidden; text-decoration:none;
}
.bo-header-wrap .btn::before{
  content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.25), transparent);
  transition: left .6s var(--hd-ease);
}
.bo-header-wrap .btn:hover::before{ left:130%; }
.bo-header-wrap .btn-primary{ background: var(--hd-cta-bg); color: var(--hd-cta-color); box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 8px 20px -8px rgba(11,31,58,.45); }
.bo-header-wrap .btn-primary:hover{ background: var(--hd-cta-bg-hover); transform: translateY(-2px); }
.bo-header-wrap .btn-primary svg{ transition: transform .35s var(--hd-ease); stroke: var(--hd-cta-color); }
.bo-header-wrap .btn-primary:hover svg{ transform: translateX(3px); }

/* ---------- Mega menu (desktop) ---------- */
.bo-header-wrap .has-mega{ position: static; }
.bo-header-wrap .mega-item a::before,
.bo-header-wrap .mega-item a::after,
.bo-header-wrap .mega-cta a::before,
.bo-header-wrap .mega-cta a::after{ content: none !important; }
.bo-header-wrap .mega{
  position: fixed; top: var(--hd-bar-height); left: 0; right: 0;
  background: var(--hd-mega-bg); border-bottom: 1px solid var(--hd-line);
  box-shadow: 0 30px 60px -20px rgba(11,31,58,.18);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .3s var(--hd-ease), transform .3s var(--hd-ease), visibility .3s;
  z-index: 999;
}
.bo-header-wrap .has-mega:hover .mega{ opacity: 1; visibility: visible; transform: translateY(0); }
.bo-header-wrap .mega-inner{ max-width: 1220px; margin: 0 auto; padding: var(--hd-mega-panel-v-padding) 40px calc(var(--hd-mega-panel-v-padding) - 2px); display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 0; align-items: start; }
.bo-header-wrap .mega-col{ padding: 0 var(--hd-mega-col-padding); border-right: 1px solid var(--hd-mega-col-border); min-width: 0; }
.bo-header-wrap .mega-col:last-child{ border-right: none; }
.bo-header-wrap .mega-col.intro{ padding-left: 0; }
.bo-header-wrap .mega-col.intro h4{
  font-size: 20px !important; margin: 0 0 var(--hd-intro-heading-spacing) !important;
  color: var(--hd-intro-heading-color) !important;
}
.bo-header-wrap .mega-col.intro p{
  font-size: 13.5px !important; margin: 0 0 var(--hd-intro-text-spacing) !important;
  color: var(--hd-intro-text-color) !important;
}
.bo-header-wrap .mega-tag{
  font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color: var(--hd-mega-tag); margin-bottom: var(--hd-mega-tag-spacing); display:block; font-weight:500;
}
.bo-header-wrap .mega-col.intro .mega-tag{
  color: var(--hd-intro-tag-color) !important;
  margin-bottom: var(--hd-intro-tag-spacing) !important;
}
.bo-header-wrap .mega-item{
  display:flex !important; align-items:flex-start !important; gap: var(--hd-mega-item-gap) !important;
  padding: var(--hd-mega-item-padding) !important; cursor:pointer; border-radius: var(--hd-mega-item-radius) !important;
  transition: background .3s var(--hd-ease); text-decoration:none !important;
}
.bo-header-wrap .mega-item:hover{ background: var(--hd-mega-item-hover-bg); }
.bo-header-wrap .mega-item.is-active{ background: var(--hd-mega-item-active-bg); }
.bo-header-wrap .mega-icon{
  width: var(--hd-mega-icon-size) !important; height: var(--hd-mega-icon-size) !important;
  border-radius: var(--hd-mega-icon-radius) !important; background: var(--hd-mega-icon-bg) !important;
  border:1px solid var(--hd-mega-icon-border) !important;
  flex-shrink:0; margin-top:1px; display:flex; align-items:center; justify-content:center;
  transition: background .3s var(--hd-ease), border-color .3s var(--hd-ease), transform .3s var(--hd-ease-spring);
}
.bo-header-wrap .mega-item:hover .mega-icon{ background: var(--hd-mega-icon-hover-bg); border-color: var(--hd-mega-icon-hover-bg); transform: scale(1.08) rotate(-4deg); }
.bo-header-wrap .mega-icon svg{ width: 45% !important; height: 45% !important; stroke: var(--hd-mega-icon) !important; transition: stroke .3s var(--hd-ease); }
.bo-header-wrap .mega-item:hover .mega-icon svg{ stroke: var(--hd-mega-icon-hover-color) !important; }
.bo-header-wrap .mega-item-text{ flex: 1 1 auto; min-width: 0; }
.bo-header-wrap .mega-item-text strong{
  display:block !important; font-size:14px !important; font-weight:600 !important;
  color: var(--hd-mega-title-color, var(--hd-navy)) !important;
  line-height: 1.35 !important; margin: 0 0 3px !important;
  word-break: break-word; white-space: normal;
  transition: color .3s var(--hd-ease);
}
.bo-header-wrap .mega-item:hover .mega-item-text strong{ color: var(--hd-mega-title-hover-color, var(--hd-navy)) !important; }
.bo-header-wrap .mega-item-text span{
  font-size:12px !important; color: var(--hd-mega-desc-color, var(--hd-slate-light)) !important;
  line-height: 1.5 !important; display: -webkit-box !important; -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--hd-mega-desc-lines, 2); overflow: hidden;
  word-break: break-word; white-space: normal; margin: 0 !important;
}
.bo-header-wrap .mega-cta{
  margin-top: var(--hd-intro-cta-margin-top) !important; border-radius: var(--hd-intro-cta-radius) !important;
  padding: var(--hd-intro-cta-padding) !important;
  background: linear-gradient(150deg, var(--hd-mega-cta-start), var(--hd-mega-cta-end));
  position:relative; overflow:hidden;
}
.bo-header-wrap .mega-cta::before{ content:''; position:absolute; top:-30%; right:-20%; width:160px; height:160px; background: radial-gradient(circle, rgba(16,131,230,.35), transparent 70%); }
.bo-header-wrap .mega-cta strong{
  color: var(--hd-intro-cta-text-color) !important; font-family:'Roboto Slab', serif;
  font-size:16px !important; font-weight:500 !important; display:block; margin-bottom:5px !important; position:relative;
}
.bo-header-wrap .mega-cta a{
  font-size:12.5px; color: var(--hd-intro-cta-link-color) !important; font-weight:600;
  display:inline-flex; align-items:center; gap:6px; position:relative; text-decoration:none;
  transition: color .25s var(--hd-ease);
}
.bo-header-wrap .mega-cta a:hover{ color: var(--hd-intro-cta-link-hover) !important; }
/* ---------- Mobile toggle ---------- */
.bo-header-wrap .mobile-toggle{
  display:none; width:40px; height:40px; border-radius:8px; border:1px solid var(--hd-line-strong);
  background:#fff; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
  transition: transform .35s cubic-bezier(.65,0,.35,1), background .3s var(--hd-ease);
}
.bo-header-wrap .mobile-toggle:active{ transform: scale(.9); }
.bo-header-wrap .mobile-toggle.open{ background: var(--hd-line); }
.bo-header-wrap .mobile-toggle .bars{ width:18px; height:13px; position:relative; }
.bo-header-wrap .mobile-toggle .bars span{ position:absolute; left:0; width:100%; height:1.6px; background: var(--hd-navy); border-radius:2px; transition: all .35s var(--hd-ease); }
.bo-header-wrap .mobile-toggle .bars span:nth-child(1){ top:0; }
.bo-header-wrap .mobile-toggle .bars span:nth-child(2){ top:50%; transform: translateY(-50%); }
.bo-header-wrap .mobile-toggle .bars span:nth-child(3){ bottom:0; }
.bo-header-wrap .mobile-toggle.open .bars span:nth-child(1){ top:50%; transform: translateY(-50%) rotate(45deg); }
.bo-header-wrap .mobile-toggle.open .bars span:nth-child(2){ opacity:0; }
.bo-header-wrap .mobile-toggle.open .bars span:nth-child(3){ bottom:50%; transform: translateY(50%) rotate(-45deg); }

/* ---------- Mobile panel (circular reveal + staggered items) ---------- */
.bo-header-wrap .mobile-panel{
  position: fixed; top: var(--hd-bar-height); left:0; right:0; bottom:0; z-index:998;
  background: var(--hd-mobile-bg);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  clip-path: circle(0% at calc(100% - 36px) 34px);
  -webkit-clip-path: circle(0% at calc(100% - 36px) 34px);
  visibility: hidden; overflow-y: auto; padding: 10px 22px 40px;
  width: 100%; max-width: 100%; box-sizing: border-box;
  transition: clip-path .65s cubic-bezier(.65,0,.35,1), -webkit-clip-path .65s cubic-bezier(.65,0,.35,1), visibility 0s linear .65s;
}
.bo-header-wrap .mobile-panel.open{
  visibility: visible;
  clip-path: circle(150% at calc(100% - 36px) 34px);
  -webkit-clip-path: circle(150% at calc(100% - 36px) 34px);
  transition: clip-path .65s cubic-bezier(.65,0,.35,1), -webkit-clip-path .65s cubic-bezier(.65,0,.35,1), visibility 0s linear 0s;
}
.bo-header-wrap .mobile-menu a.mlink,
.bo-header-wrap .mobile-menu .mobile-acc,
.bo-header-wrap .mobile-panel > .btn{
  opacity:0; transform: translateY(18px); transition: opacity .45s ease, transform .45s ease;
}
.bo-header-wrap .mobile-panel.open .mobile-menu a.mlink,
.bo-header-wrap .mobile-panel.open .mobile-menu .mobile-acc,
.bo-header-wrap .mobile-panel.open > .btn{
  opacity:1; transform: translateY(0);
}
.bo-header-wrap .mobile-panel.open .mobile-menu > *:nth-child(1){ transition-delay:.12s; }
.bo-header-wrap .mobile-panel.open .mobile-menu > *:nth-child(2){ transition-delay:.18s; }
.bo-header-wrap .mobile-panel.open .mobile-menu > *:nth-child(3){ transition-delay:.24s; }
.bo-header-wrap .mobile-panel.open .mobile-menu > *:nth-child(4){ transition-delay:.30s; }
.bo-header-wrap .mobile-panel.open .mobile-menu > *:nth-child(5){ transition-delay:.36s; }
.bo-header-wrap .mobile-panel.open > .btn{ transition-delay:.5s; }
.bo-header-wrap .mobile-panel:not(.open) .mobile-menu > *,
.bo-header-wrap .mobile-panel:not(.open) > .btn{ transition-delay:0s; }

.bo-header-wrap .mobile-menu a.mlink{
  display:flex; align-items:center; justify-content:space-between; font-size:16px; font-weight:600;
  padding:18px 4px; border-bottom:1px solid var(--hd-line); color: var(--hd-mobile-link-color); text-decoration:none;
}
.bo-header-wrap .mobile-acc{ border-bottom:1px solid var(--hd-line); }
.bo-header-wrap .mobile-acc-head{ display:flex; align-items:center; justify-content:space-between; padding:18px 4px; cursor:pointer; }
.bo-header-wrap .mobile-acc-head h4{ font-size:16px; font-weight:600; font-family:'Roboto', sans-serif; color: var(--hd-mobile-link-color); margin:0; }
.bo-header-wrap .mobile-acc-head .chev{ width:10px; height:10px; transition: transform .3s var(--hd-ease); }
.bo-header-wrap .mobile-acc.open .mobile-acc-head .chev{ transform: rotate(180deg); }
.bo-header-wrap .mobile-acc-body{ max-height:0; overflow:hidden; transition: max-height .4s var(--hd-ease); }
.bo-header-wrap .mobile-acc.open .mobile-acc-body{ max-height:800px; }
.bo-header-wrap .mobile-acc-body .msub{ padding:8px 4px 18px 12px; }
.bo-header-wrap .mobile-acc-body .mcat{ font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color: var(--hd-mobile-tag); margin:10px 0 8px; }
.bo-header-wrap .mobile-acc-body .mitem{ font-size:14px; padding:8px 0; color: var(--hd-slate); text-decoration:none; display:block; }
.bo-header-wrap .mobile-panel > .btn{ width:100%; justify-content:center; margin-top:20px; }

/* ---------- Elementor editor safety net ---------- */
body.elementor-editor-active .bo-header-wrap .mobile-menu a.mlink,
body.elementor-editor-active .bo-header-wrap .mobile-menu .mobile-acc,
body.elementor-editor-active .bo-header-wrap .mobile-panel > .btn{
  opacity: 1 !important; transform: none !important;
}

@media (prefers-reduced-motion: reduce){
  .bo-header-wrap *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* ================= RESPONSIVE ================= */
@media (max-width: 980px){
  .bo-header-wrap .main-links{ display:none; }
  .bo-header-wrap .nav-cta > .btn-primary{ display:none; }
  .bo-header-wrap .mobile-toggle{ display:flex; }
}

/* Exact fix requested: zero left/right empty space on mobile */
@media (max-width: 640px){
  html, body{ overflow-x: hidden; }
  .bo-header-wrap #bo-site-header,
  .bo-header-wrap .topnav,
  .bo-header-wrap .mobile-panel{ width:100%; max-width:100%; box-sizing:border-box; }
  .bo-header-wrap .topnav{ padding:0 16px; height:64px; }
  .bo-header-wrap{ --hd-bar-height: 64px; }
  .bo-header-wrap .logo-img{ height: calc(var(--hd-logo-height) * 0.8); }
  .bo-header-wrap .nav-cta{ gap:8px; }
  .bo-header-wrap .mobile-toggle{ width:36px; height:36px; }
  .bo-header-wrap .mobile-panel{ left:0; right:0; padding-left:16px; padding-right:16px; box-sizing:border-box; }
}