/* ================================================================
   BBB CMS — Premium Public Navigation Polish
   Subtle public-site treatment: glass header, moving gold underline,
   refined language/menu/CTA states. Intentionally restrained.
   ================================================================ */

.cms2-header{
  transition:
    background-color .42s ease,
    border-color .42s ease,
    box-shadow .42s ease,
    backdrop-filter .42s ease,
    transform .34s cubic-bezier(.2,.8,.2,1)!important;
}

.cms2-header.zp-header-scrolled,
.cms2-header.scrolled{
  box-shadow:
    0 10px 34px color-mix(in srgb,#000 10%,transparent),
    inset 0 -1px 0 color-mix(in srgb,var(--header-border) 72%,transparent)!important;
}

.cms2-header.zp-header-blur.zp-header-scrolled{
  backdrop-filter:blur(22px) saturate(125%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(125%)!important;
}

.cms2-brand{
  position:relative;
  border-radius:14px;
  transition:transform .34s cubic-bezier(.2,1,.3,1),filter .28s ease!important;
}
.cms2-brand::after{
  content:"";
  position:absolute;
  inset:12% -18%;
  z-index:-1;
  border-radius:50%;
  opacity:0;
  transform:scale(.84);
  background:radial-gradient(circle,color-mix(in srgb,var(--green) 15%,transparent),transparent 68%);
  filter:blur(8px);
  transition:opacity .28s ease,transform .34s ease;
}
.cms2-brand:hover,
.cms2-brand:focus-visible{transform:translateY(-1px) scale(1.025)}
.cms2-brand:hover::after,
.cms2-brand:focus-visible::after{opacity:1;transform:scale(1)}
.cms2-brand img{transition:filter .3s ease,transform .34s cubic-bezier(.2,1,.3,1)!important}
.cms2-brand:hover img,
.cms2-brand:focus-visible img{
  transform:scale(1.018);
  filter:drop-shadow(0 5px 16px color-mix(in srgb,var(--green) 27%,transparent))!important;
}

.cms2-navigation.bbb-public-nav-premium{
  position:relative;
  isolation:isolate;
}

@media(min-width:901px){
  .cms2-navigation.bbb-public-nav-premium > .cms2-nav-group > .cms2-nav-item{
    position:relative;
    z-index:2;
    transition:color .23s ease,transform .28s cubic-bezier(.2,.9,.25,1)!important;
  }
  .cms2-navigation.bbb-public-nav-premium > .cms2-nav-group > .cms2-nav-item::after{
    display:none!important;
  }
  .cms2-navigation.bbb-public-nav-premium > .cms2-nav-group > .cms2-nav-item:hover,
  .cms2-navigation.bbb-public-nav-premium > .cms2-nav-group > .cms2-nav-item:focus-visible{
    transform:translateY(-1px);
  }
  .cms2-navigation.bbb-public-nav-premium > .cms2-nav-group > .cms2-nav-item.active{
    color:var(--header-text)!important;
  }

  .bbb-public-nav-indicator{
    position:absolute;
    z-index:1;
    left:0;
    top:0;
    width:34px;
    height:2px;
    pointer-events:none;
    opacity:0;
    border-radius:999px;
    transform-origin:center;
    background:linear-gradient(90deg,
      transparent 0%,
      color-mix(in srgb,var(--green) 68%,#fff 8%) 14%,
      color-mix(in srgb,var(--green) 98%,#fff 4%) 50%,
      color-mix(in srgb,var(--green) 68%,#fff 8%) 86%,
      transparent 100%);
    box-shadow:
      0 0 7px color-mix(in srgb,var(--green) 26%,transparent),
      0 0 16px color-mix(in srgb,var(--green) 9%,transparent);
    transition:none;
    will-change:left,top,width,transform;
  }
  .bbb-public-nav-indicator.is-ready{
    transition:
      left .44s cubic-bezier(.2,.92,.25,1),
      top .30s cubic-bezier(.2,.92,.25,1),
      width .38s cubic-bezier(.2,.92,.25,1),
      opacity .18s ease,
      transform .22s ease;
  }
  .bbb-public-nav-indicator.is-visible{opacity:.90}
  .bbb-public-nav-indicator.is-hovering{transform:scaleX(.88);opacity:.72}

  .cms2-navigation.bbb-public-nav-premium .cms2-submenu{
    margin-top:7px;
    border:1px solid color-mix(in srgb,var(--header-border) 82%,transparent)!important;
    border-radius:15px!important;
    background:color-mix(in srgb,var(--header-bg) 90%,transparent)!important;
    box-shadow:0 20px 56px rgba(0,0,0,.16)!important;
    backdrop-filter:blur(22px) saturate(120%);
    -webkit-backdrop-filter:blur(22px) saturate(120%);
    overflow:hidden;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-submenu .cms2-nav-item{
    border-radius:10px!important;
    transition:background .2s ease,color .2s ease,transform .2s ease!important;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-submenu .cms2-nav-item:hover{
    background:color-mix(in srgb,var(--green) 7%,transparent)!important;
    transform:translateX(2px);
  }
}

/* Language selector — same geometry, richer material. */
.cms2-language .language-button{
  position:relative;
  overflow:hidden;
  border-color:color-mix(in srgb,var(--header-border) 82%,transparent)!important;
  background:color-mix(in srgb,var(--header-bg) 74%,transparent)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease!important;
}
.cms2-language .language-button:hover,
.cms2-language.open .language-button{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--green) 34%,var(--header-border))!important;
  background:color-mix(in srgb,var(--header-bg) 88%,var(--green) 3%)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.09),inset 0 1px 0 rgba(255,255,255,.075);
}
.cms2-language .language-arrow{transition:transform .24s cubic-bezier(.2,.9,.25,1),color .2s ease}
.cms2-language.open .language-arrow{transform:rotate(180deg)}
.cms2-language .language-menu{
  border-radius:14px!important;
  border:1px solid color-mix(in srgb,var(--header-border) 82%,transparent)!important;
  background:color-mix(in srgb,var(--header-bg) 91%,transparent)!important;
  box-shadow:0 20px 55px rgba(0,0,0,.17)!important;
  backdrop-filter:blur(22px) saturate(125%);
  -webkit-backdrop-filter:blur(22px) saturate(125%);
  overflow:hidden;
}
.cms2-language .language-menu a{transition:background .18s ease,color .18s ease,transform .18s ease!important}
.cms2-language .language-menu a:hover{
  transform:translateX(2px);
  background:color-mix(in srgb,var(--green) 8%,transparent)!important;
}

.cms2-call-button{
  position:relative;
  overflow:hidden;
  border-color:color-mix(in srgb,var(--green) 28%,var(--header-border))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 24px rgba(0,0,0,.06)!important;
  transition:transform .24s cubic-bezier(.2,.9,.25,1),box-shadow .24s ease,border-color .24s ease,background .24s ease!important;
}
.cms2-call-button::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-125%);
  background:linear-gradient(105deg,transparent 32%,rgba(255,255,255,.13),transparent 68%);
  transition:transform .48s ease;
  pointer-events:none;
}
.cms2-call-button:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--green) 52%,var(--header-border))!important;
  box-shadow:0 10px 27px color-mix(in srgb,var(--green) 10%,transparent),inset 0 1px 0 rgba(255,255,255,.085)!important;
}
.cms2-call-button:hover::after{transform:translateX(125%)}

.cms2-menu-button{
  border-radius:12px!important;
  transition:background .2s ease,border-color .2s ease,transform .2s ease!important;
}
.cms2-menu-button:hover,
.cms2-menu-button[aria-expanded="true"]{
  background:color-mix(in srgb,var(--green) 7%,transparent)!important;
  border-color:color-mix(in srgb,var(--green) 28%,var(--header-border))!important;
}

@media(max-width:900px){
  /*
   * Mobile marker is deliberately rendered as a BODY-level fixed overlay.
   * The CMS mobile navigation is portaled and transformed by frontend.js;
   * keeping the indicator inside that transformed grid made it participate
   * in the menu layout on some Samsung/Chrome builds.
   */
  .bbb-public-nav-indicator.is-mobile-overlay{
    display:block!important;
    position:fixed!important;
    left:0;
    top:0;
    width:2px;
    height:24px;
    margin:0!important;
    padding:0!important;
    pointer-events:none!important;
    opacity:0;
    visibility:hidden;
    z-index:1095!important;
    border:0!important;
    border-radius:999px;
    transform-origin:center;
    background:linear-gradient(180deg,
      transparent 0%,
      color-mix(in srgb,var(--green) 68%,#fff 8%) 14%,
      color-mix(in srgb,var(--green) 100%,#fff 5%) 50%,
      color-mix(in srgb,var(--green) 68%,#fff 8%) 86%,
      transparent 100%);
    box-shadow:
      0 0 7px color-mix(in srgb,var(--green) 30%,transparent),
      0 0 16px color-mix(in srgb,var(--green) 11%,transparent);
    transition:none;
    will-change:left,top,height,transform,opacity;
  }
  .bbb-public-nav-indicator.is-mobile-overlay.is-ready{
    transition:
      left .28s cubic-bezier(.2,.82,.25,1),
      top .42s cubic-bezier(.2,.94,.25,1),
      height .28s cubic-bezier(.2,.9,.25,1),
      opacity .16s ease,
      transform .20s ease;
  }
  .bbb-public-nav-indicator.is-mobile-overlay.is-visible{
    opacity:.94;
    visibility:visible;
  }
  .bbb-public-nav-indicator.is-mobile-overlay.is-hovering{
    transform:scaleY(.86);
    opacity:.76;
  }
  .cms2-navigation.bbb-public-nav-premium{
    border-top:1px solid color-mix(in srgb,var(--header-border) 76%,transparent)!important;
    background:color-mix(in srgb,var(--mobile-menu-bg) 91%,transparent)!important;
    backdrop-filter:blur(24px) saturate(122%)!important;
    -webkit-backdrop-filter:blur(24px) saturate(122%)!important;
    box-shadow:0 28px 70px rgba(0,0,0,.18)!important;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-group{
    margin-inline:12px;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-item{
    position:relative;
    border-radius:12px!important;
    transition:background .2s ease,color .2s ease,transform .2s ease!important;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-item::after{display:none!important}
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-item:hover,
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-item:focus-visible{
    background:color-mix(in srgb,var(--green) 6%,transparent)!important;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-item.active{
    background:linear-gradient(90deg,color-mix(in srgb,var(--green) 3.5%,transparent),transparent 82%)!important;
  }
  .cms2-navigation.bbb-public-nav-premium .cms2-nav-item.active::before{display:none!important}
  .cms2-navigation.bbb-public-nav-premium .cms2-submenu{
    margin:2px 8px 8px!important;
    border-radius:12px!important;
    background:rgba(255,255,255,.018)!important;
    border-color:rgba(255,255,255,.045)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .bbb-public-nav-indicator,
  .cms2-header,
  .cms2-brand,
  .cms2-brand img,
  .cms2-navigation.bbb-public-nav-premium *,
  .cms2-language *,
  .cms2-call-button{
    transition-duration:.001ms!important;
  }
}
