:root{
  --primary:#1e2a78;
  --primary-dark:#10194f;
  --accent:#e53935; /* red to echo card's red band */
  --text:#1d2330;
  --muted:#6b7385;
  --soft:#f4f6ff;
}
html,body{scroll-behavior:smooth}
body{
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  color:var(--text);
  line-height:1.7;
}
/* Topbar */
/* Topbar tidy */
/* .topbar { background: linear-gradient(90deg, var(--primary-dark), var(--primary)); color:#dbe2ff; }
.topbar a { color:#e8edff; text-decoration:none; }
.topbar .topbar-item { font-size:.95rem; line-height:1; }
.topbar .email { max-width: 360px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } */






/* Topbar tidy + no wrapping */
.topbar { background: var(--primary-900, #0f1a5a); color: #fff; font-size: .92rem; }
.topbar .topbar-item { display: inline-flex; align-items: center; gap: .35rem; color: inherit; }
.topbar .no-wrap { white-space: nowrap; }              /* keep +91 with number */
.topbar .sep { opacity: .55; }
.topbar a.text-reset:hover { opacity: .9; }

/* Email: avoid pushing layout on small screens */
.topbar .email span {
  display: inline-block;
  max-width: 280px;               /* desktop cap */
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: bottom;
}

/* Small devices: tighten & protect layout */
@media (max-width: 576.98px){
  .topbar { font-size: .88rem; }
  .topbar .email span { max-width: 160px; }  /* shorter on mobile */
  .topbar .topbar-left { display: none; }    /* hide GSTIN if space is tight; remove this line if you want it visible */
}

/* Brand sizing */
/* .brand-logo { height:70px; width:auto; } */
/* .navbar .brand-title { font-weight:700; font-size:1.5rem;  } */


.brand-logo {
  height: 75px;
  transition: transform 0.3s ease;
}
.brand-logo:hover {
  transform: scale(1.05);
}

.brand-title {
  font-weight: 700;
  font-size: 2.5rem !important;
  color: #fff;
  line-height: 1.1;
  letter-spacing:.5px; 
  text-transform:uppercase;
}

.brand-tagline {
  font-size: 0.75rem; /* decreased from 0.85rem */
  letter-spacing: 0.4px;
  color: rgba(255,255,255,0.85);
  font-family: 'Poppins', sans-serif;
  margin-top: -2px;
}


@media (max-width: 575.98px) {
  .brand-title { font-size: 1.5rem; }
  .brand-tagline { font-size: 0.7rem; }
}



/* Mobile optimizations */
@media (max-width: 576px){
  .topbar .container{
    gap:.35rem !important;
    flex-direction: column;
    align-items: stretch;
  }
  .topbar-left, .topbar-right{
    justify-content: space-between;
    flex-wrap: nowrap;
  }
  .topbar .topbar-item{ font-size:.9rem; }
  .topbar .email{ max-width: 100%; }
  .sep{ display:none !important; }

  .brand-logo{ height:40px; }
  .navbar .brand-title{ font-size:1.1rem; }
  /* Hide big CTA in collapsed nav; show inside menu if you want by adding a li link */
  .navbar .btn.btn-accent{ display:none; }
}

/* Slightly reduce on tablets too */
@media (min-width: 577px) and (max-width: 991.98px){
  .brand-logo{ height:44px; }
  .navbar .brand-title{ font-size:1.3rem; }
}

/* Navbar */
.bg-primary-gradient{
  background:linear-gradient(90deg,var(--primary),#2f3aa1);
}
.navbar .brand-title{
  font-family:'Rajdhani',sans-serif;
  letter-spacing:.5px;
  font-weight:700;
  text-transform:uppercase;
}
.logo-badge{
  display:inline-grid;place-items:center;
  width:40px;height:40px;border-radius:50%;
  background:#fff;color:var(--primary);
  font-weight:800;font-family:'Rajdhani',sans-serif;
}
.navbar .nav-link{font-weight:500;letter-spacing:.2px}
.navbar .nav-link.active,.navbar .nav-link:hover{color:#fff}
.btn-accent{
  background:var(--accent);color:#fff;border:none;
  box-shadow:0 10px 20px rgba(229,57,53,.3);
}
.btn-accent:hover{filter:brightness(.95);color:#fff; background-color: #1a3bb3;}





/* ===== Floating Buttons — compact, no horizontal overflow ===== */
.floating-buttons{
  position: fixed;
  bottom: max(14px, env(safe-area-inset-bottom));
  right: max(12px, env(safe-area-inset-right));
  display: flex;
  flex-direction: column;
  gap: 12px;
  z-index: 9999;
  pointer-events: none;           /* wrapper doesn't steal taps */
}

/* Make sure page never gets a right gutter */
html, body { max-width: 100vw; overflow-x: hidden; }

.float-btn{
  pointer-events: auto;
  width: 52px; height: 52px;
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: 22px; color:#fff; text-decoration:none;
  background:#25d366;             /* same brand green for both */
  box-shadow: 0 6px 16px rgba(37,211,102,.35);   /* modest shadow */
  position: relative;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
  will-change: transform;
}

/* Internal glow that doesn't affect layout width */
.float-btn::before{
  content:"";
  position:absolute; inset:0; border-radius:inherit;
  background: radial-gradient(closest-side, rgba(37,211,102,.55), rgba(37,211,102,0) 70%);
  filter: blur(6px);
  opacity: .65;
  z-index: -1;                     /* stays behind the circle */
  pointer-events: none;
  animation: pulse 1.8s ease-in-out infinite alternate;
}

@keyframes pulse{
  from { opacity: .45; transform: scale(.98); }
  to   { opacity: .75; transform: scale(1.06); }
}

/* Hover/focus (desktop only vibe) */
.float-btn:hover, .float-btn:focus{
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 12px 26px rgba(37,211,102,.55);
  outline: none;
}

/* Keep both buttons green; you can change call to blue if you want */
.float-btn.whatsapp { }
.float-btn.call     { }

/* Mobile sizing + avoid covering content */
@media (max-width: 576px){
  .float-btn{ width:48px; height:48px; font-size:20px; }
  body{ padding-bottom: 88px; }    /* breathing room under content */
}





/* Hero */
.hero-slide{
  height:78vh;min-height:480px;
  background: #000;
  background-image: var(--bg);
  background-size:cover;background-position:center;
  position:relative;
}
.hero-slide .overlay{
  position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.35));
}
.title-stroke{
  -webkit-text-stroke:1px rgba(255,255,255,.5);
}
/* Sections */
.section-padding{padding:80px 0}
.section-eyebrow{
  color:var(--accent);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.9rem;
}
.section-title{font-weight:800;color:var(--primary-dark)}
.bg-soft{background:var(--soft)}
.text-accent{color:var(--accent)!important}
/* Cards */
.service-card {
  background: #fff;
  border-radius: 20px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(30,42,120,.08);
  transition: transform .3s ease, box-shadow .3s ease;
  position: relative;
}

.service-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(30,42,120,.15);
}

/* Service image */
.service-img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform 0.4s ease;
  filter: brightness(0.9);
}

.service-card:hover .service-img {
  transform: scale(1.08);
  filter: brightness(1);
}

/* Icon box */
.icon-box {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 55px;
  height: 55px;
  background: var(--accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.6s ease, background 0.3s;
}

.icon-box .icon {
  font-size: 26px;
  color: #fff;
  transition: transform 0.6s ease;
}

/* Rotate icon once on hover */
.service-card:hover .icon-box .icon {
  transform: rotate(360deg);
}

/* Card text area */
.service-card .card-body h5 {
  margin-top: 15px;
  font-weight: 700;
  color: var(--primary-dark);
}

.service-card .card-body p {
  color: var(--muted);
  font-size: 0.95rem;
}


/* ===== Vision & Mission Cards ===== */
#vision-mission {
  background: linear-gradient(180deg, #f8f9ff 0%, #ffffff 100%);
}

.vm-card {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 10px 25px rgba(30, 42, 120, 0.08);
  padding: 30px 25px;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

.vm-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 40px rgba(30, 42, 120, 0.15);
}

.vm-card-body p {
  color: var(--text);
  font-size: 1rem;
  line-height: 1.8;
}

.vm-title {
  font-weight: 700;
  color: var(--primary-dark);
}

.vm-card ul li {
  margin-bottom: 0.6rem;
  font-weight: 500;
}

/* Decorative Icon */
.icon-circle {
  width: 60px;
  height: 60px;
  background: var(--accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 1.5rem;
  box-shadow: 0 5px 15px rgba(229, 57, 53, 0.3);
  transition: transform 0.4s ease, background 0.4s ease;
}

.vm-card:hover .icon-circle {
  transform: rotate(360deg);
  background: var(--primary);
}

@media (max-width: 767.98px) {
  .vm-card {
    padding: 25px 20px;
  }
}



#projects .carousel-item img {
  border-radius: 20px;
  transition: transform 0.4s ease;
}

#projects .carousel-item img:hover {
  transform: scale(1.05);
}

.project-details {
  background: #fff;
  border-radius: 20px;
  padding: 25px;
  box-shadow: 0 10px 25px rgba(30, 42, 120, 0.08);
  transition: transform 0.3s ease;
}

.project-details:hover {
  transform: translateY(-6px);
}

#projects .carousel-control-prev-icon,
#projects .carousel-control-next-icon {
  filter: invert(1);
  width: 40px;
  height: 40px;
}

#projects .carousel-indicators [data-bs-target] {
  background-color: var(--accent);
}

@media (max-width: 991.98px) {
  #projects .project-details {
    text-align: center;
  }
}




.why-item{
  background:#fff;border-radius:16px;padding:18px;border:1px solid #eef1ff;
  box-shadow:0 6px 20px rgba(30,42,120,.06);
}
.why-item i{font-size:26px;color:var(--accent)}
/* ===== Counters (Attractive Cards) ===== */
#achievements .counter-card{
  position:relative;
  background: linear-gradient(180deg, #ffffff 0%, #f7f9ff 100%);
  border-radius: 20px;
  padding: 28px 16px 24px;
  box-shadow: 0 12px 30px rgba(30,42,120,.10);
  overflow:hidden;
  transition: transform .35s ease, box-shadow .35s ease;
  will-change: transform;
}

/* gradient edge glow */
#achievements .counter-card::before{
  content:"";
  position:absolute; inset:-1px;
  border-radius:22px;
  padding:1px;
  background: linear-gradient(135deg, rgba(29,78,216,.25), rgba(229,57,53,.25));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}

/* soft background aurora */
#achievements .counter-card::after{
  content:"";
  position:absolute; width:220px; height:220px; right:-60px; top:-60px;
  background: radial-gradient(closest-side, rgba(29,78,216,.18), transparent 70%);
  filter: blur(6px);
}

#achievements .counter-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 18px 44px rgba(30,42,120,.18);
}

/* icon badge */
#achievements .badge-icon{
  width:56px; height:56px; border-radius:50%;
  display:grid; place-items:center;
  margin: 2px auto 10px;
  color:#fff; font-size:1.2rem;
  background: linear-gradient(135deg, var(--primary,#1e2a78), var(--accent,#e53935));
  box-shadow: 0 10px 22px rgba(229,57,53,.25);
  animation: floatBadge 3s ease-in-out infinite;
}
@keyframes floatBadge { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }

/* number */
#achievements .count-wrap{
  display:flex; align-items:baseline; justify-content:center; gap:6px;
}
#achievements .counter{
  font-family:'Rajdhani', sans-serif;
  font-size: 54px; line-height:1; font-weight: 800;
  color: var(--primary, #1e2a78);
  text-shadow: 0 4px 14px rgba(30,42,120,.14);
  display:inline-block;
  transform-origin: bottom center;
}
#achievements .suffix{
  font-weight:800; color: var(--primary,#1e2a78); opacity:.85;
}

#achievements .label{
  margin-top:10px; font-weight:600;
  color: var(--primary-dark, #152058);
}

/* subtle “pop” when finishing */
.counter-pop{ animation: pop .45s ease; }
@keyframes pop { 0%{transform:scale(1)} 60%{transform:scale(1.08)} 100%{transform:scale(1)} }

@media (max-width: 575.98px){
  #achievements .counter{ font-size: 44px; }
  #achievements .badge-icon{ width:52px; height:52px; }
}

/* Gallery */
#galleryGrid .g-item{
  position:relative;overflow:hidden;border-radius:16px;
  box-shadow:0 10px 26px rgba(30,42,120,.08);
}
#galleryGrid img{width:100%;height:220px;object-fit:cover;transition:transform .3s}
#galleryGrid .g-item:hover img{transform:scale(1.06)}
#galleryGrid .badge{
  position:absolute;top:12px;left:12px;background:rgba(0,0,0,.6);
  color:#fff;font-weight:600
}
/* Footer */
.footer{
  background:linear-gradient(180deg,var(--primary-dark),var(--primary));
}
.footer-title{font-family:'Rajdhani',sans-serif;font-size:1.4rem;font-weight:800}
.footer-subtitle{font-weight:700}
.footer-links li{margin:.5rem 0}
.footer a{color:#e8edff;text-decoration:none}
.footer a:hover{color:#fff}
.socials a{font-size:1rem}
/* Utilities */
.shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.1)}
@media (max-width: 991.98px){
  .hero-slide{height:64vh}
  .navbar .brand-title{font-size:1rem}
}







/* Testimonials Section */
.testimonial-card {
  transition: all 0.4s ease;
  border: 1px solid rgba(0,0,0,0.05);
}
.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(30,42,120,0.15);
}
.testimonial-card img {
  object-fit: cover;
  border: 3px solid var(--primary);
  box-shadow: 0 0 10px rgba(30,42,120,0.25);
}
.stars i {
  margin: 0 1px;
}
.carousel-control-prev-icon,
.carousel-control-next-icon {
  filter: invert(1);
  opacity: 0.8;
  transition: 0.3s;
}
.carousel-control-prev-icon:hover,
.carousel-control-next-icon:hover {
  opacity: 1;
}
.carousel-indicators [data-bs-target] {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}
