/* Button interaction — single source of truth */
.c-btn-interact,
.c-cta:has(.cta-btn_icon),
.c-join_btn,
.quantum-zenith-design-system--footer-button,
.c-opening_link {
  position: relative;
  overflow: hidden;
  --y: 100%;
  --color: black;
  text-decoration: none;
  transition: border-color 0.4s ease;
  cursor: pointer;
}

.c-btn-interact::before,
.c-cta:has(.cta-btn_icon)::before,
.c-join_btn::before,
.quantum-zenith-design-system--footer-button::before,
.c-opening_link::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--color);
  transform: translateY(var(--y));
  transition: transform 0.3s ease-in-out;
}

.c-btn-interact > *,
.c-cta:has(.cta-btn_icon) > *,
.c-join_btn > *,
.quantum-zenith-design-system--footer-button > *,
.c-opening_link > * {
  position: relative;
}

.c-btn-interact.cc-black,
.c-cta:has(.cta-btn_icon).cc-black,
.c-join_btn.cc-black,
.quantum-zenith-design-system--footer-button.cc-black {
  --color: #e30110;
}

.c-btn-interact:hover,
.c-cta:has(.cta-btn_icon):hover,
.c-join_btn:hover,
.quantum-zenith-design-system--footer-button:hover,
.c-opening_link:hover {
  --y: 0%;
  border-color: var(--color);
}

.c-btn-interact:hover .solution-button_text,
.c-btn-interact:hover .product-button_text,
.c-btn-interact:hover .hero-button_text,
.c-btn-interact:hover .cc-button_text,
.c-btn-interact:hover .link-text,
.c-btn-interact:hover .contact-button_text,
.c-btn-interact:hover .quantum-zenith-design-system--footer-button_text,
.c-cta:has(.cta-btn_icon):hover .solution-button_text,
.c-cta:has(.cta-btn_icon):hover .product-button_text,
.c-cta:has(.cta-btn_icon):hover .hero-button_text,
.c-cta:has(.cta-btn_icon):hover .cc-button_text,
.c-cta:has(.cta-btn_icon):hover .link-text,
.c-cta:has(.cta-btn_icon):hover .contact-button_text,
.c-cta:has(.cta-btn_icon):hover .quantum-zenith-design-system--footer-button_text {
  color: #fff;
}

.c-btn-interact:hover svg,
.c-cta:has(.cta-btn_icon):hover svg,
.c-join_btn:hover svg,
.quantum-zenith-design-system--footer-button:hover svg,
.c-opening_link:hover svg {
  color: #fff;
}

.c-btn-interact:hover img,
.c-cta:has(.cta-btn_icon):hover img,
.c-join_btn:hover img,
.quantum-zenith-design-system--footer-button:hover img,
.c-opening_link:hover img {
  filter: brightness(0) invert(1);
}

.c-btn-interact.cc-disabled {
  --y: 100%;
  cursor: not-allowed;
}

/* Monotone variant (secondary buttons) — black text, white bg */
.c-btn-interact.cc-monotone {
  color: #000;
}

.c-btn-interact.cc-monotone:hover {
  color: #fff;
}
