/* Keep the header action in the same shape as the site's other CTAs. */
body .brandegree-global-header .brandegree-cta {
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

body .brandegree-global-header .brandegree-cta > * {
  position: relative;
  z-index: 1;
}

/* A fine continuous edge makes the complete route visible beneath the moving light. */
@property --bd-header-edge-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

body:not(.bd-start-page-body) .brandegree-global-header .brandegree-cta:not(.bd-start-header-current)::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  border: 1px solid rgba(247, 245, 239, .36);
  border-radius: inherit;
  pointer-events: none;
  transition: opacity .2s ease;
}

body:not(.bd-start-page-body) .brandegree-global-header .brandegree-cta:not(.bd-start-header-current)::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  padding: 2px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--bd-header-edge-angle),
    #f7f5ef 0deg,
    rgba(247, 245, 239, .68) 18deg,
    rgba(247, 245, 239, .10) 78deg,
    transparent 110deg,
    transparent 315deg,
    rgba(247, 245, 239, .18) 340deg,
    #f7f5ef 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box exclude, linear-gradient(#fff 0 0);
  filter: drop-shadow(0 0 3px rgba(247, 245, 239, .38));
  animation: bd-header-edge-light 4s linear infinite;
  transition: opacity .2s ease;
}

body:not(.bd-start-page-body) .brandegree-global-header .brandegree-cta:not(.bd-start-header-current):is(:hover, :focus-visible)::after {
  animation-play-state: paused;
  opacity: 0;
}

body:not(.bd-start-page-body) .brandegree-global-header .brandegree-cta:not(.bd-start-header-current):is(:hover, :focus-visible)::before {
  opacity: 0;
}

@keyframes bd-header-edge-light {
  to { --bd-header-edge-angle: 360deg; }
}

@media (prefers-reduced-motion: reduce) {
  body .brandegree-global-header .brandegree-cta::after {
    animation: none !important;
    opacity: 0;
  }
}
