.bgx-cta{
  --cta-ink:#0A1A33; --cta-deep:#071631; --cta-accent:#1F5FB4; --cta-accent-lt:#7FB0F0;
  --cta-font:"Plus Jakarta Sans","Inter","Helvetica Neue",Arial,sans-serif;
  position:relative; overflow:hidden; isolation:isolate; font-family:var(--cta-font); color:#fff;
  padding-left:clamp(16px,4vw,48px); padding-right:clamp(16px,4vw,48px);
}
.bgx-cta *,.bgx-cta *::before,.bgx-cta *::after{box-sizing:border-box}
.bgx-cta__wrap{max-width:1268px; margin:0 auto; position:relative}

/* shared button */
.bgx-cta__btn{
  display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:17px 30px;
  background:#fff; color:var(--cta-ink) !important; text-decoration:none !important;
  font:600 15.5px/1 var(--cta-font); letter-spacing:.01em; border:0; border-radius:0; cursor:pointer; white-space:nowrap;
  transition:background .2s ease, color .2s ease;
}
.bgx-cta__btn svg{transition:transform .2s ease}
.bgx-cta__btn:hover{background:var(--cta-accent); color:#fff !important}
.bgx-cta__btn:hover svg{transform:translateX(4px)}
.bgx-cta__btn:focus-visible{outline:3px solid var(--cta-accent-lt); outline-offset:3px}
.bgx-cta__meta{display:inline-flex; align-items:center; gap:8px; margin:0; font-size:13.5px; color:rgba(255,255,255,.62)}
.bgx-cta__meta svg{flex:none; color:var(--cta-accent-lt)}

/* shared heading */
.bgx-cta__h2{margin:0; font-size:clamp(26px,2.8vw,36px); line-height:1.18; font-weight:700; letter-spacing:-.02em; color:#fff; text-wrap:balance}

/* ================= MIDDLE BAND ================= */
.bgx-cta--mid{
  padding-top:64px; padding-bottom:64px;
  background:
    linear-gradient(90deg, rgba(31,95,180,.22) 0%, rgba(31,95,180,0) 55%),
    var(--cta-ink);
  border-top:1px solid rgba(127,176,240,.18); border-bottom:1px solid rgba(127,176,240,.18);
}
.bgx-cta--mid::before{ /* blueprint grid fading to the right */
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:40px 40px;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 70%); mask-image:linear-gradient(90deg,#000 0%,transparent 70%);
}
.bgx-cta--mid .bgx-cta__wrap{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:40px 72px}
.bgx-cta--mid .bgx-cta__text{position:relative; padding-left:28px}
.bgx-cta--mid .bgx-cta__text::before{content:""; position:absolute; left:0; top:6px; bottom:6px; width:4px; background:var(--cta-accent)}
.bgx-cta--mid .bgx-cta__p{margin:14px 0 0; max-width:640px; font-size:17px; line-height:1.6; color:rgba(255,255,255,.74)}
.bgx-cta--mid .bgx-cta__act{display:flex; flex-direction:column; align-items:flex-start; gap:12px}

/* ================= CLOSING BAND ================= */
.bgx-cta--end{
  padding-top:104px; padding-bottom:96px; text-align:center;
  background:
    radial-gradient(820px 460px at 50% 0%, rgba(31,95,180,.34), transparent 70%),
    linear-gradient(180deg,var(--cta-deep) 0%,var(--cta-ink) 100%);
}
.bgx-cta--end::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(900px 500px at 50% 30%,#000 20%,transparent 75%); mask-image:radial-gradient(900px 500px at 50% 30%,#000 20%,transparent 75%);
}
.bgx-cta--end .bgx-cta__wrap{max-width:860px}
.bgx-cta__eyebrow{
  display:inline-flex; align-items:center; gap:12px; margin:0 0 20px;
  font-size:12.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--cta-accent-lt);
}
.bgx-cta__eyebrow::before,.bgx-cta__eyebrow::after{content:""; width:28px; height:1px; background:currentColor; opacity:.6}
.bgx-cta--end .bgx-cta__h2{font-size:clamp(30px,4vw,46px); line-height:1.12; letter-spacing:-.022em}
.bgx-cta--end .bgx-cta__p{margin:20px auto 0; max-width:660px; font-size:18px; line-height:1.65; color:rgba(255,255,255,.74)}
.bgx-cta--end .bgx-cta__act{display:flex; flex-direction:column; align-items:center; gap:18px; margin-top:36px}
.bgx-cta__alt{margin:0; font-size:15px; color:rgba(255,255,255,.7)}
.bgx-cta__alt a{color:#fff !important; text-decoration:none !important; border-bottom:1px solid rgba(127,176,240,.6); padding-bottom:2px; transition:border-color .2s ease, color .2s ease}
.bgx-cta__alt a:hover{color:var(--cta-accent-lt) !important; border-color:var(--cta-accent-lt)}
.bgx-cta__trust{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px 28px; margin:44px auto 0; padding:28px 0 0;
  border-top:1px solid rgba(255,255,255,.12); list-style:none;
}
.bgx-cta__trust li{display:inline-flex; align-items:center; gap:9px; font-size:13.5px; color:rgba(255,255,255,.66)}
.bgx-cta__trust svg{flex:none; color:var(--cta-accent-lt)}

/* ================= RESPONSIVE ================= */
@media (max-width:900px){
  .bgx-cta--mid .bgx-cta__wrap{grid-template-columns:1fr; gap:28px}
  .bgx-cta--mid .bgx-cta__act{padding-left:28px}
}
@media (max-width:560px){
  .bgx-cta{padding-left:16px; padding-right:16px}
  .bgx-cta--mid{padding-top:48px; padding-bottom:48px}
  .bgx-cta--mid .bgx-cta__text{padding-left:20px}
  .bgx-cta--mid .bgx-cta__act{padding-left:0}
  .bgx-cta--mid .bgx-cta__p{font-size:16px}
  .bgx-cta--end{padding-top:72px; padding-bottom:64px}
  .bgx-cta--end .bgx-cta__p{font-size:16.5px}
  .bgx-cta__act{width:100%}
  .bgx-cta__btn{width:100%; justify-content:space-between; white-space:normal}
  .bgx-cta--end .bgx-cta__act{align-items:stretch}
  .bgx-cta__trust{flex-direction:column; align-items:center; gap:12px}
}
@media (max-width:400px){
  .bgx-cta{padding-left:12px; padding-right:12px}
  .bgx-cta__btn{padding:16px 18px; font-size:14.5px; gap:10px; letter-spacing:0}
}
@media (prefers-reduced-motion:reduce){.bgx-cta__btn,.bgx-cta__btn svg,.bgx-cta__alt a{transition:none}}
