/* Sotoudeh Elementor widgets — advanced */
.sr-el-widget { box-sizing: border-box; }
.sr-el-pad--sm { padding: 0.75rem !important; }
.sr-el-pad--md { padding: 1.25rem !important; }
.sr-el-pad--lg { padding: 2rem !important; }
.sr-el-pad--none { padding: 0 !important; }
.sr-el-shadow--soft { box-shadow: 0 4px 20px rgba(15,23,42,.06); }
.sr-el-shadow--md { box-shadow: 0 10px 30px rgba(15,23,42,.1); }
.sr-el-shadow--lg { box-shadow: 0 20px 50px rgba(15,23,42,.14); }
.sr-el-shadow--none { box-shadow: none; }

.sr-el-hover-lift { transition: transform .25s cubic-bezier(.34,1.4,.64,1), box-shadow .25s; }
.sr-el-hover-lift:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(15,23,42,.12); }

.sr-el-anim { opacity: 0; animation-fill-mode: forwards; animation-duration: var(--sr-anim-dur, 600ms); animation-delay: var(--sr-anim-delay, 0ms); animation-timing-function: cubic-bezier(.16,1,.3,1); }
.sr-el-anim--fade { animation-name: srElFade; }
.sr-el-anim--fade-up { animation-name: srElFadeUp; }
.sr-el-anim--fade-right { animation-name: srElFadeRight; }
.sr-el-anim--zoom { animation-name: srElZoom; }
.sr-el-anim--slide-up { animation-name: srElSlideUp; }
@keyframes srElFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes srElFadeUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes srElFadeRight { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@keyframes srElZoom { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
@keyframes srElSlideUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .sr-el-anim { animation: none !important; opacity: 1 !important; }
}

.sr-el-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  padding: .7rem 1.25rem; border-radius: 12px; font-weight: 800; font-size: .95rem;
  text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s, box-shadow .15s;
}
.sr-el-btn:hover { transform: translateY(-1px); }
.sr-el-btn--primary { background: #2563eb; color: #fff !important; }
.sr-el-btn--ghost { background: transparent; color: inherit !important; border-color: currentColor; opacity: .95; }

.sr-el-cta--gradient { background-size: 200% auto; }
