
:root {
  --primary-color: #4B4E75 !important;
  --secondary-color: black !important;
  --background-color: #FFFFFF;
  --text-color: #333333;
  --font-family: Arial, sans-serif;
  --padding: 10px;
  --border-radius: 8px;
  --button-background-color: var(--primary-color);
  --button-text-color: #FFFFFF;
  --button-border-radius: var(--border-radius);
  --button-padding: 10px 20px;
}

@font-face {
    font-family: 'Khula-Regular', 'Khula-ExtraBold', 'Khula-SemiBold';
    src: url('../fonts/Khula-Regular.ttf') format('truetype'),
         url('../fonts/Khula-ExtraBold.ttf') format('truetype'),
         url('../fonts/Khula-SemiBold.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@media (max-width: 768px) {
  .card {
    width: 85% !important;
    height: auto;
    padding: 15px;
  }
  
  p, code {
      font-size: .9rem !important;
  }
  
  input, textarea {
      font-size: 1rem !important;
  }
  
  form {
      width: 100% !important;
      border: none !important
  }
  
  video, img, .our-services {
      border: none !important;
  }
  
  .navbar-collapse {
      justify-content: start !important;
  }
  
  .hero-right-content .image-container {
      display: none !important;
  }
  
  #hero-heading {
      font-size: 3rem;
  }
  
  #features {
      border: none !important;
  }
  
  .feature-cards {
      justify-content: center !important;
      gap: 20px !important;
  }
  
  .contact-intro {
      font-size: 1.2rem;
  }
  
  .info-container, #info-container {
      font-size: 1rem !important;
  }
  
  div.form-control {
      font-size: 1rem !important;
  }
  
  .job-card-top-items img {
      width: 100px !important;
      height: 100px !important;
  }
  
  #counterapp-page {
    background: #111;
  }
  
  footer {
      font-size: .8rem;
  }
  
  footer p {
      font-size: .8rem !important;
  }
  
  footer img {
      width: 25px;
      height: 25px;
      margin-top: 5px;
      margin-bottom: 5px;
  }
}

/* Apply to all elements */
* {
    font-family: 'Khula-Regular' !important;
}

body {
  max-width: 100vw;
  width: 100vw;
  color: var(--text-color);
  display: flex;
  background-color: var(--secondary-color);
}

#root {
  width: 100vw;
  max-width: 100vw;
}

button {
  padding: var(--button-padding);
}


.bg-color-primary {
  background-color: var(--primary-color) !important;
}

.bg-color-secondary {
  background-color: var(--secondary-color) !important;
}

.text-color-primary {
  color: var(--text-color) !important;
}

.text-color-secondary {
  color: var(--secondary-color) !important;
}

.text-color-ccc {
  color: #ccc !important;
}

.text-color-grey {
  color: rgba(100, 100, 100, .8) !important;
}

.theme-border-radius {
  border-radius: var(--border-radius) !important;
}

.border-solid-ccc {
  border: 1px solid #ccc !important;
}

.border-none {
  border: none !important;
}

.theme-padding {
  padding: var(--padding) !important;
}

.button-padding {
  padding: var(--button-padding) !important;
}

.display-none {
  display: none !important;
}

.margin-top-5px {
  margin-top: 5px;
}

.margin-top-10px {
  margin-top: 10px;
}

.margin-bottom-5px {
  margin-bottom: 5px;
}

.margin-bottom-10px {
  margin-top: 10px;
}

.margin-top-5px {
  margin-top: 5px;
}

.form-control input, textarea, select {
    border-radius: var(--border-radius) !important;
}

/* Creating the general gradient bg effect with moving gradient */
.gradient-bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, #f0c200, #d3a2a4, green, var(--primary-color), purple);
  background-size: 400% 400%; /* Ensures smooth gradient movement */
  border-radius: 8px;
  z-index: -1;
  animation: move-gradient-bg 3s linear infinite;
}

.pulse-bg {
  animation: pulse-bg 3s linear infinite;
}

.small-pulse-bg {
  animation: small-pulse-bg 3s linear infinite;
}

/* Creating the error bg effect with pulsing and moving gradient */
.gradient-error-bg::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, #ff0000, #ff6347, #ff4500); /* Intense red shades for error */
  background-size: 400% 400%;
  border-radius: 8px;
  z-index: -1;
  animation: move-gradient-bg 2s linear infinite;
}

/* Creating the success bg effect with pulsing and moving gradient */
.gradient-success-bg::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, #28a745, #32cd32, #228b22); /* Green shades for success */
  background-size: 400% 400%;
  border-radius: 8px;
  z-index: -1;
  animation: move-gradient-bg 2s linear infinite;
}

/* Animation for moving gradient effect */
@keyframes move-gradient-bg {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* Stronger pulse effect for the success background (renamed to pulse-bg) */
@keyframes pulse-bg {
  0% {
    transform: scale(1);
    box-shadow: 0 0 15px rgba(40, 167, 69, 0.7), 0 0 30px rgba(40, 167, 69, 0.5);
  }
  25% {
    transform: scale(1.2);
    box-shadow: 0 0 20px rgba(40, 167, 69, 1), 0 0 40px rgba(40, 167, 69, 0.6);
  }
  50% {
    transform: scale(1.3);
    box-shadow: 0 0 30px rgba(40, 167, 69, 1.2), 0 0 60px rgba(40, 167, 69, 0.8);
  }
  75% {
    transform: scale(1.2);
    box-shadow: 0 0 20px rgba(40, 167, 69, 1), 0 0 40px rgba(40, 167, 69, 0.6);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 15px rgba(40, 167, 69, 0.7), 0 0 30px rgba(40, 167, 69, 0.5);
  }
}

@keyframes small-pulse-bg {
  0% {
    transform: scale(1);
    box-shadow: 
      0 0 2px rgba(255, 0, 0, 0.7),   /* Red */
      0 0 3px rgba(255, 165, 0, 0.7), /* Orange */
      0 0 5px rgba(255, 255, 0, 0.7); /* Yellow */
  }
  25% {
    transform: scale(1.01);
    box-shadow: 
      0 0 2px rgba(255, 165, 0, 0.9), /* Orange */
      0 0 3px rgba(255, 255, 0, 0.9), /* Yellow */
      0 0 5px rgba(0, 255, 0, 0.9);   /* Green */
  }
  50% {
    transform: scale(1.02);
    box-shadow: 
      0 0 2px rgba(255, 255, 0, 1),   /* Yellow */
      0 0 3px rgba(0, 255, 0, 1),    /* Green */
      0 0 5px rgba(0, 0, 255, 1);    /* Blue */
  }
  75% {
    transform: scale(1.03);
    box-shadow: 
      0 0 2px rgba(0, 255, 0, 0.9),   /* Green */
      0 0 3px rgba(0, 0, 255, 0.9),  /* Blue */
      0 0 5px rgba(128, 0, 128, 0.9); /* Purple */
  }
  100% {
    transform: scale(1);
    box-shadow: 
      0 0 2px rgba(0, 0, 255, 0.7),   /* Blue */
      0 0 3px rgba(128, 0, 128, 0.7), /* Purple */
      0 0 5px rgba(255, 0, 0, 0.7);  /* Red */
  }
}

.card {
    width: 350px;
    background: rgba(255, 255, 255, 0.1); /* Glassmorphism effect */
    backdrop-filter: blur(10px);
    border-radius: var(--border-radius) !important;
    box-shadow: 0px 6px 15px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.2);
}

pre {
    line-height: .9rem !important;
}

pre[class*=language-] {
    background-color: rgba(0, 0, 0, .85) !important;
    border: 1px solid #ccc !important;
}

code {
    padding: 1px 2px;
    background-color: rgba(0, 0, 0, .85) !important;
    border-radius: 5px;
    text-shadow: none !important;
}

.cta-btn-container {
  padding: 10px;
  display: flex;
  justify-content: center;
}

#main-content {
  min-width: 100%;
  max-width: 100%;
}

#main-content-inner {
  display: flex;
  flex-direction: column;
  padding: 10px;
  gap: 10px;
  background-image: url('../images/bg-black-gradient.jpg');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  color: #ccc
  
}

/* Sidebar */
#sidebar {
  border-radius: 0px 0px var(--border-radius) 0px;
}

/* Navbar */
.nav-hero-section {
  min-height: 100vh;
  background-image: url('../images/bg-black-gradient.jpg');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-color: black;
}

/* Hero */

.hero-image {
  border-radius: var(--border-radius);
  object-fit: cover;
  height: 100vh;
}

.hero-heading {
  color: white;
  font-family: 'Khula-ExtraBold' !important;
  font-size: 2rem;
}

.hero-intro {
  color: #ccc;
  font-family: 'Khula-ExtraBold';
  border: .25px solid #ccc;
  border-radius: var(--border-radius);
  padding: var(--padding);
}

/* Features section */
.feature-card {
  width: 33%;
  min-height: 300px !important;
  backdrop-filter: blur(50px);
  background-color: transparent !important;
}

.feature-card heading{
  font-size: 1.1rem;
}

/* About Us */
#about-intro {
  font-size: 1.5rem;
}

/* Footer */
footer {
  background-color: var(--secondary-color) !important;
  padding: 10px;
}

footer > div {
  justify-content: space-around;
}

footer .footer-heading {
  font-size: 1.2rem;
  font-family: 'Khula-ExtraBold',
}

footer * {
  color: #ccc !important;
}
