/* ==========================================================================
   The site nav, ported verbatim

   Extracted from src/chunks-merge/contacts/head.html, which is what every
   merge page loads. 95 rules, in source order, so the cascade behaves the
   same way here as it does there.

   One rule was deliberately left out:

     .btn, .nav-cta, .chip, .hero-badge, .card, .person, .office, ...
       { border-radius: 0 !important }

   It reaches the nav only incidentally, through .nav-cta in a long selector
   list, and would have squared off every button and card on this page. The
   nav CTA takes its own radius from the .nav-links a.nav-cta rule below, so
   nothing in the nav depends on it.

   Regenerate rather than hand-edit: the extraction is a short script in the
   commit that added this file.
   ========================================================================== */

:root{
  /* Only the tokens the rules below actually reference. --serif and --sans are
     deliberately NOT set: the variant already points them at Inter, which is
     what the live site renders, and redefining them here to the chunk's
     'Source Serif 4' and 'Archivo' would undo that. */
  --turq:#24B6D1;
  --turq-glow:rgba(36,182,209,.42);
  --navy-ink:#021825;
  --sea:#216393;
  --mono:'IBM Plex Mono',monospace;
}

.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; transition: background 0.35s, box-shadow 0.35s; }
.nav.scrolled { background: rgba(2, 24, 37, 0.9); backdrop-filter: blur(16px); box-shadow: 0 1px 0 rgba(36,182,209,0.25); }
.nav-inner { max-width: 1320px; margin: 0 auto; padding: 0 48px; height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.nav-logo img { height: 30px; }
.nav-links { display: flex; align-items: center; gap: 28px; }
.nav-links a { color: rgba(255,255,255,0.78); font-size: 14px; font-weight: 500; transition: color 0.2s; padding: 4px 0; border-bottom: 2px solid transparent; }
.nav-links a:hover { color: var(--turq); }
.nav-links a.active { color: #fff; border-bottom-color: var(--turq); }
.nav-cta { background: var(--turq); color: var(--navy-ink) !important; padding: 10px 22px; border-radius: 10px; font-size: 13.5px; font-weight: 700; letter-spacing: 0.04em; box-shadow: 0 0 24px var(--turq-glow); transition: all 0.2s; border-bottom: none !important; }
.nav-cta:hover { filter: brightness(1.1); transform: translateY(-1px); }
@media (max-width: 1080px){
  .nav-links a:not(.nav-cta) { display: none; }
}
.nav { top: 0; padding: 16px 26px; background: transparent !important; box-shadow: none !important; backdrop-filter: none !important; }
.nav.scrolled { background: transparent; box-shadow: none; backdrop-filter: none; }
.nav-inner {
  position: relative; height: 60px; max-width: 1180px; margin: 0 auto;
  padding: 0 18px 0 26px; border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.09), rgba(255,255,255,0) 50%), rgba(6,26,40,0.55);
  -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), inset 0 0 0 1px rgba(255,255,255,0.08), 0 14px 34px rgba(0,0,0,0.4);
}
.nav-links a.nav-cta { background: none !important; border: none !important; box-shadow: none !important; padding: 4px 0 !important; border-radius: 0 !important; font-size: 14px !important; font-weight: 500 !important; letter-spacing: normal !important; color: rgba(255,255,255,0.78) !important; display: inline-flex; align-items: center; gap: 6px; }
.nav-links a.nav-cta:hover { color: var(--turq) !important; background: none !important; transform: none !important; filter: none !important; }
.nav--light .nav-links a.nav-cta { color: #102434 !important; }
.nav--light .nav-links a.nav-cta:hover { color: var(--sea) !important; }
.nav-links a.nav-cta .nav-ar { transition: transform .2s ease; }
.nav-links a.nav-cta:hover .nav-ar { transform: translateX(3px); }
.nav { top: 0; padding: 16px 26px; background: transparent !important; box-shadow: none !important; backdrop-filter: none !important; }
.nav.scrolled { background: transparent; box-shadow: none; backdrop-filter: none; }
.nav-inner { position: relative; height: 60px; max-width: 1160px; margin: 0 auto; padding: 0 16px 0 26px; border-radius: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.09), rgba(255,255,255,0) 50%), rgba(10,18,30,0.55); -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3); box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), inset 0 0 0 1px rgba(255,255,255,0.07), 0 14px 34px rgba(0,0,0,0.42); }
.nav-links a:hover, .nav-links a.active { color: #fff; border-bottom-color: #fff; }
.nav-cta { background: #fff; color: var(--navy-ink) !important; box-shadow: none; font-weight: 600; letter-spacing: 0.02em; }
.nav-cta:hover { filter: none; background: var(--turq); color: #fff !important; transform: none; }
.nav-inner { border-radius: 9px !important; background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.005)) !important; -webkit-backdrop-filter: blur(13px) saturate(1.2); backdrop-filter: blur(13px) saturate(1.2); transition: background .3s, backdrop-filter .3s; }
.nav-logo img { transition: none; }
.nav--light .nav-logo img { filter: brightness(0) saturate(100%) invert(13%) sepia(63%) saturate(1900%) hue-rotate(193deg) brightness(86%) contrast(95%); }
.nav--light .nav-links a:not(.nav-cta) { color: #102434; }
.nav--light .nav-links a:not(.nav-cta):hover, .nav--light .nav-links a.active:not(.nav-cta) { color: #003B5C; border-bottom-color: #003B5C; }
.ws-burger{
  display:none;                 
  position:relative;
  width:44px; height:44px;
  margin-left:auto;
  align-items:center; justify-content:center;
  flex-direction:column; gap:5px;
  background:none; border:0; padding:0; cursor:pointer;
  color:#fff;                   
  -webkit-tap-highlight-color:transparent;
}
.nav--light .ws-burger{ color:#102434; }
.ws-burger span{
  display:block; width:24px; height:2px;
  background:currentColor; border-radius:2px;
  transition:transform .3s ease, opacity .2s ease;
}
.ws-burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.ws-burger.is-open span:nth-child(2){ opacity:0; }
.ws-burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.ws-mnav{
  position:fixed; inset:0; z-index:2000;
  display:flex; flex-direction:column;
  padding:18px 26px 30px;
  background:
    radial-gradient(120% 80% at 80% 0%, rgba(36,182,209,0.14), transparent 60%),
    radial-gradient(90% 70% at 0% 100%, rgba(20,58,98,0.30), transparent 60%),
    #021825;
  color:#fff;
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity .32s ease, transform .32s ease, visibility 0s linear .32s;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.ws-mnav::before{                       
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(rgba(150,182,212,0.16) 1px, transparent 1.5px);
  background-size:30px 30px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 12%, #000 6%, transparent 70%);
  mask-image:radial-gradient(ellipse 70% 60% at 70% 12%, #000 6%, transparent 70%);
  opacity:.5;
}
.ws-mnav.open{
  opacity:1; visibility:visible; transform:none;
  transition:opacity .32s ease, transform .32s ease, visibility 0s;
}
.ws-mnav > *{ position:relative; z-index:1; }
.ws-mnav-head{
  display:flex; align-items:center; justify-content:space-between;
  height:60px; flex:0 0 auto;
}
.ws-mnav-logo img{ height:28px; width:auto; display:block; }
.ws-mnav-close{
  width:44px; height:44px; position:relative;
  background:none; border:0; padding:0; cursor:pointer; color:#fff;
  -webkit-tap-highlight-color:transparent;
}
.ws-mnav-close span{
  position:absolute; left:50%; top:50%; width:24px; height:2px;
  background:currentColor; border-radius:2px;
}
.ws-mnav-close span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
.ws-mnav-close span:nth-child(2){ transform:translate(-50%,-50%) rotate(-45deg); }
.ws-mnav-links{
  display:flex; flex-direction:column;
  margin-top:18px; flex:1 1 auto;
}
.ws-mnav-link{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px;
  font-family:var(--serif, "Source Serif 4", Georgia, serif);
  font-weight:500;
  font-size:clamp(23px, 6.4vw, 32px);
  letter-spacing:-0.01em;
  color:#fff;
  padding:16px 0;
  border-bottom:1px solid rgba(255,255,255,0.10);
  opacity:0; transform:translateX(-14px);
  transition:opacity .45s ease, transform .45s ease, color .2s ease;
}
.ws-mnav-link.active{ color:var(--turq, #24B6D1); }
.ws-mnav-link .ws-ext{ font-style:normal; font-size:.62em; color:rgba(255,255,255,0.45); }
.ws-mnav.open .ws-mnav-link{ opacity:1; transform:none; }
.ws-mnav.open .ws-mnav-link:nth-child(1){ transition-delay:.06s; }
.ws-mnav.open .ws-mnav-link:nth-child(2){ transition-delay:.10s; }
.ws-mnav.open .ws-mnav-link:nth-child(3){ transition-delay:.14s; }
.ws-mnav.open .ws-mnav-link:nth-child(4){ transition-delay:.18s; }
.ws-mnav.open .ws-mnav-link:nth-child(5){ transition-delay:.22s; }
.ws-mnav.open .ws-mnav-link:nth-child(6){ transition-delay:.26s; }
.ws-mnav.open .ws-mnav-link:nth-child(7){ transition-delay:.30s; }
.ws-mnav.open .ws-mnav-link:nth-child(8){ transition-delay:.34s; }
.ws-mnav.open .ws-mnav-link:nth-child(9){ transition-delay:.38s; }
.ws-mnav-group{ display:block; }
.ws-mnav-gtoggle{ width:100%; background:none; border-left:0; border-right:0; border-top:0; border-radius:0; text-align:left; cursor:pointer; text-decoration:none; -webkit-appearance:none; appearance:none; }
.ws-mnav-caret{ flex:none; width:8px; height:8px; border-right:1.5px solid rgba(255,255,255,0.55); border-bottom:1.5px solid rgba(255,255,255,0.55); transform:rotate(45deg); transition:transform .25s ease; margin-right:5px; }
.ws-mnav-group.open .ws-mnav-caret{ transform:rotate(225deg); }
.ws-mnav-sub{ overflow:hidden; max-height:0; padding-bottom:0; transition:max-height .32s ease, padding .32s ease; }
.ws-mnav-group.open .ws-mnav-sub{ max-height:440px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,0.10); }
.ws-mnav-sub .ws-mnav-link{ font-family:var(--mono, "IBM Plex Mono", monospace); font-size:13px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:rgba(255,255,255,0.72); padding:15px 0 15px 22px; margin-left:2px; border-bottom:none; border-left:1px solid rgba(142,214,232,0.30); }
.ws-mnav-sub .ws-mnav-link.active{ color:#8ED6E8; border-left-color:#8ED6E8; }
.ws-mnav-foot{ flex:0 0 auto; padding-top:22px; }
.ws-mnav-cta{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%;
  font-family:var(--sans, "Inter", -apple-system, sans-serif);
  font-size:15px; font-weight:700; letter-spacing:0.01em;
  color:#021825; background:var(--turq, #24B6D1);
  padding:18px 24px; border-radius:980px;
  opacity:0; transform:translateY(10px);
  transition:opacity .4s ease .4s, transform .4s ease .4s, filter .2s ease;
}
.ws-mnav.open .ws-mnav-cta{ opacity:1; transform:none; }
.ws-mnav-cta span{ transition:transform .2s ease; }
.ws-mnav-cta:active span{ transform:translateX(3px); }
@media (prefers-reduced-motion: reduce){
  .ws-mnav, .ws-mnav-link, .ws-mnav-cta, .ws-burger span{ transition-duration:.001s !important; }
  .ws-mnav-link, .ws-mnav-cta{ transform:none !important; }
}
@media (max-width:1080px){
  .nav-links{ display:none !important; }
  .ws-burger{ display:flex; }
}
@media (min-width:1081px){
  .ws-burger{ display:none !important; }
  .ws-mnav{ display:none !important; }
}
@media (max-width:760px){
  .nav{ padding:12px 16px; }
  .nav-inner{ padding-left:18px; padding-right:10px; }
}
@media (max-width:430px){
  .ws-mnav{ padding:16px 20px 26px; }
}
.nav-group { position: relative; display: flex; align-items: center; }
.nav-group-trigger { font-family: inherit; background: none; border: none; cursor: pointer; color: rgba(255,255,255,0.78); font-size: 14px; font-weight: 500; padding: 4px 0; display: inline-flex; align-items: center; gap: 6px; border-bottom: 2px solid transparent; transition: color .2s; }
.nav-group:hover .nav-group-trigger, .nav-group-trigger:focus-visible { color: var(--turq); }
.nav-group:has(a.active) .nav-group-trigger { color: #fff; border-bottom-color: var(--turq); }
.nav-caret { font-size: 9px; transition: transform .2s; }
.nav-group:hover .nav-caret { transform: rotate(180deg); }
.nav-dropdown { position: absolute; top: 100%; left: -10px; padding-top: 14px; display: flex; flex-direction: column; min-width: 198px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .22s ease, transform .22s ease, visibility .22s; z-index: 80; }
.nav-group:hover .nav-dropdown { opacity: 1; visibility: visible; transform: none; }
.nav-dropdown-inner { border-radius: 12px; background: linear-gradient(180deg, rgba(255,255,255,0.09), rgba(255,255,255,0) 55%), rgba(10,18,30,0.55); -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3); box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), inset 0 0 0 1px rgba(255,255,255,0.08), 0 18px 40px rgba(0,0,0,0.42); padding: 7px; display: flex; flex-direction: column; gap: 3px; }
.nav-dropdown a { color: rgba(255,255,255,0.85) !important; border-bottom: none !important; padding: 10px 14px !important; border-radius: 8px; white-space: nowrap; font-size: 14px; transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease; }
.nav-dropdown a:hover { background: #24B6D1 !important; color: #04121A !important; box-shadow: 0 0 26px rgba(36,182,209,0.5); transform: translateY(-1px); }
.nav--light .nav-group-trigger { color: #102434; }
.nav--light .nav-group:hover .nav-group-trigger { color: #003B5C; }
.nav--light .nav-dropdown-inner { background: linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,255,255,0.62)); box-shadow: inset 0 0 0 1px rgba(16,36,52,0.12), 0 18px 40px rgba(16,36,52,0.18); }
.nav--light .nav-dropdown a { color: #102434 !important; }
.nav--light .nav-dropdown a:hover { background: #24B6D1 !important; color: #04121A !important; }
/* --------------------------------------------------------------------------
   The MergeBase layer

   src/layouts/MergeBase.astro carries a final !important pass over the nav
   that the page head chunk does not: this is where the shipped 54px height,
   18px radius, 1120px width, 24px logo and 13px links actually come from.
   Extracting only the head chunk produced a 60px dock at 9px radius, which
   matched no page. The same .btn/.nav-cta/.hero-badge/.chip radius rule is
   dropped here for the same reason as above.
   -------------------------------------------------------------------------- */

.nav { top: 0 !important; padding: 14px 14px 0 !important; background: transparent !important; box-shadow: none !important; }
.nav.scrolled { background: transparent !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.nav-inner { height: 54px !important; max-width: min(1120px, calc(100vw - 28px)) !important; padding: 0 12px 0 18px !important;
  border-radius: 18px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), inset 0 0 0 1px rgba(255,255,255,0.07), 0 8px 24px rgba(2,24,37,0.06) !important; }
.nav--light .nav-inner { box-shadow: inset 0 0 0 1px rgba(14,36,51,0.05), 0 8px 24px rgba(2,24,37,0.07) !important; }
.nav-dropdown-inner { border-radius: 16px !important; }
.nav-logo img { height: 24px !important; }
.nav-links { gap: 24px !important; }
.nav-links a, .nav-group-trigger { font-size: 13px !important; }
.nav-links a.nav-cta { font-size: 13px !important; }
@media (max-width: 760px){
  .nav { padding: 10px 10px 0 !important; }
  .nav-inner { height: 50px !important; }
}

/* --------------------------------------------------------------------------
   Anchor reset

   The merge pages carry a global `a{text-decoration:none}` in their base CSS,
   so none of the nav rules above ever needed to say it. This page has no such
   reset: it switches underlines off per component, and the rule that did it
   for the old dock was removed with the dock. Without this, every link in the
   dock and in the full-page menu renders underlined while the two <button>
   group toggles do not, which is how the mismatch shows up.

   Scoped to the nav so it cannot change link styling anywhere else on the page.
   -------------------------------------------------------------------------- */
.nav a,
.ws-mnav a,
.ws-mnav-cta{text-decoration:none}
