:root{
  --brand:#7c3aed;
  --brand-600:#6d28d9;
  --ink:#111827;
}

[data-bs-theme="dark"]{
  --bs-body-bg:#020617;
  --bs-body-color:#e5e7eb;
  --bs-heading-color:#f9fafb;
  --bs-emphasis-color:#f9fafb;
}

body{
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,Arial;
  background: radial-gradient(circle at top, #eef2ff 0, #f9fafb 35%, #ffffff 70%);
}
[data-bs-theme="dark"] body{
  background: radial-gradient(circle at top, #111827 0, #020617 40%, #000 80%);
}

.navbar{
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.9) !important;
}
[data-bs-theme="dark"] .navbar{
  background: rgba(15,23,42,.9) !important;
  border-bottom-color:#1f2937 !important;
}
.navbar-brand{
  font-weight:800;
  letter-spacing:.4px;
}
.nav-link{
  position:relative;
  padding-inline:.75rem;
}
.nav-link::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:.2rem;
  margin-inline:auto;
  width:0;
  height:2px;
  background:var(--brand);
  transition:width .25s ease;
}
.nav-link:hover::after,
.nav-link:focus::after{
  width:60%;
}

.btn-brand{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  box-shadow:0 10px 25px rgba(124,58,237,.35);
}
.btn-brand:hover{
  background:var(--brand-600);
  border-color:var(--brand-600);
  color:#fff;
  transform:translateY(-1px);
}

#hero .carousel-item{
  height:100vh;
  min-height:620px;
}
#hero .hero-slide{
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  filter:brightness(.7);
}
#hero .overlay{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  text-align:center;
  color:#fff;
  padding:0 1rem;
  background: radial-gradient(circle at top, rgba(15,23,42,.7), transparent 55%);
}
#hero h1{
  text-shadow:0 12px 30px rgba(0,0,0,.6);
}

section{ padding:4rem 0; }
:target{ scroll-margin-top:90px; }

section h2.fw-bold{
  font-size:2rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  position:relative;
}
section h2.fw-bold::before{
  content:'';
  width:26px;
  height:4px;
  border-radius:999px;
  background:var(--brand);
}

/* Generic grid tiles */
.grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:1rem;
}
.tile{
  position:relative;
  border-radius:1rem;
  overflow:hidden;
  background:#f3f4f6;
  aspect-ratio:3/2;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(15,23,42,.12);
  transition:transform .35s ease, box-shadow .35s ease;
}
.tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}
.tile:hover img{ transform:scale(1.05); }
.tile:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(15,23,42,.18);
}
.span-6{ grid-column:span 6; }
.span-4{ grid-column:span 4; }
.span-3{ grid-column:span 3; }
@media (max-width:991px){
  .span-6{ grid-column:span 12; }
  .span-4,.span-3{ grid-column:span 6; }
}
@media (max-width:575px){
  .span-4,.span-3{ grid-column:span 12; }
}

.about-img{
  width:100%;
  height:100%;
  max-height:520px;
  object-fit:contain;
  background:#f3f4f6;
  border-radius:1rem;
  box-shadow:0 18px 45px rgba(15,23,42,.18);
  display:block;
}
@media (max-width: 991px){ .about-img{ max-height:400px; } }
@media (max-width:576px){
  .about-img{ max-height:300px; margin-bottom:1rem; }
}

/* Services */
.service-card{
  border:1px solid #e5e7eb;
  border-radius:1.25rem;
  overflow:hidden;
  height:100%;
  display:flex;
  flex-direction:column;
  background:#fff;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
[data-bs-theme="dark"] .service-card{
  background:#0f172a;
  border-color:#1f2a44;
  box-shadow:0 18px 40px rgba(15,23,42,.8);
}
.service-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(15,23,42,.18);
  border-color:#c4b5fd;
}
.svc-hero{
  height:150px;
  background-size:cover;
  background-position:center;
}
.svc-body{ padding:1rem 1.1rem; flex:1; }
.svc-footer{ padding:0 1.1rem 1rem; }

.service-card .svc-desc{ line-height:1.55; }
.service-card .svc-desc br{ line-height:1; }

[data-bs-theme="dark"] .modal-content{
  background:#0f172a;
  color:#e5e7eb;
}

footer{
  background:#0b1020;
  color:#cbd5e1;
}
footer a{ color:#a5b4fc; text-decoration:none; }
footer a:hover{ text-decoration:underline; }

.brand-logo{
  height:34px;
  width:auto;
  object-fit:contain;
  display:block;
}

.whatsapp-float{
  position:fixed;
  right:18px;
  bottom:18px;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:grid;
  place-items:center;
  box-shadow:0 10px 24px rgba(37,211,102,.35);
  z-index:1080;
  text-decoration:none;
  transition:transform .2s ease, filter .2s ease;
}
.whatsapp-float i{
  font-size:28px;
  line-height:1;
  color:#fff;
}
.whatsapp-float:hover{
  transform:translateY(-2px);
  filter:brightness(1.05);
}
@media (max-width:480px){
  .whatsapp-float{
    right:14px;
    bottom:14px;
    width:52px;
    height:52px;
  }
}

.auth-section{
  background: radial-gradient(circle at top left, #eef2ff 0, #f9fafb 40%, #ffffff 100%);
}
[data-bs-theme="dark"] .auth-section{
  background: radial-gradient(circle at top left, #312e81 0, #020617 60%, #000 100%);
}
.auth-card{
  border-radius:1.25rem;
  box-shadow:0 18px 40px rgba(15,23,42,.25);
  border:0;
}

/* Old bootstrap lightbox (if used anywhere) */
#lightbox .modal-content{ background: rgba(0,0,0,.88); }
#lightbox .btn-close{ filter: invert(1); }
#lightbox .carousel-control-prev-icon,
#lightbox .carousel-control-next-icon{
  background-image:none !important;
  width:3rem;height:3rem;
  border-radius:999px;
  border:1px solid #fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
#lightbox .carousel-control-prev-icon::after,
#lightbox .carousel-control-next-icon::after{
  font-size:2rem; line-height:1; color:#fff;
}
#lightbox .carousel-control-prev-icon::after{ content:"‹"; }
#lightbox .carousel-control-next-icon::after{ content:"›"; }

/* ===================== SAMPLE WORK (scoped) ===================== */
.work-section .work-card{
  border:0;border-radius:18px;overflow:hidden;background:#fff;cursor:pointer;
  box-shadow:0 12px 28px rgba(0,0,0,.08);transition:.18s;
}
.work-section .work-card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(0,0,0,.12);
}
.work-section .work-cover{
  width:100%;height:210px;object-fit:cover;display:block;background:#f1f1f1;
}
.work-section .work-mini-btn{
  border:0;padding:6px 10px;border-radius:10px;font-size:13px;line-height:1;background:#111;color:#fff;
}
.work-section .work-mini-btn.outline{
  background:#fff;color:#111;border:1px solid rgba(0,0,0,.12);
}
.work-section .work-previews{display:flex;gap:8px;margin-top:10px;overflow:hidden;}
.work-section .work-previews img{
  width:72px;height:50px;object-fit:cover;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:#eee;
}
.work-section .work-more{
  width:72px;height:50px;border-radius:12px;background:#111;color:#fff;font-size:12px;
  display:flex;align-items:center;justify-content:center;
}
.work-section .featured-row{
  border:1px solid rgba(0,0,0,.08);background:#fff;border-radius:18px;
  box-shadow:0 12px 28px rgba(0,0,0,.06);padding:14px;
}
.work-section .featured-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
@media (max-width: 992px){ .work-section .featured-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width: 576px){ .work-section .featured-grid{grid-template-columns:repeat(2,1fr);} }
.work-section .featured-tile{
  position:relative;border-radius:16px;overflow:hidden;cursor:pointer;background:#eee;
}
.work-section .featured-tile img{width:100%;height:120px;object-fit:cover;display:block;}
.work-section .featured-cap{
  position:absolute;left:0;right:0;bottom:0;padding:8px 10px;color:#fff;font-weight:700;font-size:12px;
  background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,0));
}

/* Custom lightbox overlay (used by work section) */
.lb-overlay{position:fixed;inset:0;display:none;background:rgba(0,0,0,.85);z-index:9999;padding:20px;}
.lb-overlay.show{display:flex;align-items:center;justify-content:center;}
.lb-box{width:min(1100px,96vw);border-radius:16px;overflow:hidden;background:#111;position:relative;box-shadow:0 18px 50px rgba(0,0,0,.5);}
.lb-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:linear-gradient(to bottom,rgba(0,0,0,.72),rgba(0,0,0,0));color:#fff;z-index:2;gap:10px;}
.lb-title{font-weight:800;letter-spacing:.3px;}
.lb-actions{display:flex;align-items:center;gap:8px;}
.lb-chip{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#fff;padding:6px 10px;border-radius:999px;font-size:13px;line-height:1;white-space:nowrap;}
.lb-btn{border:0;background:rgba(255,255,255,.12);color:#fff;padding:8px 10px;border-radius:10px;font-size:14px;line-height:1;}
.lb-close{width:38px;height:38px;border-radius:10px;font-size:22px;padding:0;}
.lb-stage{height:min(80vh,650px);display:flex;align-items:center;justify-content:center;background:#111;user-select:none;}
.lb-img{width:100%;height:100%;object-fit:contain;background:#111;}
.lb-cap{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;color:#fff;text-align:center;background:linear-gradient(to top,rgba(0,0,0,.68),rgba(0,0,0,0));z-index:2;}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:14px;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:28px;z-index:2;}
.lb-prev{left:12px;} .lb-next{right:12px;}
.lb-list{max-height:min(80vh,700px);overflow:auto;padding:14px;background:#111;}
.lb-list-item{display:flex;gap:12px;align-items:center;padding:10px;border-radius:14px;background:#0b0b0b;border:1px solid rgba(255,255,255,.08);margin-bottom:10px;cursor:pointer;}
.lb-list-thumb{width:110px;height:74px;border-radius:12px;object-fit:cover;background:#222;border:1px solid rgba(255,255,255,.10);flex:0 0 auto;}
.lb-list-text{color:#fff;}
.lb-list-text .t{font-weight:800;}
.lb-list-text .s{font-size:13px;color:rgba(255,255,255,.7);}

/* ===================== VIDEOS (scoped) ===================== */
.videos-section .vid-cat-card{
  border:0;overflow:hidden;border-radius:16px;box-shadow:0 10px 24px rgba(0,0,0,.08);
  cursor:pointer;background:#fff;transition:.18s;
}
.videos-section .vid-cat-card:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(0,0,0,.12);
}
.videos-section .vid-cat-cover{
  width:100%;height:200px;object-fit:cover;display:block;background:#f1f1f1;
}
.videos-section .vid-previews{display:flex;gap:8px;margin-top:10px;overflow:hidden;}
.videos-section .vid-previews img{
  width:72px;height:50px;object-fit:cover;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:#eee;
}
.videos-section .vid-more{
  width:72px;height:50px;border-radius:12px;background:#111;color:#fff;font-size:12px;
  display:flex;align-items:center;justify-content:center;
}
.videos-section .featured-row{
  border:1px solid rgba(0,0,0,.08);background:#fff;border-radius:18px;
  box-shadow:0 12px 28px rgba(0,0,0,.06);padding:14px;
}
.videos-section .featured-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
@media (max-width: 992px){ .videos-section .featured-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width: 576px){ .videos-section .featured-grid{grid-template-columns:repeat(2,1fr);} }
.videos-section .featured-tile{
  border-radius:16px;overflow:hidden;cursor:pointer;background:#eee;position:relative;
}
.videos-section .featured-tile img{width:100%;height:120px;object-fit:cover;display:block;}
.videos-section .featured-cap{
  position:absolute;left:0;right:0;bottom:0;padding:8px 10px;color:#fff;font-weight:800;font-size:12px;
  background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,0));
}

.modal-title-white{color:#fff;font-weight:800;text-shadow:0 2px 12px rgba(0,0,0,.55);}

.yt-lite{position:relative;width:100%;height:100%;background:#000;cursor:pointer;}
.yt-lite img{width:100%;height:100%;object-fit:cover;display:block;}
.yt-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:64px;height:44px;border-radius:12px;background:rgba(0,0,0,.55);
  display:flex;align-items:center;justify-content:center;z-index:2;
}
.yt-play:before{
  content:"";display:block;width:0;height:0;
  border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px;
}
.list-wrap{max-height:78vh;overflow:auto;background:#111;border-radius:14px;padding:14px;}
.list-item{background:#0b0b0b;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;margin-bottom:12px;}
.list-item:last-child{margin-bottom:0;}
.list-title{color:#fff;font-weight:800;margin-bottom:8px;}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; scroll-behavior:auto !important; }
}

/* Make bootstrap container full width on large screens */
@media (min-width: 992px){
  .container{
    max-width: 100% !important;
  }
}
