/* =========================================================
   Nexora Technologies — Theme overrides on top of Bootstrap 5
   Theme: Modern Corporate Blue
========================================================= */

:root{
  --bs-primary: #1355d8;
  --bs-primary-rgb: 19,85,216;
  --primary-dark: #0b3ea8;
  --primary-light: #e8f0ff;
  --accent: #14b8a6;
  --navy: #0b1730;
}

body{
  font-family:'Inter', sans-serif;
  color:#2a3346;
  padding-top:74px; /* offset for fixed navbar */
}

h1,h2,h3,h4,h5,h6,.logo,.navbar-brand{
  font-family:'Poppins', sans-serif;
}

a{ text-decoration:none; }

.btn-primary{
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: var(--primary-dark);
  --bs-btn-hover-border-color: var(--primary-dark);
  --bs-btn-active-bg: var(--primary-dark);
  box-shadow:0 8px 20px rgba(19,85,216,0.28);
}
.btn-outline-primary{
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
}
.text-primary{ color: var(--bs-primary) !important; }
.bg-light-blue{ background: #f5f8fd !important; }

/* ===== Preloader ===== */
#preloader{
  position:fixed; inset:0; background:#fff; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  transition: opacity .4s ease, visibility .4s ease;
}
#preloader.hidden{ opacity:0; visibility:hidden; }

/* ===== Navbar ===== */
#mainNav{
  box-shadow: 0 2px 16px rgba(11,23,48,0.05);
  transition: box-shadow .3s ease;
  padding-top:10px; padding-bottom:10px;
}
#mainNav.scrolled{ box-shadow: 0 4px 20px rgba(11,23,48,0.1); }
.logo{
  font-weight:800; font-size:1.35rem; color: var(--navy) !important;
  display:inline-flex; align-items:center; gap:8px;
}
.logo i, .logo span{ color: var(--bs-primary); }
.footer .logo, footer .logo{ color:#fff !important; }
.navbar-nav .nav-link{
  font-weight:500; color:#2a3346; position:relative; margin:0 6px;
}
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active{ color: var(--bs-primary); }

/* ===== Hero ===== */
.hero{
  padding:90px 0 70px;
  background: linear-gradient(180deg, #f5f8fd 0%, #fff 100%);
}
.badge-soft{
  display:inline-block; background: var(--primary-light); color: var(--bs-primary);
  font-weight:600; font-size:0.82rem; padding:7px 16px; border-radius:999px;
}
.hero-stats strong{ font-size:1.6rem; color: var(--navy); }

.hero-media{ min-height:380px; }
.hero-blob{
  position:absolute; inset:8% 8%;
  background: linear-gradient(135deg, var(--bs-primary), var(--accent));
  border-radius:38% 62% 63% 37% / 41% 44% 56% 59%;
  opacity:0.12;
  animation: blobMove 8s ease-in-out infinite;
}
@keyframes blobMove{
  0%,100%{ border-radius:38% 62% 63% 37% / 41% 44% 56% 59%; }
  50%{ border-radius:58% 42% 40% 60% / 55% 40% 60% 45%; }
}
.hero-card{
  position:absolute; background:#fff; border-radius:14px;
  padding:20px 24px; width:150px; text-align:center;
  animation: floatY 4s ease-in-out infinite;
}
.hero-card i{ font-size:1.6rem; color: var(--bs-primary); display:block; margin-bottom:8px; }
.hero-card p{ font-size:0.82rem; font-weight:600; color: var(--navy); margin:0; }
.card-1{ top:2%; left:4%; animation-delay:0s; }
.card-2{ top:36%; right:0; animation-delay:1.3s; }
.card-3{ bottom:4%; left:18%; animation-delay:2.6s; }
@keyframes floatY{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-14px); } }

/* ===== Sections ===== */
.section{ padding:100px 0; }
.section-tag{
  display:inline-block; color: var(--bs-primary); font-weight:700;
  font-size:0.82rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:14px;
}
.section-head{ max-width:640px; }
.section-head.light .section-tag{ color: var(--accent); }

/* ===== About ===== */
.about-media-box{
  background: linear-gradient(135deg, var(--bs-primary), var(--primary-dark));
  border-radius:14px; padding:60px 30px;
}
.about-media-box i{ font-size:3rem; margin-bottom:18px; }

/* ===== Product cards ===== */
.product-card{ border-radius:14px; transition: all .3s ease; cursor:pointer; }
.product-card:hover{ transform: translateY(-8px); box-shadow:0 20px 50px rgba(11,23,48,0.15) !important; }
.product-icon{
  width:58px; height:58px; border-radius:16px;
  background: var(--primary-light); color: var(--bs-primary);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem;
}
.product-price{ font-size:0.95rem; }

/* ===== Modal ===== */
.modal-content{ border-radius:14px; border:none; }
.modal-features li{ display:flex; align-items:center; gap:10px; margin-bottom:10px; font-size:0.93rem; font-weight:500; }
.modal-features i{ color: var(--accent); }

/* ===== Services ===== */
.service-card{ border-radius:14px; background:#fff; transition: all .3s ease; }
.service-card:hover{ transform: translateY(-6px); box-shadow:0 20px 50px rgba(11,23,48,0.12); }
.service-card i{ font-size:1.8rem; color: var(--bs-primary); }

/* ===== Counters ===== */
.counters{ background: var(--navy); }
.counter{ font-size:2.4rem; }

/* ===== Testimonials ===== */
.testimonials{ background: linear-gradient(135deg, var(--primary-dark), var(--bs-primary)); }
.carousel-indicators [data-bs-target]{ background-color: rgba(255,255,255,0.4); }
.carousel-indicators .active{ background-color:#fff; }

/* ===== Contact ===== */
.contact-form{ border-radius:14px; }
.social-icons a{
  width:40px; height:40px; border-radius:50%;
  background: var(--primary-light); color: var(--bs-primary);
  display:flex; align-items:center; justify-content:center; transition: all .3s ease;
}
.social-icons a:hover{ background: var(--bs-primary); color:#fff; }
.form-control:focus, .form-select:focus{
  border-color: var(--bs-primary); box-shadow:0 0 0 0.2rem rgba(19,85,216,0.15);
}
.is-invalid ~ .invalid-feedback, .invalid-feedback.d-block{ display:block; }

/* ===== Footer ===== */
.site-footer{ background: var(--navy); }
.site-footer a:hover{ color:#fff !important; }
.newsletter-form input{ border-radius:999px 0 0 999px; }
.newsletter-form button{ border-radius:0 999px 999px 0; }

/* ===== Back to top ===== */
#backToTop{
  position:fixed; bottom:28px; right:28px; z-index:900;
  width:46px; height:46px; border-radius:50%;
  background: var(--bs-primary); color:#fff; border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 20px 50px rgba(11,23,48,0.15);
  opacity:0; visibility:hidden; transform: translateY(10px);
  transition: all .3s ease;
}
#backToTop.show{ opacity:1; visibility:visible; transform:translateY(0); }
#backToTop:hover{ background: var(--primary-dark); }

/* ===== Responsive ===== */
@media (max-width: 991.98px){
  .hero-media{ min-height:300px; margin-bottom:20px; }
}
@media (max-width: 767.98px){
  body{ padding-top:66px; }
  .hero{ padding:50px 0 40px; }
}
