/* ---------- HEADER ---------- */
header.site{
  position:sticky;top:0;z-index:50;
  background:rgba(244,246,249,0.92);
  backdrop-filter:blur(8px);
  border-bottom:var(--hairline) solid var(--border-light);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 32px;max-width:var(--max);margin:0 auto;
  gap:24px;
}
.brand{display:flex;align-items:center;gap:12px;flex:none;}
nav.primary{display:flex;align-items:center;gap:34px;flex:1;justify-content:center;flex-wrap:wrap;}
nav.primary ul{display:flex;align-items:center;gap:34px;flex-wrap:wrap;}
nav.primary a{
  position:relative;
  display:inline-block;
  font-size:14.5px;
  font-weight:500;
  color:var(--navy);
  padding:8px 0;
  transition:color .2s ease;
}
nav.primary a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:2px;
  background:var(--garnet);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .32s cubic-bezier(.2,.65,.3,1);
}
nav.primary a:hover::after{
  transform:scaleX(1);
}
nav.primary .sub-menu{
  position:absolute;
  top:100%;left:0;
  min-width:220px;
  background:var(--white);
  border:var(--hairline) solid var(--border-light);
  border-radius:var(--radius-card);
  box-shadow:0 14px 30px rgba(6,24,47,0.10);
  padding:8px;
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
  z-index:10;
  /* Override without this: .sub-menu is a <ul>, so it inherits
     "nav.primary ul{display:flex;align-items:center;gap:34px}" (meant for
     the horizontal top-level row) — wrapping items onto their own line
     with a 34px gap between them, and (via align-items:center) shrinking
     each link to its own width and centering it instead of stretching
     full-width with left-aligned text. */
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
}
nav.primary .menu-item-has-children{position:relative;}
nav.primary .menu-item-has-children:hover > .sub-menu,
nav.primary .menu-item-has-children:focus-within > .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
nav.primary .sub-menu a{display:block;padding:10px 14px;font-size:14px;}
nav.primary .menu-caret{font-size:10px;margin-left:4px;}

.nav-actions{display:flex;align-items:center;gap:12px;flex:none;}
.nav-toggle{display:none;background:none;border:none;padding:8px;}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:"";display:block;width:22px;height:2px;background:var(--navy);position:relative;transition:.2s;}
.nav-toggle span::before{position:absolute;top:-7px;}
.nav-toggle span::after{position:absolute;top:7px;}

.mobile-panel{display:none;border-top:var(--hairline) solid var(--border-light);}
.mobile-panel.open{display:block;}
.mobile-panel nav{padding:20px 32px;}
.mobile-menu-list{display:flex;flex-direction:column;gap:16px;}
.mobile-menu-list .sub-menu{padding-left:16px;margin-top:12px;display:flex;flex-direction:column;gap:12px;}
.mobile-menu-list a{font-size:15px;color:var(--navy);}
.mobile-menu-list .menu-caret{display:none;}
