/* -- Button hover states -- */
.hero-btn-primary {
    transition: filter 0.2s ease, transform 0.15s ease;
}
.hero-btn-primary:hover,
.hero-btn-primary:focus {
    filter: brightness(1.12);
    transform: translateY(-1px);
}

.hero-btn-outline-secondary {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.hero-btn-outline-secondary:hover,
.hero-btn-outline-secondary:focus {
    background-color: var(--bs-secondary) !important;
    color: #fff !important;
    border-color: var(--bs-secondary) !important;
    transform: translateY(-1px);
}

.hero-btn-outline-primary-light {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.hero-btn-outline-primary-light:hover,
.hero-btn-outline-primary-light:focus {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
    border-color: var(--bs-primary) !important;
    transform: translateY(-1px);
}
/* sticky intro + hover CTA / links */
.services__intro {
  align-self: flex-start;
}

@media (min-width: 992px) {
  .services__intro {
    position: sticky;
    top: 6rem;
    z-index: 2;
  }
}

.services__hero-cta--lift {
  transition: filter 0.2s ease, transform 0.2s ease;
}

.services__hero-cta--lift:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.services__link--lift {
  transition: filter 0.2s ease;
}

.services__link--lift:hover {
  filter: brightness(1.12);
}


.motion-beacon__section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.motion-beacon__inner {
    max-width: 64rem;
}

.motion-beacon__plaque--shift:hover { transform: scale(1.05); transition: transform .2s ease; }

@keyframes motion-beacon-pin-blink-loop {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.motion-beacon__pin--blink {
    animation: motion-beacon-pin-blink-loop 2s cubic-bezier(.4,0,.6,1) infinite;
}

.motion-beacon__appeal--shift:hover { transform: scale(1.05); transition: transform .2s ease; }

.motion-beacon__action--shift:hover { transform: scale(1.05); transition: transform .2s ease; }

.motion-beacon__tile--shift:hover { transform: scale(1.05); transition: transform .2s ease; }

.motion-beacon__radial-row-bs {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
}

.motion-beacon__radial-row-bs > .motion-beacon__plaque--shift {
    flex: 1 1 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .motion-beacon__radial-row-bs > .motion-beacon__plaque--shift {
        flex: 1 1 calc((100% - (var(--motion-beacon-radial-cols, 3) - 1) * 1.5rem) / var(--motion-beacon-radial-cols, 3));
        max-width: calc((100% - (var(--motion-beacon-radial-cols, 3) - 1) * 1.5rem) / var(--motion-beacon-radial-cols, 3));
    }
}

