/* Uniform vervolgstapblok voor publieke MyShiftpilot-pagina's.
   Privacy en voorwaarden zijn de referentie: één leeskolombreedte en gecentreerde
   inhoud, zodat het blok op elke pagina exact dezelfde verhouding houdt. */
.cta-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: 820px;
  margin-top: 56px;
  margin-inline: auto;
  padding: clamp(32px, 4vw, 52px);
  border: 1px solid rgba(151, 176, 202, .3);
  border-radius: 22px;
  background:
    radial-gradient(circle at 88% 15%, rgba(230, 122, 46, .24), transparent 39%),
    linear-gradient(120deg, #111f2d 0%, #182330 56%, #332b2a 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.cta-banner .cb-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  right: -150px;
  top: -180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230, 122, 46, .35), transparent 70%);
  filter: blur(64px);
  opacity: .56;
  pointer-events: none;
}

.cta-banner .cb-body {
  position: relative;
  z-index: 1;
  display: block;
  text-align: center;
}

.cta-banner .cb-text h3 {
  max-width: 760px;
  margin: 0 auto 12px;
  color: var(--w, #fff);
  font-family: 'Barlow Condensed', 'Arial Narrow', Impact, sans-serif;
  font-size: clamp(30px, 3.3vw, 46px);
  font-weight: 900;
  letter-spacing: .015em;
  line-height: .98;
  text-transform: uppercase;
}

.cta-banner .cb-text h3 em {
  color: inherit;
}

.cta-banner .cb-text p {
  max-width: 660px;
  margin: 0 auto;
  color: rgba(255, 255, 255, .67);
  font-size: 16px;
  line-height: 1.55;
}

.cta-banner .cb-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
}

.cta-banner .cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 12px 24px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #fff;
  font-family: 'Barlow Condensed', 'Arial Narrow', Impact, sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .065em;
  text-transform: uppercase;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: all .28s cubic-bezier(.25, .1, .25, 1);
}

.cta-banner .cta-arrow {
  font-size: 17px;
  transition: transform .28s cubic-bezier(.25, .1, .25, 1);
}

.cta-banner .cta:hover .cta-arrow {
  transform: translateX(5px);
}

/* In een schermvullend sectieblok (pilot/faq) staat de banner los; geen extra topmarge nodig. */
.section-inner > .cta-banner {
  margin-top: 0;
}

.cta-banner .cta.ghost {
  border-color: rgba(210, 223, 236, .22);
  background: rgba(10, 18, 28, .12);
}

.cta-banner .cta.primary {
  border-color: transparent;
  background: #3b82f6;
  color: #fff;
  box-shadow: 0 12px 30px rgba(59, 130, 246, .32);
}

.cta-banner .cta.primary::after {
  content: '';
  position: absolute;
  top: 0;
  left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .22), transparent);
  transform: skewX(-18deg);
  transition: left .5s cubic-bezier(.16, 1, .3, 1);
}

.cta-banner .cta.primary:hover {
  background: #d56a1e;
  box-shadow: 0 8px 24px rgba(230, 122, 46, .35);
}

.cta-banner .cta.primary:hover::after {
  left: 140%;
}

.cta-banner .cta.ghost:hover {
  border-color: #e67a2e;
  background: rgba(230, 122, 46, .12);
  color: #e67a2e;
  transform: translateY(-1px);
}

.cta-banner .cta:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

@media (max-width: 680px) {
  .cta-banner {
    min-height: 0;
    margin-top: 40px;
    padding: 30px 22px;
  }

  .cta-banner .cb-text h3 {
    font-size: clamp(29px, 10vw, 38px);
  }

  .cta-banner .cb-text p {
    font-size: 16px;
  }

  .cta-banner .cb-actions {
    flex-direction: column;
    gap: 12px;
    margin-top: 24px;
  }

  .cta-banner .cta {
    width: 100%;
    min-height: 48px;
    padding: 11px 18px;
    justify-content: center;
    font-size: 16px;
  }
}
