﻿/* ████████████████████████████████████████████████████████████
   28. CTA SECTION
   ████████████████████████████████████████████████████████████ */

.cta { background: #fff; }

/* ── Card shell ── */
.cta__card {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  background: linear-gradient(130deg, #6B21C8 0%, #A855F7 40%, #C26FAE 75%, #E09898 100%);
  padding: 90px 56px;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 320px;
  isolation: isolate;
}

/* ── Dot-grid pattern overlay ── */
.cta__pattern {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='1.2' fill='rgba(255,255,255,0.09)'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 0;
}

/* ── Orbs ── */
.cta__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(64px);
  z-index: 0;
}
.cta__orb--1 {
  width: 400px;
  height: 400px;
  background: rgba(255,255,255,.12);
  top: -110px;
  right: 4%;
  animation: cta-orb-drift 9s ease-in-out infinite alternate;
}
.cta__orb--2 {
  width: 260px;
  height: 260px;
  background: rgba(70,192,223,.22);
  bottom: -90px;
  left: 5%;
  animation: cta-orb-drift 12s ease-in-out infinite alternate-reverse;
}
.cta__orb--3 {
  width: 160px;
  height: 160px;
  background: rgba(254,220,49,.14);
  top: 25%;
  left: 20%;
  animation: cta-orb-drift 14s ease-in-out infinite alternate;
}

@keyframes cta-orb-drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(20px, -24px) scale(1.1); }
}

/* ── Geometric rings ── */
.cta__ring {
  position: absolute;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.13);
  pointer-events: none;
  z-index: 0;
}
.cta__ring--1 {
  width: 460px;
  height: 460px;
  top: -160px;
  right: -80px;
  animation: cta-ring-spin 22s linear infinite;
}
.cta__ring--1::before {
  content: '';
  position: absolute;
  width: 11px;
  height: 11px;
  background: rgba(255,255,255,.5);
  border-radius: 50%;
  top: 50%;
  left: -5.5px;
  transform: translateY(-50%);
  box-shadow: 0 0 14px 5px rgba(255,255,255,.2);
}
.cta__ring--2 {
  width: 300px;
  height: 300px;
  bottom: -100px;
  left: -50px;
  border-color: rgba(255,255,255,.08);
  animation: cta-ring-spin 16s linear infinite reverse;
}
.cta__ring--2::before {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  background: rgba(70,192,223,.7);
  border-radius: 50%;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  box-shadow: 0 0 12px 4px rgba(70,192,223,.3);
}

@keyframes cta-ring-spin {
  to { transform: rotate(360deg); }
}

/* ── Floating service chips ── */
.cta__chip {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: .52rem 1.1rem;
  background: rgba(255,255,255,.13);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 100px;
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 700;
  color: rgba(255,255,255,.92);
  letter-spacing: .02em;
  pointer-events: none;
  z-index: 1;
  white-space: nowrap;
}
.cta__chip-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cta__chip--1 {
  top: 32px;
  left: 12%;
  animation: cta-chip-float 5.5s ease-in-out infinite;
}
.cta__chip--1 .cta__chip-dot { background: #FEDC31; box-shadow: 0 0 8px #FEDC31; }
.cta__chip--2 {
  top: 26px;
  right: 12%;
  animation: cta-chip-float 6.5s ease-in-out infinite .8s;
}
.cta__chip--2 .cta__chip-dot { background: #46C0DF; box-shadow: 0 0 8px #46C0DF; }
.cta__chip--3 {
  bottom: 32px;
  left: 9%;
  animation: cta-chip-float 7s ease-in-out infinite 1.4s;
}
.cta__chip--3 .cta__chip-dot { background: #FA3DC7; box-shadow: 0 0 8px #FA3DC7; }

@keyframes cta-chip-float {
  0%, 100% { transform: translateY(0px) rotate(-1.5deg); }
  50%       { transform: translateY(-10px) rotate(1.5deg); }
}

/* ── Body content ── */
.cta__body {
  position: relative;
  z-index: 2;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-md);
  max-width: 660px;
}

/* ── Live status badge ── */
.cta__badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: .42rem 1.15rem;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 100px;
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.cta__badge-pulse {
  position: relative;
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4ade80;
  flex-shrink: 0;
}
.cta__badge-pulse::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #4ade80;
  animation: cta-badge-pulse 2s ease-out infinite;
}

@keyframes cta-badge-pulse {
  0%   { transform: scale(1); opacity: .9; }
  100% { transform: scale(3); opacity: 0; }
}

/* ── Title ── */
.cta__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -.025em;
  line-height: 1.12;
  margin: 0;
}

/* Shimmering accent word */
.cta__title-shine {
  font-style: normal;
  display: inline-block;
  background: linear-gradient(
    90deg,
    #fff 0%,
    #fff 15%,
    #FEDC31 35%,
    #FA3DC7 50%,
    #46C0DF 65%,
    #fff 85%,
    #fff 100%
  );
  background-size: 260% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: cta-shimmer 3.5s linear infinite;
}

@keyframes cta-shimmer {
  0%   { background-position: 160% center; }
  100% { background-position: -100% center; }
}

/* ── Subtitle ── */
.cta__sub {
  font-family: var(--font-body);
  font-size: 1.05rem;
  color: rgba(255,255,255,.7);
  margin: 0;
  max-width: 460px;
  line-height: 1.6;
}

/* ── Actions row ── */
.cta__actions {
  display: flex;
  align-items: center;
  gap: var(--sp-md);
  flex-wrap: wrap;
  justify-content: center;
  margin-top: calc(var(--sp-sm) * .5);
}

/* Primary button with shine sweep */
.cta__btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: .6em;
  padding: .9rem 2.4rem;
  border-radius: var(--r-full);
  background: #fff;
  color: var(--clr-text);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  box-shadow: 0 6px 28px rgba(0,0,0,.20);
  transition: box-shadow .25s var(--ease), transform .25s var(--ease),
              gap .25s var(--ease);
}
.cta__btn span { position: relative; z-index: 1; }
.cta__btn svg  { position: relative; z-index: 1; flex-shrink: 0;
                 transition: transform .25s var(--ease); }
/* Shine layer */
.cta__btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: -90%;
  width: 55%;
  height: 100%;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.5) 50%, transparent 100%);
  transform: skewX(-18deg);
  pointer-events: none;
  transition: left 0s;
}
.cta__btn:hover::after {
  left: 150%;
  transition: left .5s ease;
}
.cta__btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 36px rgba(0,0,0,.28);
  gap: .85em;
}
.cta__btn:hover svg { transform: translateX(4px); }

/* Ghost text link */
.cta__link {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  font-family: var(--font-body);
  font-size: .92rem;
  font-weight: 700;
  color: rgba(255,255,255,.78);
  text-decoration: none;
  padding-bottom: 2px;
  border-bottom: 1.5px solid rgba(255,255,255,.28);
  transition: color .2s var(--ease), border-color .2s var(--ease),
              gap .2s var(--ease);
}
.cta__link svg { flex-shrink: 0; transition: transform .2s var(--ease); }
.cta__link:hover {
  color: #fff;
  border-color: rgba(255,255,255,.8);
  gap: .6em;
}
.cta__link:hover svg { transform: translate(2px,-2px); }

/* ─── CTA Section responsive ─────────────────────────────────── */

/* Hide floating decoration on smaller screens */
@media (max-width: 992px) {
  .cta__chip { display: none; }
  .cta__ring { display: none; }
}

@media (max-width: 768px) {
  .cta__card  { padding: 60px 28px; border-radius: 20px; }
  .cta__title { font-size: clamp(1.7rem, 6vw, 2.4rem); }
  .cta__sub   { font-size: .97rem; }
}

@media (max-width: 480px) {
  .cta__card    { padding: 52px 20px; }
  .cta__btn     { padding: .8rem 1.8rem; font-size: .95rem; }
  .cta__actions { flex-direction: column; gap: var(--sp-sm); }
  .cta__link    { border-bottom: none; text-decoration: underline; text-underline-offset: 3px; }
}