/* Shared PPC-inspired floating navigation for the homepage and organic SEO page. */
body.has-floating-nav .site-header{
  position:fixed;
  inset:clamp(20px,2.4vw,36px) auto auto 50%;
  z-index:140;
  display:flex;
  width:min(calc(100% - clamp(40px,6vw,96px)),1512px);
  height:auto;
  align-items:flex-start;
  justify-content:space-between;
  gap:28px;
  padding:0;
  border:0;
  background:transparent;
  backdrop-filter:none;
  transform:translateX(-50%)!important;
}

body.has-floating-nav .site-header::before,
body.has-floating-nav .site-header::after{content:none}
body.has-floating-nav .site-header>*{height:auto}

body.has-floating-nav .site-header .brand{
  display:flex;
  width:194px;
  height:80px;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  padding:16px 19px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:28px;
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 58px rgba(70,54,42,.12),inset 0 1px 0 rgba(255,255,255,.78);
}

body.has-floating-nav .site-header .brand img{
  display:block;
  width:155px;
  height:auto;
  max-height:55px;
  object-fit:contain;
}

body.has-floating-nav .site-header .nav-links{
  position:relative;
  display:flex;
  width:auto;
  max-width:calc(100% - 232px);
  min-height:48px;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
  padding:4px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 14px 45px rgba(70,54,42,.12),inset 0 1px 0 rgba(255,255,255,.78);
  font-family:"Manrope Variable",Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

body.has-floating-nav .site-header .nav-group{
  position:relative;
  display:flex;
  min-height:38px;
  align-items:center;
  border-radius:999px;
  transition:color .24s ease,background-color .24s ease;
}

body.has-floating-nav .site-header .nav-group>.nav-link{
  display:flex;
  min-height:38px;
  align-items:center;
  padding:0 4px 0 clamp(12px,1.05vw,17px);
  color:#151a20;
  font:500 clamp(11px,.78vw,13px)/1 "Manrope Variable",Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.01em;
  text-decoration:none;
  white-space:nowrap;
}

body.has-floating-nav .site-header .nav-submenu-toggle{
  display:grid;
  width:28px;
  min-height:38px;
  place-items:center;
  padding:0 8px 0 2px;
  border:0;
  border-radius:0 999px 999px 0;
  background:transparent;
  color:#5f5a54;
  cursor:pointer;
}

body.has-floating-nav .site-header .nav-submenu-toggle svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  transition:transform .22s ease;
}

body.has-floating-nav .site-header .nav-group:hover,
body.has-floating-nav .site-header .nav-group:focus-within,
body.has-floating-nav .site-header .nav-group.is-submenu-open{
  background:rgba(var(--dgrb-brand-rgb),.06);
}

body.has-floating-nav .site-header .nav-group.is-current,
body.has-floating-nav .site-header .nav-group.is-section-active{
  background:rgba(var(--dgrb-brand-rgb),.075);
}

body.has-floating-nav .site-header .nav-group.is-current>.nav-link,
body.has-floating-nav .site-header .nav-group.is-section-active>.nav-link,
body.has-floating-nav .site-header .nav-group:hover>.nav-link,
body.has-floating-nav .site-header .nav-group:focus-within>.nav-link{
  color:var(--dgrb-brand);
}

body.has-floating-nav .site-header .nav-group.is-submenu-open .nav-submenu-toggle svg{
  transform:rotate(180deg);
}

body.has-floating-nav .site-header .nav-submenu{
  position:absolute;
  top:calc(100% + 12px);
  right:0;
  z-index:4;
  width:310px;
  padding:18px;
  border:1px solid rgba(20,18,16,.09);
  border-radius:12px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 50px rgba(70,54,42,.12);
}

body.has-floating-nav .site-header .nav-submenu::before{
  content:"";
  position:absolute;
  right:0;
  bottom:100%;
  left:0;
  height:13px;
}

body.has-floating-nav .site-header .nav-submenu[hidden]{display:none}

body.has-floating-nav .site-header .nav-submenu-label{
  display:block;
  padding:0 8px 11px;
  color:#827b73;
  font:650 10px/1.2 "IBM Plex Mono",monospace;
  letter-spacing:.12em;
  text-transform:uppercase;
}

body.has-floating-nav .site-header .nav-submenu-links{
  display:grid;
  grid-template-columns:1fr;
}

body.has-floating-nav .site-header .nav-submenu-links>a{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  min-height:42px;
  padding:8px;
  border-top:1px solid rgba(20,18,16,.07);
  color:#292622;
  font:550 13px/1.35 "Manrope Variable",Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-decoration:none;
  transition:color .18s ease,background-color .18s ease;
}

body.has-floating-nav .site-header .nav-submenu-links>a:hover,
body.has-floating-nav .site-header .nav-submenu-links>a:focus-visible,
body.has-floating-nav .site-header .nav-submenu-links>a[aria-current="page"]{
  background:var(--dgrb-wash);
  color:var(--dgrb-brand);
}

body.has-floating-nav .site-header .nav-submenu-toggle:focus-visible,
body.has-floating-nav .site-header .nav-group>.nav-link:focus-visible,
body.has-floating-nav .site-header .nav-submenu-links>a:focus-visible{
  outline:2px solid var(--orange,var(--dgrb-brand));
  outline-offset:2px;
}

body.has-floating-nav .site-header .nav-links>a,
body.has-floating-nav .site-header .nav-links>.header-contact{
  display:flex;
  min-height:38px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 clamp(12px,1.25vw,20px);
  border:0;
  border-radius:999px;
  background:transparent;
  color:#151a20;
  cursor:pointer;
  font:500 clamp(11px,.82vw,13px)/1 "Manrope Variable",Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.01em;
  text-decoration:none;
  white-space:nowrap;
  transition:color .2s cubic-bezier(.32,.72,0,1),background-color .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1);
}

body.has-floating-nav .site-header .nav-links>a:hover,
body.has-floating-nav .site-header .nav-links>.header-contact:hover{
  background:rgba(var(--dgrb-brand-rgb),.065);
  color:var(--orange,var(--dgrb-brand));
  transform:translateY(-1px);
}

body.has-floating-nav .site-header .nav-links>a:not(.header-contact).is-active,
body.has-floating-nav .site-header .nav-links>a:not(.header-contact).is-current{
  background:rgba(var(--dgrb-brand-rgb),.075);
  color:var(--dgrb-brand);
  font-weight:600;
}

body.has-floating-nav .site-header .nav-links>a:not(.header-contact).is-section-active{
  background:rgba(var(--dgrb-brand-rgb),.04);
  color:var(--dgrb-brand);
}

body.has-floating-nav .site-header .nav-links>a:focus-visible,
body.has-floating-nav .site-header .nav-links>.header-contact:focus-visible,
body.has-floating-nav .floating-menu-button:focus-visible{
  outline:2px solid var(--orange,var(--dgrb-brand));
  outline-offset:3px;
}

body.has-floating-nav .site-header .header-contact{
  margin:0;
  padding-right:clamp(14px,1.35vw,22px);
}

body.has-floating-nav .site-header .header-contact i{
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:50%;
  background:var(--orange,var(--dgrb-brand));
}

body.has-floating-nav .floating-menu-button{display:none}
body.has-floating-nav>.mobile-menu{display:none!important}

/* Organic SEO pages use a real conversion button instead of a decorative dot. */
body.has-floating-nav[data-page-template="procurement-seo"] .site-header .nav-links>.header-contact{
  justify-content:center;
  padding-inline:18px;
  background:var(--dgrb-brand);
  color:#fff;
  box-shadow:0 8px 20px rgba(var(--dgrb-brand-rgb),.2)
}
body.has-floating-nav[data-page-template="procurement-seo"] .site-header .nav-links>.header-contact:hover{
  background:var(--dgrb-brand-hover);
  color:#fff;
  box-shadow:0 11px 24px rgba(var(--dgrb-brand-rgb),.25)
}
body.has-floating-nav[data-page-template="procurement-seo"] .site-header .header-contact i{display:none}

@media(max-width:1060px) and (min-width:821px){
  body.has-floating-nav .site-header{width:calc(100% - 48px);gap:18px}
  body.has-floating-nav .site-header .brand{width:176px;height:72px}
  body.has-floating-nav .site-header .nav-links{max-width:calc(100% - 188px)}
  body.has-floating-nav .site-header .nav-links>a,
  body.has-floating-nav .site-header .nav-links>.header-contact{padding-inline:11px;font-size:11px}
}

@media(max-width:820px){
  body.has-floating-nav .site-header{
    top:18px;
    display:flex;
    width:calc(100% - 40px);
    min-height:58px;
    align-items:center;
    gap:8px;
    padding:6px 8px 6px 14px;
    border:1px solid rgba(255,255,255,.88);
    overflow:visible!important;
    border-radius:29px!important;
    background:rgba(255,255,255,.92);
    box-shadow:0 24px 64px rgba(63,52,40,.16),inset 0 1px 0 rgba(255,255,255,.92);
    transition:border-radius .2s cubic-bezier(.32,.72,0,1),box-shadow .2s cubic-bezier(.32,.72,0,1);
  }

  body.has-floating-nav .site-header .brand{
    width:auto;
    height:44px;
    justify-content:flex-start;
    padding:0 4px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  body.has-floating-nav .site-header .brand img{
    width:min(132px,37vw);
    max-height:44px;
  }

  body.has-floating-nav .site-header .nav-links{
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    left:0;
    display:grid;
    width:100%;
    max-width:none;
    height:auto;
    grid-template-columns:1fr;
    gap:2px;
    padding:7px;
    border:1px solid rgba(255,255,255,.86);
    border-radius:24px;
    background:var(--dgrb-paper);
    opacity:0;
    pointer-events:none;
    transform:translate3d(0,-8px,0) scale(.985);
    box-shadow:0 24px 58px rgba(63,52,40,.16),inset 0 1px 0 rgba(255,255,255,.92);
    transition:opacity .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1);
    max-height:calc(100dvh - 104px);
    overflow-y:auto;
  }

  body.has-floating-nav .site-header .nav-links>a,
  body.has-floating-nav .site-header .nav-links>.header-contact,
  body.has-floating-nav .site-header .nav-links>.nav-group{
    min-height:44px;
    justify-content:flex-start;
    padding:0 16px;
    font-size:13px;
    opacity:0;
    transform:translate3d(0,10px,0);
    transition:opacity .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1),background-color .2s cubic-bezier(.32,.72,0,1),color .2s cubic-bezier(.32,.72,0,1);
  }

  body.has-floating-nav .site-header.is-mobile-menu-open .nav-links{
    opacity:1;
    pointer-events:auto;
    transform:translateZ(0) scale(1);
    background:var(--dgrb-paper);
  }

  body.has-floating-nav .site-header.is-mobile-menu-open .nav-links>a,
  body.has-floating-nav .site-header.is-mobile-menu-open .nav-links>.header-contact,
  body.has-floating-nav .site-header.is-mobile-menu-open .nav-links>.nav-group{
    opacity:1;
    transform:translateZ(0);
  }

  body.has-floating-nav .site-header .nav-group{
    display:grid;
    grid-template-columns:minmax(0,1fr) 44px;
    min-height:44px;
    border-radius:12px;
  }

  body.has-floating-nav .site-header .nav-group>.nav-link{
    min-height:44px;
    padding:0 4px 0 16px;
    font-size:13px;
  }

  body.has-floating-nav .site-header .nav-submenu-toggle{
    width:44px;
    min-height:44px;
    padding:0;
    border-radius:10px;
  }

  body.has-floating-nav .site-header .nav-submenu{
    position:static;
    width:auto;
    grid-column:1/-1;
    margin:0 6px 7px;
    padding:8px;
    border:0;
    border-radius:8px;
    background:#fff;
    box-shadow:none;
  }

  body.has-floating-nav .site-header .nav-submenu-label{display:none}
  body.has-floating-nav .site-header .nav-submenu-links>a{min-height:40px;padding:8px 10px;font-size:12px}

  body.has-floating-nav .floating-menu-button{
    position:relative;
    display:grid;
    width:44px;
    height:44px;
    flex:0 0 auto;
    place-items:center;
    margin-left:auto;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#151a20;
    cursor:pointer;
  }

  body.has-floating-nav .floating-menu-button span{
    position:absolute;
    top:50%;
    left:50%;
    display:block;
    width:23px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transition:transform .2s cubic-bezier(.32,.72,0,1),opacity .2s cubic-bezier(.32,.72,0,1);
  }

  body.has-floating-nav .floating-menu-button span:nth-child(1){transform:translate(-50%,calc(-50% - 7px))}
  body.has-floating-nav .floating-menu-button span:nth-child(2){transform:translate(-50%,-50%)}
  body.has-floating-nav .floating-menu-button span:nth-child(3){transform:translate(-50%,calc(-50% + 7px))}
  body.has-floating-nav .site-header.is-mobile-menu-open .floating-menu-button span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
  body.has-floating-nav .site-header.is-mobile-menu-open .floating-menu-button span:nth-child(2){opacity:0;transform:translate(-50%,-50%) scaleX(.4)}
  body.has-floating-nav .site-header.is-mobile-menu-open .floating-menu-button span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}
}

@media(max-width:1180px){
  body.has-floating-nav .site-header[data-collapse-at="1180"]{
    top:18px;
    display:flex;
    width:calc(100% - 40px);
    min-height:58px;
    align-items:center;
    gap:8px;
    padding:6px 8px 6px 14px;
    border:1px solid rgba(255,255,255,.88);
    overflow:visible!important;
    border-radius:29px!important;
    background:rgba(255,255,255,.92);
    box-shadow:0 24px 64px rgba(63,52,40,.16),inset 0 1px 0 rgba(255,255,255,.92);
    transition:border-radius .2s cubic-bezier(.32,.72,0,1),box-shadow .2s cubic-bezier(.32,.72,0,1);
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .brand{
    width:auto;
    height:44px;
    justify-content:flex-start;
    padding:0 4px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .brand img{
    width:min(132px,37vw);
    max-height:44px;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-links{
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    left:0;
    display:grid;
    width:100%;
    max-width:none;
    height:auto;
    grid-template-columns:1fr;
    gap:2px;
    padding:7px;
    border:1px solid rgba(255,255,255,.86);
    border-radius:24px;
    background:var(--dgrb-paper);
    opacity:0;
    pointer-events:none;
    transform:translate3d(0,-8px,0) scale(.985);
    box-shadow:0 24px 58px rgba(63,52,40,.16),inset 0 1px 0 rgba(255,255,255,.92);
    transition:opacity .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1);
    max-height:calc(100dvh - 104px);
    overflow-y:auto;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-links>a,
  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-links>.header-contact,
  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-links>.nav-group{
    min-height:44px;
    justify-content:flex-start;
    padding:0 16px;
    font-size:13px;
    opacity:0;
    transform:translate3d(0,10px,0);
    transition:opacity .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1),background-color .2s cubic-bezier(.32,.72,0,1),color .2s cubic-bezier(.32,.72,0,1);
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .nav-links{
    opacity:1;
    pointer-events:auto;
    transform:translateZ(0) scale(1);
    background:var(--dgrb-paper);
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .nav-links>a,
  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .nav-links>.header-contact,
  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .nav-links>.nav-group{
    opacity:1;
    transform:translateZ(0);
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-group{
    display:grid;
    grid-template-columns:minmax(0,1fr) 44px;
    min-height:44px;
    border-radius:12px;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-group>.nav-link{
    min-height:44px;
    padding:0 4px 0 16px;
    font-size:13px;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-submenu-toggle{
    width:44px;
    min-height:44px;
    padding:0;
    border-radius:10px;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-submenu{
    position:static;
    width:auto;
    grid-column:1/-1;
    margin:0 6px 7px;
    padding:8px;
    border:0;
    border-radius:8px;
    background:#fff;
    box-shadow:none;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-submenu-label{display:none}
  body.has-floating-nav .site-header[data-collapse-at="1180"] .nav-submenu-links>a{min-height:40px;padding:8px 10px;font-size:12px}

  body.has-floating-nav .site-header[data-collapse-at="1180"] .floating-menu-button{
    position:relative;
    display:grid;
    width:44px;
    height:44px;
    flex:0 0 auto;
    place-items:center;
    margin-left:auto;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#151a20;
    cursor:pointer;
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .floating-menu-button span{
    position:absolute;
    top:50%;
    left:50%;
    display:block;
    width:23px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transition:transform .2s cubic-bezier(.32,.72,0,1),opacity .2s cubic-bezier(.32,.72,0,1);
  }

  body.has-floating-nav .site-header[data-collapse-at="1180"] .floating-menu-button span:nth-child(1){transform:translate(-50%,calc(-50% - 7px))}
  body.has-floating-nav .site-header[data-collapse-at="1180"] .floating-menu-button span:nth-child(2){transform:translate(-50%,-50%)}
  body.has-floating-nav .site-header[data-collapse-at="1180"] .floating-menu-button span:nth-child(3){transform:translate(-50%,calc(-50% + 7px))}
  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .floating-menu-button span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .floating-menu-button span:nth-child(2){opacity:0;transform:translate(-50%,-50%) scaleX(.4)}
  body.has-floating-nav .site-header[data-collapse-at="1180"].is-mobile-menu-open .floating-menu-button span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}
}

@media(prefers-reduced-motion:reduce){
  body.has-floating-nav .site-header *,
  body.has-floating-nav .site-header{transition:none!important}
}

/* Keyboard navigation is immediate; pointer transitions stay brief. */
html[data-input-mode="keyboard"] [data-floating-nav],
html[data-input-mode="keyboard"] [data-floating-nav] * { transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  [data-floating-nav], [data-floating-nav] * { transition: none !important; }
}
