
.ec-wrap{
  --ec-accent:#ec2f75;
  --ec-dark:#0d1535;
  --ec-text:#6b7280;
  position:relative;
  overflow:hidden;
  padding:88px 28px 72px;
  isolation:isolate;
  background:
    radial-gradient(circle at 10% 12%, color-mix(in srgb, var(--ec-accent) 10%, transparent) 0, transparent 22%),
    radial-gradient(circle at 90% 88%, color-mix(in srgb, var(--ec-accent) 9%, transparent) 0, transparent 22%),
    #fff;
}
.ec-heading{max-width:900px;margin:0 auto 48px;text-align:center;position:relative;z-index:2}
.ec-eyebrow{display:flex;align-items:center;justify-content:center;gap:16px;color:var(--ec-accent);font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.ec-eyebrow span{width:44px;height:1px;background:var(--ec-accent);opacity:.7}
.ec-title{margin:14px 0 12px;color:var(--ec-dark);font-size:clamp(34px,4.4vw,66px);line-height:1.02;letter-spacing:-.045em;font-weight:700}
.ec-description{max-width:760px;margin:0 auto;color:var(--ec-text);font-size:17px;line-height:1.7}
.ec-grid{max-width:1360px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;position:relative;z-index:2}
.ec-card{position:relative;min-height:500px;overflow:hidden;border:1px solid rgba(236,47,117,.12);background:#fff;box-shadow:0 20px 60px rgba(13,21,53,.08);text-decoration:none!important;transform-style:preserve-3d;transition:box-shadow .35s ease,border-color .35s ease,transform .15s ease}
.ec-card:hover{box-shadow:0 28px 80px rgba(13,21,53,.14);border-color:rgba(236,47,117,.28)}
.ec-card:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.2));pointer-events:none}
.ec-shine{position:absolute;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--ec-accent) 22%,transparent),transparent 68%);left:var(--mx,50%);top:var(--my,30%);transform:translate(-50%,-50%);opacity:0;transition:opacity .3s;pointer-events:none}
.ec-wrap[data-glow="1"] .ec-card:hover .ec-shine{opacity:1}
.ec-icon-stage{height:255px;display:grid;place-items:center;position:relative}
.ec-ring{position:absolute;border:1px solid color-mix(in srgb,var(--ec-accent) 23%,transparent);border-radius:50%}
.ec-ring--1{width:170px;height:170px}
.ec-ring--2{width:218px;height:218px;opacity:.55}
.ec-orbit{position:absolute;width:225px;height:110px;border:1px solid color-mix(in srgb,var(--ec-accent) 45%,transparent);border-radius:50%;transform:rotate(-14deg);animation:ecOrbit 8s linear infinite}
.ec-orbit i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--ec-accent);left:8px;top:48px;box-shadow:0 0 18px color-mix(in srgb,var(--ec-accent) 60%,transparent)}
.ec-icon{width:112px;height:112px;border-radius:34px;display:grid;place-items:center;color:#fff;font-size:45px;background:linear-gradient(145deg,color-mix(in srgb,var(--ec-accent) 75%,#fff),var(--ec-accent));box-shadow:0 22px 45px color-mix(in srgb,var(--ec-accent) 27%,transparent);position:relative;z-index:2}
.ec-icon svg{width:46px;height:46px;fill:currentColor}
.ec-card-body{padding:8px 32px 34px;text-align:center;position:relative;z-index:2}
.ec-mini-line{display:block;width:28px;height:2px;background:var(--ec-accent);margin:0 auto 18px}
.ec-card h3{margin:0;color:var(--ec-dark);font-size:25px;line-height:1.2;font-weight:700}
.ec-card p{margin:16px 0 24px;color:var(--ec-text);font-size:15.5px;line-height:1.65}
.ec-arrow{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid color-mix(in srgb,var(--ec-accent) 55%,transparent);border-radius:50%;color:var(--ec-accent);font-size:18px;transition:.28s}
.ec-card:hover .ec-arrow{transform:translateX(4px);background:var(--ec-accent);color:#fff}
.ec-bg-orb{position:absolute;border-radius:50%;filter:blur(8px);opacity:.28;z-index:-1}
.ec-bg-orb--1{width:250px;height:250px;background:color-mix(in srgb,var(--ec-accent) 20%,transparent);left:-120px;bottom:-90px}
.ec-bg-orb--2{width:290px;height:290px;background:color-mix(in srgb,var(--ec-accent) 14%,transparent);right:-160px;top:-90px}
.ec-anim-float{animation:ecFloat 3.4s ease-in-out infinite}
.ec-anim-pulse{animation:ecPulse 2.5s ease-in-out infinite}
.ec-anim-spin-slow{animation:ecSpin 9s linear infinite}
.ec-anim-bounce{animation:ecBounce 2.6s ease-in-out infinite}
.ec-anim-none{animation:none}
@keyframes ecFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(2deg)}}
@keyframes ecPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes ecSpin{to{transform:rotate(360deg)}}
@keyframes ecBounce{0%,100%{transform:translateY(0)}45%{transform:translateY(-14px)}60%{transform:translateY(-6px)}}
@keyframes ecOrbit{to{transform:rotate(346deg)}}
@media (prefers-reduced-motion:reduce){
  .ec-icon,.ec-orbit{animation:none!important}
  .ec-card{transition:none}
}
@media(max-width:1024px){
  .ec-wrap{padding:70px 22px}
  .ec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  .ec-wrap{padding:56px 16px}
  .ec-heading{margin-bottom:32px}
  .ec-grid{grid-template-columns:1fr}
  .ec-card{min-height:460px}
  .ec-title{font-size:38px}
}
