/* Support4u v10 — premium animations + UX polish */
:root{--anim-ease:cubic-bezier(.22,1,.36,1)}
body{animation:s4uPageIn .45s var(--anim-ease) both}
@keyframes s4uPageIn{from{opacity:0}to{opacity:1}}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .75s var(--anim-ease),transform .75s var(--anim-ease);will-change:opacity,transform}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}.reveal-delay-4{transition-delay:.32s}

.hero::after{content:"";position:absolute;inset:auto -20% -30% -20%;height:320px;background:radial-gradient(circle,rgba(56,189,248,.12),transparent 65%);pointer-events:none}

.btn,.admin-quick,.filter-btn,.project-card,.service-card,.case-card,.mini-card{will-change:transform}
.btn:hover,.admin-quick:hover,.filter-btn:hover{transform:translateY(-2px)}
.btn,.admin-quick,.filter-btn{transition:transform .22s var(--anim-ease),box-shadow .22s var(--anim-ease),border-color .22s var(--anim-ease),background .22s var(--anim-ease)}
.btn.primary:hover,.filter-btn.active:hover{box-shadow:0 14px 38px rgba(56,189,248,.22)}

.service-card{position:relative;overflow:hidden;transition:transform .28s var(--anim-ease),border-color .28s var(--anim-ease),box-shadow .28s var(--anim-ease)}
.service-card::before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(56,189,248,.18),transparent 34%);opacity:0;transition:opacity .28s ease;pointer-events:none}
.service-card:hover{transform:translateY(-6px);border-color:rgba(56,189,248,.28);box-shadow:0 22px 70px rgba(0,0,0,.28)}
.service-card:hover::before{opacity:1}.service-card>*{position:relative;z-index:1}

.projects-section{position:relative;overflow:hidden}
.projects-section::before{content:"";position:absolute;width:520px;height:520px;right:-180px;top:40px;background:radial-gradient(circle,rgba(56,189,248,.10),transparent 68%);pointer-events:none}
.project-card{position:relative;isolation:isolate}
.project-card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(56,189,248,.28),transparent 30%,transparent 70%,rgba(142,227,93,.12));opacity:0;z-index:-1;transition:opacity .28s ease}
.project-card:hover::after{opacity:1}
.project-media::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 45%,rgba(2,8,23,.26)),radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.12),transparent 28%);opacity:0;transition:opacity .28s ease;pointer-events:none}
.project-card:hover .project-media::after{opacity:1}

.project-more{position:relative;text-decoration:none}
.project-more::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:2px;background:#38bdf8;transition:right .24s var(--anim-ease)}
.project-card:hover .project-more::after{right:0}
.project-click a{pointer-events:auto}

.project-media img,.case-gallery-item img,.case-cover img{opacity:0;transition:opacity .45s ease,transform .5s var(--anim-ease),filter .5s var(--anim-ease)}
.project-media img.is-loaded,.case-gallery-item img.is-loaded,.case-cover img.is-loaded{opacity:1}

.filter-btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.filter-btn:not(.active):hover{border-color:rgba(56,189,248,.35);color:#38bdf8}

.mobile-cta{display:none}
@media(max-width:760px){
  .mobile-cta{position:fixed;left:12px;right:12px;bottom:12px;z-index:120;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;border:1px solid rgba(148,163,184,.16);background:rgba(2,8,23,.82);backdrop-filter:blur(16px);border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
  .mobile-cta a{display:flex;min-height:46px;align-items:center;justify-content:center;border-radius:16px;text-decoration:none;font-weight:900}
  .mobile-cta .call{background:#38bdf8;color:#00111c}
  .mobile-cta .mail{background:#0f172a;color:#fff;border:1px solid rgba(148,163,184,.18)}
  body{padding-bottom:78px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}
