  body { font-family: 'DM Sans', sans-serif; }
  .font-display { font-family: 'Playfair Display', Georgia, serif; }
  @keyframes fadeUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
  @keyframes pulse-dot { 0%,100%{opacity:1} 50%{opacity:.3} }
  @keyframes wa-pop { 0%{transform:scale(0);opacity:0} 60%{transform:scale(1.15);opacity:1} 80%{transform:scale(.93)} 100%{transform:scale(1);opacity:1} }
  .anim-fadeup  { animation: fadeUp .8s ease both; }
  .anim-fadeup2 { animation: fadeUp .8s .2s ease both; }
  .pulse-dot    { animation: pulse-dot 2s infinite; }
  .wa-pop       { animation: wa-pop 2.5s 2s ease both; }
  select option { background:#3D0E6B; color:#fff; }
  .hero-overlay {
    background: linear-gradient(105deg, rgba(30,10,46,.90) 0%, rgba(61,14,107,.75) 55%, rgba(61,14,107,.40) 100%),
                linear-gradient(to top, rgba(30,10,46,.70) 0%, transparent 40%);
  }
  .grid-pattern {
    background-image: linear-gradient(rgba(124,58,237,.05) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(124,58,237,.05) 1px, transparent 1px);
    background-size: 60px 60px;
  }
  .card-hover { transition: transform .3s, box-shadow .3s, border-color .3s; }
  .card-hover:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(0,0,0,.1); }
  .service-bar::before {
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:#7C3AED; transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
  }
  .service-bar:hover::before { transform:scaleX(1); }
  .steps-line::before {
    content:''; position:absolute; top:36px; left:calc(12.5% + 28px); right:calc(12.5% + 28px);
    height:1px; background:linear-gradient(90deg,#7C3AED,rgba(124,58,237,.2));
  }
  input:focus, select:focus, textarea:focus { outline:none; border-color:#A855F7 !important; background:rgba(255,255,255,.13) !important; }
  input::placeholder, textarea::placeholder { color:rgba(255,255,255,.3); }
