.vh-announcement-bar {











  background: var(--vh-announcement-bg, #0b0c18);











  color: var(--vh-announcement-text, #ffffff);











  position: relative;











  z-index: 1040;











  border-bottom: 1px solid rgba(255,255,255,.12);











}























.vh-announcement-bar__inner {











  max-width: 1180px;











  margin: 0 auto;











  padding: .55rem 1rem;











  display: flex;











  align-items: center;











  justify-content: center;











  gap: .85rem;











  text-align: center;











  font-weight: 700;











  font-size: .95rem;











}























.vh-announcement-bar__text {











  line-height: 1.35;











}























.vh-announcement-bar__button {











  display: inline-flex;











  align-items: center;











  justify-content: center;











  min-height: 2rem;











  padding: .35rem .75rem;











  border-radius: 999px;











  background: var(--vh-announcement-button-bg, #b216c8);











  color: var(--vh-announcement-button-text, #ffffff);











  text-decoration: none;











  font-size: .82rem;











  line-height: 1;











  white-space: nowrap;











}























.vh-announcement-bar__button:hover,











.vh-announcement-bar__button:focus {











  color: var(--vh-announcement-button-text, #ffffff);











  filter: brightness(1.08);











}























@media (max-width: 599.98px) {











  .vh-announcement-bar__inner {











    flex-direction: column;











    gap: .45rem;











    padding: .65rem 1rem;











  }











}



































.vh-announcement-bar--below-nav {











  margin-top: var(--vh-navbar-height, 56px);











  z-index: 1035;











}























body.admin-bar .vh-announcement-bar--below-nav {











  margin-top: calc(var(--vh-navbar-height, 56px) + var(--wp-admin--admin-bar--height, 32px));











}























.vh-announcement-bar--before-footer {











  border-top: 1px solid rgba(255,255,255,.12);











  border-bottom: 0;











}























.vh-announcement-bar--top-fixed,











.vh-announcement-bar--bottom-fixed {











  position: fixed;











  left: 0;











  right: 0;











  z-index: 1090;











  box-shadow: 0 10px 30px rgba(0,0,0,.16);











}























.vh-announcement-bar--top-fixed {











  top: 0;











}























body.admin-bar .vh-announcement-bar--top-fixed {











  top: var(--wp-admin--admin-bar--height, 32px);











}























.vh-announcement-bar--bottom-fixed {











  bottom: 0;











  border-top: 1px solid rgba(255,255,255,.12);











  border-bottom: 0;











}























body.vh-announcement-position-bottom-fixed {











  padding-bottom: var(--vh-announcement-fixed-space, 60px);











}























body.vh-announcement-position-top-fixed .vh-navbar.fixed-top {











  top: var(--vh-announcement-fixed-space, 48px);











}























body.admin-bar.vh-announcement-position-top-fixed .vh-navbar.fixed-top {











  top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--vh-announcement-fixed-space, 48px));











}























@media (max-width: 599.98px) {











  body.vh-announcement-position-bottom-fixed {











    padding-bottom: var(--vh-announcement-fixed-space-mobile, 96px);











  }























  body.vh-announcement-position-top-fixed .vh-navbar.fixed-top {











    top: var(--vh-announcement-fixed-space-mobile, 84px);











  }























  body.admin-bar.vh-announcement-position-top-fixed .vh-navbar.fixed-top {











    top: calc(var(--wp-admin--admin-bar--height, 46px) + var(--vh-announcement-fixed-space-mobile, 84px));











  }











}

















/* WO50 announcement dismiss + mobile nav safety */


.vh-announcement-bar {


  --vh-announcement-dismiss-size: 2rem;


}





.vh-announcement-bar[hidden] {


  display: none !important;


}





.vh-announcement-bar__inner {


  padding-right: calc(1rem + var(--vh-announcement-dismiss-size));


  padding-left: calc(1rem + var(--vh-announcement-dismiss-size));


}





.vh-announcement-bar__dismiss {


  position: absolute;


  top: 50%;


  right: max(.65rem, env(safe-area-inset-right));


  transform: translateY(-50%);


  width: var(--vh-announcement-dismiss-size);


  height: var(--vh-announcement-dismiss-size);


  display: inline-flex;


  align-items: center;


  justify-content: center;


  border: 1px solid color-mix(in srgb, var(--vh-announcement-text, #ffffff) 28%, transparent);


  border-radius: 999px;


  background: color-mix(in srgb, var(--vh-announcement-text, #ffffff) 12%, transparent);


  color: var(--vh-announcement-text, #ffffff);


  line-height: 1;


  font: inherit;


  font-weight: 900;


  cursor: pointer;


  z-index: 2;


}





.vh-announcement-bar__dismiss:hover,


.vh-announcement-bar__dismiss:focus {


  background: color-mix(in srgb, var(--vh-announcement-text, #ffffff) 22%, transparent);


  outline: 2px solid color-mix(in srgb, var(--vh-announcement-text, #ffffff) 45%, transparent);


  outline-offset: 2px;


}





.vh-announcement-bar__dismiss span {


  display: block;


  transform: translateY(-1px);


  font-size: 1.25rem;


}





body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-navbar.fixed-top {


  top: var(--vh-announcement-height, 0px);


}





body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-navbar.fixed-top {


  top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--vh-announcement-height, 0px));


}





body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


  top: calc(var(--vh-announcement-height, 0px) + 15px) !important;


}





body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


  top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--vh-announcement-height, 0px) + 15px) !important;


}





body.vh-announcement-dismissed .vh-navbar.fixed-top {


  top: 0;


}





body.admin-bar.vh-announcement-dismissed .vh-navbar.fixed-top {


  top: var(--wp-admin--admin-bar--height, 32px);


}





body.vh-announcement-dismissed .menu-toggle {


  top: 15px !important;


}





body.admin-bar.vh-announcement-dismissed .menu-toggle {


  top: calc(var(--wp-admin--admin-bar--height, 32px) + 15px) !important;


}





@media (max-width: 599.98px) {


  .vh-announcement-bar__inner {


    align-items: center;


    gap: .5rem;


    padding: .65rem calc(.75rem + var(--vh-announcement-dismiss-size)) .7rem .85rem;


    min-height: 0;


  }





  .vh-announcement-bar__text {


    max-width: 100%;


    font-size: clamp(.86rem, 3.9vw, .98rem);


    line-height: 1.25;


    text-wrap: balance;


    overflow-wrap: anywhere;


  }





  .vh-announcement-bar__button {


    max-width: 100%;


    min-height: 2.15rem;


    padding: .48rem .9rem;


    white-space: normal;


    text-align: center;


    line-height: 1.1;


  }





  .vh-announcement-bar__dismiss {


    top: .55rem;


    transform: none;


  }





  body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


    top: calc(var(--vh-announcement-height, 0px) + .75rem) !important;


  }





  body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


    top: calc(var(--wp-admin--admin-bar--height, 46px) + var(--vh-announcement-height, 0px) + .75rem) !important;


  }


}





/* Velocity Hub 1.5.42 — WO56 announcement/mobile menu safe-zone


   Above-nav announcements are fixed at the top just like top-fixed announcements;


   the off-canvas menu button must reserve the same vertical space when scrolled. */


body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


  top: calc(var(--vh-announcement-height, 0px) + 15px) !important;


}





body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


  top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--vh-announcement-height, 0px) + 15px) !important;


}





@media (max-width: 599.98px) {


  body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


    top: calc(var(--vh-announcement-height, 0px) + .75rem) !important;


  }





  body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


    top: calc(var(--wp-admin--admin-bar--height, 46px) + var(--vh-announcement-height, 0px) + .75rem) !important;


  }


}





/* Velocity Hub 1.5.44 — WO56D announcement position + dismissal hardening


   Dismissal is page-load-only. A refresh should bring the enabled announcement back.


   Position classes are explicit so Fixed Bottom cannot visually fall back below the nav. */


.vh-announcement-bar {


  box-sizing: border-box;


  width: 100%;


  max-width: 100%;


  overflow-x: clip;


}





.vh-announcement-bar--top-fixed,


.vh-announcement-bar[data-vh-announcement-position="top_fixed"] {


  position: fixed !important;


  top: 0 !important;


  right: 0 !important;


  bottom: auto !important;


  left: 0 !important;


  margin: 0 !important;


}





body.admin-bar .vh-announcement-bar--top-fixed,


body.admin-bar .vh-announcement-bar[data-vh-announcement-position="top_fixed"] {


  top: var(--wp-admin--admin-bar--height, 32px) !important;


}





.vh-announcement-bar--bottom-fixed,


.vh-announcement-bar[data-vh-announcement-position="bottom_fixed"] {


  position: fixed !important;


  top: auto !important;


  right: 0 !important;


  bottom: 0 !important;


  left: 0 !important;


  margin: 0 !important;


  border-top: 1px solid rgba(255,255,255,.14);


  border-bottom: 0;


}





.vh-announcement-bar--below-nav,


.vh-announcement-bar[data-vh-announcement-position="below_nav"] {


  position: relative !important;


  top: auto !important;


  right: auto !important;


  bottom: auto !important;


  left: auto !important;


  margin-top: var(--vh-navbar-height, 56px) !important;


  margin-bottom: 0 !important;


  box-shadow: none;


}





.vh-announcement-bar--before-footer,


.vh-announcement-bar[data-vh-announcement-position="before_footer"] {


  position: relative !important;


  top: auto !important;


  right: auto !important;


  bottom: auto !important;


  left: auto !important;


  margin: 0 !important;


}





.vh-announcement-bar__inner {


  width: min(100%, 1180px);


  min-height: 3rem;


  padding-right: calc(1rem + var(--vh-announcement-dismiss-size, 2rem) + .75rem);


  padding-left: calc(1rem + var(--vh-announcement-dismiss-size, 2rem) + .75rem);


}





.vh-announcement-bar__text,


.vh-announcement-bar__button {


  overflow-wrap: anywhere;


}





.vh-announcement-bar__dismiss {


  flex: 0 0 auto;


}





body.vh-announcement-position-bottom-fixed:not(.vh-announcement-dismissed) .scroll-to-top {


  bottom: calc(var(--vh-announcement-height, 0px) + max(1rem, env(safe-area-inset-bottom))) !important;


}





@media (max-width: 767.98px) {


  .vh-announcement-bar__inner {


    min-height: 0;


    align-items: center;


    justify-content: center;


    gap: .45rem;


    padding-top: .65rem;


    padding-bottom: .65rem;


    padding-right: calc(.8rem + var(--vh-announcement-dismiss-size, 2rem) + .25rem);


    padding-left: .8rem;


    text-align: center;


  }





  .vh-announcement-bar__text {


    font-size: clamp(.84rem, 3.7vw, .96rem);


    line-height: 1.22;


  }





  .vh-announcement-bar__button {


    min-height: 2.05rem;


    padding: .45rem .75rem;


    font-size: .78rem;


    white-space: normal;


  }





  .vh-announcement-bar__dismiss {


    top: .55rem;


    right: max(.55rem, env(safe-area-inset-right));


    transform: none;


  }


}





/* Velocity Hub 1.5.45 — WO56E announcement recovery hardening


   Stale hidden attributes from older cached dismissal code must not make an enabled


   announcement disappear after refresh. Current-page dismiss uses the explicit


   .vh-announcement-bar--dismissed class instead. */


.vh-announcement-bar[hidden] {


  display: block !important;


}





.vh-announcement-bar.vh-announcement-bar--dismissed {


  display: none !important;


}








/* Velocity Hub 1.5.46 — WO56F announcement render fallback hardening


   Enabled announcements must be visible after refresh. Only the explicit current-page


   dismiss class may hide the bar. Fixed-bottom bars render near the footer in DOM and


   are pinned to the viewport here. */


.vh-announcement-bar:not(.vh-announcement-bar--dismissed),


.vh-announcement-bar:not(.vh-announcement-bar--dismissed)[hidden] {


  display: block !important;


  visibility: visible !important;


  opacity: 1 !important;


}





.vh-announcement-bar.vh-announcement-bar--dismissed,


.vh-announcement-bar.vh-announcement-bar--dismissed[hidden] {


  display: none !important;


}





.vh-announcement-bar[data-vh-announcement-position="bottom_fixed"],


.vh-announcement-bar--bottom-fixed {


  position: fixed !important;


  top: auto !important;


  right: 0 !important;


  bottom: 0 !important;


  left: 0 !important;


  z-index: 100000 !important;


  margin: 0 !important;


}





body.vh-announcement-position-bottom-fixed:not(.vh-announcement-dismissed) {


  padding-bottom: var(--vh-announcement-height, 56px) !important;


}





/* Velocity Hub 1.5.47 — WO57 mobile header safe-zone


   Own the top stack: WP admin bar + announcement + mobile menu button.


   This prevents the hamburger from sitting inside the announcement row on mobile/tablet. */


:root {


  --vh-adminbar-height: 0px;


  --vh-announcement-menu-reserve: 0px;


  --vh-menu-safe-gap: 0.75rem;


  --vh-menu-safe-top: calc(var(--vh-adminbar-height, 0px) + var(--vh-announcement-menu-reserve, 0px) + var(--vh-menu-safe-gap, 0.75rem) + env(safe-area-inset-top));


}





body.admin-bar {


  --vh-adminbar-height: var(--wp-admin--admin-bar--height, 32px);


}





@media (max-width: 782px) {


  body.admin-bar {


    --vh-adminbar-height: var(--wp-admin--admin-bar--height, 46px);


  }


}





body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed),


body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) {


  --vh-announcement-menu-reserve: max(var(--vh-announcement-height, 0px), 44px);


}





body.vh-announcement-position-below-nav:not(.vh-announcement-dismissed) {


  --vh-announcement-menu-reserve: max(var(--vh-announcement-height, 0px), 36px);


}





body.vh-announcement-dismissed {


  --vh-announcement-menu-reserve: 0px;


}





@media (max-width: 991.98px) {


  html body .menu-toggle,


  html body.vh-nav-scrolled .menu-toggle,


  html body.admin-bar .menu-toggle,


  html body.admin-bar.vh-nav-scrolled .menu-toggle,


  html body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  html body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,


  html body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  html body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


    top: var(--vh-menu-safe-top) !important;


    right: calc(0.75rem + env(safe-area-inset-right)) !important;


    width: clamp(42px, 11vw, 48px) !important;


    height: clamp(42px, 11vw, 48px) !important;


    line-height: clamp(42px, 11vw, 48px) !important;


    z-index: 10060 !important;


  }





  html body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-navbar.fixed-top,


  html body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-navbar.fixed-top {


    top: calc(var(--vh-adminbar-height, 0px) + var(--vh-announcement-menu-reserve, 0px)) !important;


  }





  html body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .masthead:first-of-type,


  html body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-layout-hero:first-of-type {


    scroll-margin-top: calc(var(--vh-adminbar-height, 0px) + var(--vh-announcement-menu-reserve, 0px) + 4rem);


  }


}





@media (max-width: 430px) {


  :root {


    --vh-menu-safe-gap: 0.65rem;


  }





  .vh-announcement-bar--above-nav .vh-announcement-bar__inner,


  .vh-announcement-bar[data-vh-announcement-position="above_nav"] .vh-announcement-bar__inner {


    padding-right: calc(var(--vh-announcement-dismiss-size, 2rem) + 1rem);


  }


}





/* Velocity Hub 1.5.48 — WO58 mobile menu/announcement overlap fix


   Final authority: keep the floating menu below visible above-nav/top-fixed announcements. */


:root {


  --vh-menu-measured-top: var(--vh-menu-safe-top, auto);


}





body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,


body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


  top: var(--vh-menu-measured-top, calc(var(--vh-adminbar-height, 0px) + max(var(--vh-announcement-height, 44px), 44px) + .75rem + env(safe-area-inset-top))) !important;


}





@media (max-width: 599.98px) {


  body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .vh-announcement-bar__inner,


  body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .vh-announcement-bar__inner {


    padding-right: calc(var(--vh-announcement-dismiss-size, 2rem) + 1rem) !important;


  }


}





/* Velocity Hub 1.5.50 — WO47B final mobile menu safe-zone authority.


   This component stylesheet is enqueued after style.css, so keep the top-stack


   override here too. */


@media (max-width: 991.98px) {


  html body.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  html body.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,


  html body.admin-bar.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  html body.admin-bar.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle,


  html body.customize-preview.vh-announcement-position-above-nav:not(.vh-announcement-dismissed) .menu-toggle,


  html body.customize-preview.vh-announcement-position-top-fixed:not(.vh-announcement-dismissed) .menu-toggle {


    top: calc(var(--vh-adminbar-height, 46px) + max(var(--vh-announcement-height, 38px), 38px) + 10px + env(safe-area-inset-top)) !important;


  }





  html body.vh-announcement-dismissed .menu-toggle,


  html body.admin-bar.vh-announcement-dismissed .menu-toggle {


    top: calc(var(--vh-adminbar-height, 0px) + 12px + env(safe-area-inset-top)) !important;


  }


}





