/* Home page styles */
.hero{position:relative; width:100%; height:72vh; min-height:520px; border-radius:16px; overflow:hidden; margin-top:18px}
.hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.55) saturate(1.1)}
.hero-overlay{position:absolute; inset:0; background:
  radial-gradient(60% 60% at 70% 20%, rgba(139,92,246,.25), transparent 60%),
  radial-gradient(80% 70% at 10% 100%, rgba(139,92,246,.18), transparent 65%);}
.hero-content{position:relative; z-index:2; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; text-align:center; padding:0 16px;}
.hero-title{max-width:900px; margin:0; font-size: clamp(28px, 5vw, 56px); font-weight:700; letter-spacing:.2px;
  text-shadow: 0 0 18px rgba(139,92,246,.35), 0 0 36px rgba(139,92,246,.2);}
.btn-primary{transition: transform .12s ease, filter .12s ease;}
.btn-primary:hover{ transform: translateY(-1px)}

/* Before/After */
.before-after{margin:60px auto 30px; max-width:1100px; padding:0 10px}
.ba-wrap{position:relative; width:100%; aspect-ratio: 16/8.5; border-radius:16px; overflow:hidden; background:#0f0f13; box-shadow: 0 0 22px rgba(139,92,246,.18)}
.ba-wrap img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; user-select:none; -webkit-user-drag:none;}
.ba-before{filter:brightness(.92)}
.ba-after{clip-path: inset(0 50% 0 0); transition: clip-path .05s linear}
.ba-handle{position:absolute; top:0; bottom:0; left:50%; width:2px; background:rgba(255,255,255,.35)}
.ba-handle span{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.35); box-shadow:0 0 14px rgba(139,92,246,.45)}
.ba-range{width:100%; margin-top:10px; appearance:none; background:transparent}
.ba-range::-webkit-slider-runnable-track{height:6px; background:linear-gradient(90deg, rgba(139,92,246,.55), rgba(139,92,246,.15)); border-radius:10px}
.ba-range::-webkit-slider-thumb{appearance:none; width:18px; height:18px; border-radius:50%; background:#a78bfa; margin-top:-6px; box-shadow:0 0 12px rgba(139,92,246,.45)}

/* Services */
.services{margin:64px auto 30px; max-width:1100px; padding:0 10px; text-align:center}
.services h2{font-size: clamp(24px, 3.6vw, 40px); margin-bottom:18px; text-shadow: 0 0 18px rgba(139,92,246,.35)}
.services-grid{display:grid; gap:16px; grid-template-columns: repeat(3, 1fr)}
.service-card{position:relative; border-radius:16px; overflow:hidden; text-decoration:none; color:#fff; padding:0; height:260px;
  border:1px solid rgba(139,92,246,.25); background:#0f0f13; box-shadow: 0 0 18px rgba(139,92,246,.12); transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;}
.service-card .img-base, .service-card .img-hover{position:absolute; inset:0; background-image:var(--img); background-size:cover; background-position:center}
.service-card .img-hover{opacity:0; background-image:var(--img2); transition: opacity .25s ease}
.service-card:hover{transform: translateY(-2px); box-shadow: 0 0 24px rgba(139,92,246,.38); border-color: rgba(139,92,246,.45)}
.service-card:hover .img-hover{opacity:1}
.caption-top{position:absolute; top:14px; left:50%; transform:translateX(-50%); font-weight:600; font-size:20px; text-shadow:0 0 12px rgba(139,92,246,.4);}
.caption-bottom{position:absolute; bottom:12px; left:50%; transform:translateX(-50%); font-weight:500; font-size:16px; color:#dcdcf8; text-shadow:0 0 10px rgba(139,92,246,.35);}

/* Partner */
.partners{margin:54px auto 24px; max-width:1100px; padding:0 10px; text-align:center}
.partners h2{font-size: clamp(24px, 3.6vw, 40px); margin-bottom:16px; text-shadow: 0 0 18px rgba(139,92,246,.35)}
.partners-grid{display:grid; gap:14px; grid-template-columns: repeat(4, 1fr)}
.partner-card{height:86px; display:flex; align-items:center; justify-content:center; border-radius:14px; background:#0f0f13;
  border:1px solid rgba(139,92,246,.25); box-shadow: 0 0 16px rgba(139,92,246,.15); transition: transform .12s ease, box-shadow .12s ease;}
.partner-card:hover{transform: translateY(-1px); box-shadow: 0 0 22px rgba(139,92,246,.35)}
.partner-card img{max-width:70%; max-height:56px; filter:brightness(1);}

/* Location */
.location{margin:56px auto 20px; max-width:1100px; padding:0 10px; text-align:center}
.location h2{font-size: clamp(24px, 3.6vw, 40px); margin-bottom:16px; text-shadow: 0 0 18px rgba(139,92,246,.35)}
.loc-grid{display:grid; gap:16px; grid-template-columns: 1.2fr .8fr}
.card-glow{border:1px solid rgba(139,92,246,.25); border-radius:16px; overflow:hidden; background:#0f0f13; box-shadow: 0 0 18px rgba(139,92,246,.18)}
.loc-map{height:360px}
.loc-info{padding:16px; text-align:left}
.loc-info h3{margin-top:4px}

@media (max-width: 980px){
  .services-grid{grid-template-columns: 1fr}
  .partner-card{height:76px}
  .loc-grid{grid-template-columns: 1fr}
  .loc-map{height:300px}
}
