/* Closing CTA (HTML Block "Closing CTA", Elementor) — dark.
   Hooked to CSS classes set on the block's containers and widgets.
   Every colour rule is deliberately weaker than the selectors Elementor writes
   for its own colour / background controls, so a colour picked in Elementor
   (section background, eyebrow, title lines, text, button) always wins. */
.elementor .e-con.qst-cta {
  --qst-cta-ink: #f4f4f0;
  --qst-cta-accent: #c6ff00;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  overflow: hidden;
  background-color: #0a0a0a;
  background-image:
    radial-gradient(52rem 26rem at 88% 8%, rgba(198,255,0,0.16), transparent 62%),
    radial-gradient(40rem 22rem at 0% 100%, rgba(198,255,0,0.08), transparent 60%);
  color: var(--qst-cta-ink);
  padding: clamp(4rem, 12vh, 8rem) clamp(1.25rem, 3vw, 4rem);
}
.qst-cta .elementor-widget { margin: 0; width: auto; max-width: 100%; }

.qst-cta .qst-cta__eyebrow .elementor-heading-title {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 0 0 1.2rem;
  font-size: clamp(0.72rem, 0.9vw, 0.9rem);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--qst-cta-accent);
}
.qst-cta .qst-cta__eyebrow .elementor-heading-title::before {
  content: "";
  width: 2.2rem;
  height: 3px;
  background: currentColor;
}
.qst-cta .qst-cta__title-1 .elementor-heading-title,
.qst-cta .qst-cta__title-2 .elementor-heading-title {
  margin: 0;
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(3.4rem, 9vw, 9rem);
  line-height: 0.9;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}
.qst-cta .qst-cta__title-1 .elementor-heading-title { color: var(--qst-cta-ink); }
.qst-cta .qst-cta__title-2 .elementor-heading-title { color: var(--qst-cta-accent); }
.qst-cta .qst-cta__text,
.qst-cta .qst-cta__text p {
  margin: 0;
  max-width: 40rem;
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  line-height: 1.65;
  color: rgba(244,244,240,0.72);
}
.elementor .e-con.qst-cta .qst-cta__text { margin: clamp(1.4rem, 3vh, 2rem) 0 clamp(1.6rem, 4vh, 2.4rem); }

.qst-cta .qst-cta__button .elementor-button {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1.15rem 2.2rem;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0a0a0a;
  background: var(--qst-cta-accent);
  border-radius: 999px;
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s;
}
.qst-cta .qst-cta__button .elementor-button::after {
  content: "→";
  font-size: 1.2em;
  line-height: 1;
  transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.qst-cta .qst-cta__button .elementor-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 40px -10px rgba(198,255,0,0.6);
}
.qst-cta .qst-cta__button .elementor-button:hover::after { transform: translateX(5px); }

.elementor .e-con.qst-cta__facts {
  display: flex;
  flex-flow: row wrap;
  gap: 0.6rem 2.2rem;
  width: auto;
  padding: 0;
  margin-top: clamp(2rem, 5vh, 3.2rem);
}
.elementor .e-con.qst-cta__facts .elementor-widget { width: auto; }
.qst-cta .qst-cta__fact,
.qst-cta .qst-cta__fact p {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--qst-cta-ink);
}
.qst-cta .qst-cta__fact p::before {
  content: "";
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  margin-right: 0.7rem;
  border-radius: 50%;
  background: var(--qst-cta-accent);
}

@media (prefers-reduced-motion: reduce) {
  .qst-cta .qst-cta__button .elementor-button,
  .qst-cta .qst-cta__button .elementor-button::after { transition: none; }
  .qst-cta .qst-cta__button .elementor-button:hover { transform: none; }
}
