/* Uses your palette variables */
:root{
  --rvp-bg:#004E89;
  --rvp-bg2:#003560;
  --rvp-text:#ffffff;
  --rvp-muted:#B0C4DE;
  --rvp-primary:#FF6B35;
  --rvp-primaryLight:#FF8C5A;
  --rvp-border:1px solid rgba(255,255,255,.12);
  --rvp-shadow:0 20px 60px rgba(0,0,0,.35);
  --rvp-radius:22px;
  --rvp-container:min(1180px, calc(100% - 32px));

  --mx:0px;
  --my:0px;
}

.finalCta{
  position:relative;
  overflow:hidden;
  padding: clamp(56px, 6.6vw, 120px) 0;
  color: var(--rvp-text);
  background:
    radial-gradient(60% 55% at 40% 0%, rgba(255,107,53,.16), rgba(0,0,0,0) 62%),
    linear-gradient(180deg, var(--rvp-bg), var(--rvp-bg2));
}

.finalCta__bg{ position:absolute; inset:0; pointer-events:none; opacity:.95; }

.finalCta__orb{
  position:absolute;
  width: 560px; height: 560px;
  border-radius:999px;
  filter: blur(38px);
  transform: translate3d(calc(var(--mx) * .28), calc(var(--my) * .28), 0);
  will-change: transform;
  opacity:.55;
  mix-blend-mode: screen;
  animation: fctaFloat 11s ease-in-out infinite;
}
.finalCta__orb--1{
  left:-240px; top:-260px;
  background: radial-gradient(circle at 30% 30%, rgba(255,107,53,.32), rgba(255,107,53,0) 60%);
}
.finalCta__orb--2{
  right:-260px; top:30px;
  background: radial-gradient(circle at 35% 35%, rgba(176,196,222,.16), rgba(176,196,222,0) 62%);
  animation-duration: 13s;
}
.finalCta__orb--3{
  left: 22%; bottom: -300px;
  background: radial-gradient(circle at 35% 35%, rgba(0,53,96,.30), rgba(0,53,96,0) 62%);
  animation-duration: 12s;
}

@keyframes fctaFloat{
  0%,100%{ transform: translate3d(calc(var(--mx) * .28), calc(var(--my) * .28), 0) scale(1); }
  50%{ transform: translate3d(calc(var(--mx) * .38), calc(var(--my) * .38), 0) scale(1.06); }
}

.finalCta__gridGlow{
  position:absolute;
  inset:-40%;
  background:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity: .12;
  transform: translate3d(calc(var(--mx) * .10), calc(var(--my) * .10), 0);
}

.finalCta__wrap{
  position:relative;
  width: var(--rvp-container);
  margin-inline:auto;
}

.finalCta__card{
  border-radius: calc(var(--rvp-radius) + 6px);
  border: var(--rvp-border);
  background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.10));
  box-shadow: var(--rvp-shadow);
  overflow:hidden;
  display:grid;
  grid-template-columns: 1.2fr .8fr;
}

.finalCta__card::before{
  content:"";
  position:absolute;
  inset:-60%;
  background:
    radial-gradient(closest-side at 30% 25%, rgba(255,140,90,.18), rgba(255,140,90,0) 62%),
    radial-gradient(closest-side at 70% 65%, rgba(0,78,137,.22), rgba(0,78,137,0) 62%);
  opacity: .9;
  pointer-events:none;
}

.finalCta__content{
  position:relative;
  padding: clamp(18px, 3.2vw, 32px);
}

.finalCta__kicker{
  margin:0 0 10px;
  display:inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  border: var(--rvp-border);
  background: rgba(0,0,0,.18);
  color: rgba(255,255,255,.90);
  font-size: 13px;
  font-weight: 900;
}

.finalCta__title{
  margin:0 0 10px;
  font-size: clamp(26px, 3.4vw, 46px);
  line-height: 1.10;
  text-wrap: balance;
}

.finalCta__lead{
  margin:0 0 14px;
  color: rgba(255,255,255,.82);
  font-size: clamp(14px, 1.1vw, 17px);
  line-height: 1.75;
  max-width: 70ch;
}

.finalCta__points{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 18px;
}
.finalCta__point{
  padding: 10px 12px;
  border-radius: 999px;
  border: var(--rvp-border);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.88);
  font-weight: 900;
  font-size: 12px;
}

.finalCta__actions{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}

.fctaBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 16px;
  font-weight: 950;
  font-size: 13px;
  text-decoration:none;
  border: var(--rvp-border);
  background: rgba(255,255,255,.08);
  color: #fff;
  cursor:pointer;
  transition: transform 150ms ease, box-shadow 220ms ease, background 220ms ease, border-color 220ms ease;
}
.fctaBtn:active{ transform: scale(.985); }

.fctaBtn__hint{
  font-size: 11px;
  font-weight: 900;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
}

.fctaBtn--primary{
  background: linear-gradient(180deg, var(--rvp-primaryLight), var(--rvp-primary));
  border-color: rgba(255,107,53,.35);
  box-shadow: 0 16px 44px rgba(255,107,53,.22);
  color:#fff;
}
.fctaBtn--ghost{
  background: rgba(255,255,255,.10);
}
.fctaBtn--outline{
  background: rgba(0,0,0,.16);
}

.finalCta__note{
  margin:0;
  color: rgba(255,255,255,.72);
  line-height: 1.7;
  font-size: 13px;
}

/* Side */
.finalCta__side{
  position:relative;
  border-inline-start: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(60% 60% at 20% 0%, rgba(255,107,53,.18), rgba(0,0,0,0) 62%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.10));
  padding: clamp(18px, 2.8vw, 28px);
}

.finalCta__sideTitle{
  margin:0 0 4px;
  font-size: 16px;
}
.finalCta__sideLead{
  margin:0 0 12px;
  color: rgba(255,255,255,.74);
  font-size: 13px;
  line-height: 1.6;
}

.finalCta__form{
  display:grid;
  gap: 10px;
  margin-bottom: 12px;
}

.finalCta__field{
  display:grid;
  gap: 6px;
}
.finalCta__field span{
  font-size: 12px;
  font-weight: 900;
  color: rgba(255,255,255,.84);
}

.finalCta__field input,
.finalCta__field select,
.finalCta__field textarea{
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  padding: 12px 12px;
  font-size: 13px;
  color: #fff;
  outline: none;
}
.finalCta__field textarea{
  min-height: 96px;
  resize: vertical;
}
.finalCta__field input::placeholder,
.finalCta__field textarea::placeholder{ color: rgba(255,255,255,.55); }

.finalCta__sideActions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}

.fctaMini{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 12px 14px;
  border-radius: 14px;
  text-decoration:none;
  font-weight: 950;
  font-size: 13px;
  border: var(--rvp-border);
  transition: transform 150ms ease, box-shadow 220ms ease, background 220ms ease, border-color 220ms ease;
}
.fctaMini:active{ transform: scale(.985); }
.fctaMini--primary{
  color:#fff;
  background: linear-gradient(180deg, var(--rvp-primaryLight), var(--rvp-primary));
  border-color: rgba(255,107,53,.35);
  box-shadow: 0 16px 44px rgba(255,107,53,.22);
}
.fctaMini--ghost{
  color:#fff;
  background: rgba(255,255,255,.10);
}

.finalCta__trust{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.finalCta__trustItem{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding: 10px;
}
.finalCta__trustItem strong{
  display:block;
  font-size: 12px;
  margin-bottom: 2px;
}
.finalCta__trustItem span{
  display:block;
  font-size: 12px;
  color: rgba(255,255,255,.70);
}

/* Reveal */
[data-fcta-reveal]{
  opacity:0;
  transform: translateY(12px);
  transition: opacity 520ms ease, transform 520ms ease;
  will-change: opacity, transform;
}
.is-fcta-revealed[data-fcta-reveal]{ opacity:1; transform: translateY(0); }

@media (max-width: 980px){
  .finalCta__card{ grid-template-columns: 1fr; }
  .finalCta__side{ border-inline-start: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .finalCta__trust{ grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce){
  .finalCta__orb{ animation:none !important; }
  [data-fcta-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
}
