/*=================================  
  Variables & Reset  
=================================*/  
:root {  
    --primary: #6366F1;  
    --primary-dark: #4338ca;  
    --gray-100: #f3f4f6;  
    --gray-200: #e5e7eb;  
    --gray-700: #374151;  
    --white: #ffffff;  
  }  
  * { margin:0; padding:0; box-sizing:border-box; }  
  body {  
    font-family: 'Inter', sans-serif;  
    color: var(--gray-700);  
    background: var(--white);  
    line-height: 1.6;  
  }  
  a { color: var(--primary); text-decoration: none; }  
  ul { list-style: none; }  
    
  /*=================================  
    Utility  
  =================================*/  
  .container {  
    width: 90%;  
    max-width: 1200px;  
    margin: 0 auto;  
  }  
  .btn {  
    display: inline-block;  
    padding: 0.75rem 1.5rem;  
    background: var(--primary);  
    color: var(--white);  
    border-radius: 4px;  
    font-weight: 600;  
    transition: background 0.2s;  
  }  
  .btn:hover { background: var(--primary-dark); }  
    
/*=================================  
  Header & Nav (updated)  
=================================*/  
header {  
    position: sticky;  
    top: 0;  
    width: 100%;  
    background: var(--white);  
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);  
    z-index: 100;  
  }  
    
  .navbar {  
    display: flex;  
    align-items: center;       /* vertical center all children */  
    justify-content: space-between;  
    height: 64px;              /* or your preferred navbar height */  
    padding: 0 1.5rem;         /* horizontal padding */  
  }  
  
    
  .logo {  
    height: 40px;              /* ensures your logo fits inside the 64px bar */  
    display: block;  
  }  
    
  .nav-links {  
    display: flex;  
    align-items: center;       /* vertical align the links */  
    gap: 1.5rem;  
  }  
    
  .nav-links li a {  
    font-weight: 500;  
    line-height: 1;            /* ensure no extra line-height bump */  
  }  

  .navbar .nav-links a.btn {  
    /* same as your hero .btn */  
    padding: 0.75rem 1.5rem;  
    font-size: 1rem;       /* match your hero button’s text size */  
    line-height: 1;        /* optional, for perfect centering */  
  }  
    
  .nav-toggle {  
    display: none;             /* hidden on desktop */  
    align-items: center;  
    justify-content: center;  
    font-size: 1.5rem;  
    background: none;  
    border: none;  
    cursor: pointer;  
    line-height: 1;  
    padding: 0;  
  }  
    
  /* Mobile */  
  @media (max-width: 768px) {  
    .nav-toggle {  
      display: flex;           /* show hamburger */  
    }  
    .nav-links {  
      position: absolute;  
      top: 64px;               /* drop directly below the 64px navbar */  
      right: 1.5rem;  
      background: var(--white);  
      flex-direction: column;  
      gap: 1rem;  
      padding: 1rem;  
      box-shadow: 0 2px 8px rgba(0,0,0,0.1);  
      display: none;  
    }  
    .nav-links.open {  
      display: flex;  
    }  
  }  
  
    
  /* Mobile nav */  
  @media(max-width: 768px) {  
    .nav-toggle { display: block; }  
    .navbar .nav-links {  
      position: absolute;  
      top: 64px; right: 20px;  
      background: var(--white);  
      flex-direction: column;  
      gap: 1rem;  
      padding: 1rem;  
      box-shadow: 0 2px 8px rgba(0,0,0,0.1);  
      display: none;  
    }  
    .navbar .nav-links.open { display: flex; }  
  }  
    
/*=============================  
  Hero Section (center fix)  
=============================*/  
.hero {  
    display: flex;  
    flex-direction: column;     /* stack children vertically */  
    align-items: center;        /* center them horizontally */  
    justify-content: center;    /* center them vertically */  
    min-height: 80vh;  
    padding: 2rem 0;  
    text-align: center;         /* fallback centering for inline text */  
  }  
  
  .hero .rotating {  
    color: var(--primary);  
    font-weight: 600;      /* optional but gives it more presence */  
    transition: color 0.2s;/* smooth color transitions if you ever change it via JS */  
  }  
  .hero .container {  
    /* We could also move flex onto the container if you prefer */  
    width: 90%;  
    max-width: 1200px;  
    display: flex;  
    flex-direction: column;  
    align-items: center;  
  }  
    
  .hero h1 {  
    font-size: 3rem;  
    line-height: 1.2;  
    margin-bottom: 1rem;  
    max-width: 800px;           /* optional: constrain so it wraps nicely */  
  }  
    
  .hero p {  
    font-size: 1.25rem;  
    color: var(--gray-700);  
    max-width: 600px;           /* so it doesn’t run full width */  
    margin: 0 auto 2rem;        /* auto left/right centers it in its parent */  
    text-align: center;         /* ensure the text itself is centered */  
  }  
    
  .hero .btn {  
    /* center the button if it ever shrinks */  
    margin: 0 auto;  
  }    
    
  /*=================================  
    Section Titles  
  =================================*/  
  .section-title {  
    text-align: center;  
    margin: 3rem 0 1.5rem;  
    font-size: 2rem;  
    position: relative;  
  }  
  .section-title::after {  
    content: '';  
    width: 60px;  
    height: 4px;  
    background: var(--primary);  
    display: block;  
    margin: 0.5rem auto 0;  
  }  
    
  /*=================================  
    Testimonials  
  =================================*/  
  .testimonials-grid {  
    display: grid;  
    gap: 2rem;  
    grid-template-columns: repeat(auto-fit, minmax(250px,1fr));  
    margin-bottom: 3rem;  
  }  
  .testimonial-card {  
    background: var(--gray-100);  
    padding: 1.5rem;  
    border-radius: 8px;  
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);  
  }  
  .testimonial-card img {  
    width: 60px; height: 60px;  
    border-radius: 50%;  
    object-fit: cover;  
    margin-bottom: 1rem;  
  }  
  .testimonial-card p { font-style: italic; margin-bottom: 1rem; }  
  .testimonial-card h4 { font-size: 1rem; font-weight: 600; }  
    
  /*=================================  
    Case Studies  
  =================================*/  
  .case-grid {  
    display: grid;  
    gap: 2rem;  
    grid-template-columns: repeat(auto-fit, minmax(280px,1fr));  
    margin-bottom: 3rem;  
  }  
  .case-card {  
    border: 1px solid var(--gray-200);  
    border-radius: 8px;  
    overflow: hidden;  
    transition: box-shadow 0.2s;  
  }  
  .case-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.1); }  
  .case-card img {  
    width: 100%; height: 180px; object-fit: cover;  
  }  
  .case-card-content {  
    padding: 1rem;  
  }  
  .case-card-content h3 { margin-bottom: 0.5rem; }  
  .case-card-content p { font-size: 0.95rem; margin-bottom: 1rem; }  
    
  /*=================================  
    Results  
  =================================*/  
  .results-grid {  
    display: grid;  
    gap: 2rem;  
    grid-template-columns: repeat(auto-fit, minmax(180px,1fr));  
    margin-bottom: 3rem;  
  }  
  .result-card {  
    text-align: center;  
  }  
  .result-card h3 {  
    font-size: 2rem; color: var(--primary);  
    margin-bottom: 0.5rem;  
  }  
    
  /*=================================  
    Lead Form  
  =================================*/  
  form {  
    max-width: 500px;  
    margin: 0 auto 3rem;  
    display: grid;  
    gap: 1rem;  
  }  
  form input, form textarea {  
    padding: 0.75rem;  
    border: 1px solid var(--gray-200);  
    border-radius: 4px;  
    font-size: 1rem;  
  }  
  form textarea { resize: vertical; height: 120px; }  
    
  /*=================================  
    Thank You  
  =================================*/  
  .thank-you {  
    min-height: 60vh;  
    display: flex;  
    align-items: center;  
    text-align: center;  
    flex-direction: column;  
    justify-content: center;  
    padding: 2rem;  
  }  
  
  /* ——————————————————————    
   Thank You Hero Section    
   —————————————————————— */  
  .thank-you-hero {  
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));  
    color: var(--white);  
    padding: 4rem 1rem;  
  }  
    
  .thank-you-hero .container {  
    max-width: 700px;  
    margin: 0 auto;  
    text-align: center;  
    display: flex;  
    flex-direction: column;  
    align-items: center;  
  }  
    
  .thank-you-hero .icon-circle {  
    width: 80px;  
    height: 80px;  
    background: rgba(255, 255, 255, 0.2);  
    border-radius: 50%;  
    display: flex;  
    align-items: center;  
    justify-content: center;  
    margin-bottom: 1.5rem;  
  }  
    
  .thank-you-hero .icon-circle svg {  
    width: 40px;  
    height: 40px;  
    fill: var(--white);  
  }  
    
  .thank-you-hero h1 {  
    font-size: 2.75rem;  
    line-height: 1.2;  
    margin-bottom: 1rem;  
  }  
    
  .thank-you-hero p {  
    font-size: 1.125rem;  
    line-height: 1.6;  
    margin-bottom: 2rem;  
    max-width: 500px;  
  }  
    
  .thank-you-hero .btn {  
    background: var(--white);  
    color: var(--primary);  
    padding: 0.75rem 1.5rem;  
    border-radius: 4px;  
    font-weight: 600;  
    transition: background 0.2s, color 0.2s;  
  }  
    
  .thank-you-hero .btn:hover {  
    background: var(--primary-dark);  
    color: var(--white);  
  }  

/*=============================  
  Site Footer  
=============================*/  
.site-footer {  
    background: var(--gray-100);     /* light gray background */  
    color: var(--gray-600);          /* medium gray text */  
    text-align: center;  
    padding: 3rem 0;  
    font-size: 0.875rem;             /* ~14px */  
  }  
    
  .site-footer p {  
    margin: 0;  
  }  

  /*----------------------------------------  
  1) Spread nav links evenly  
----------------------------------------*/  
/* Make sure your .navbar is a flex container */  
.container.navbar {  
    display: flex;  
    align-items: center;  
    justify-content: space-between; /* logo on one side, nav-links flex on the other */  
  }  
    
  /* Remove any “margin-left: auto” you may have on .nav-links */  
  .navbar .nav-links {  
    margin: 0;  
    padding: 0;  
    list-style: none;  
    
    display: flex;  
    flex: 1;                         /* take all remaining space */  
    justify-content: space-evenly;   /* or space-around if you prefer */  
  }  
    
  .navbar .nav-links a {  
    display: block;  
    padding: 0.5rem 1rem;  
    /* your existing link styles… */  
  }  
    
    
  /*----------------------------------------  
    2) Smooth-scroll for same-page links  
  ----------------------------------------*/  
  html {  
    scroll-behavior: smooth;  
  }  
    
  /*=================================  
    Why Choose Us  
  =================================*/  
  .why-us {  
    background: var(--white);  
    padding: 2rem 0;
    margin-bottom: 2rem;  
  }  
    
  .features-list {  
    display: grid;  
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));  
    gap: 2rem;  
    list-style: none;  
    margin-top: 2rem;  
    padding: 0;  
  }  
    
  .features-list li {  
    display: flex;  
    align-items: flex-start;  
    gap: 1rem;  
  }  
    
  .features-list img {  
    width: 40px;  
    height: 40px;  
    flex-shrink: 0;  
  }  
    
  .features-list h4 {  
    margin: 0 0 0.25rem;  
    font-size: 1.125rem;  
    color: var(--gray-700);  
  }  

  .choose-us-cta {  
    margin-top: 1.5rem;
    margin-bottom: auto;  
    grid-column: 1 / -1;  
    text-align: center;  
    /* if you prefer flex-centering:   
    display: flex;  
    justify-content: center;  
    */  
  }  
    
  .features-list p {  
    margin: 0;  
    font-size: 0.95rem;  
    color: var(--gray-700);  
  }  
  
  /*=================================  
    Get Started  
  =================================*/ 
  /* 1) Hero with gradient, white text */  
.get-started-hero {  
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));  
    color: var(--white);  
    text-align: center;  
    padding: 4rem 0;  
  }  
  .get-started-hero h1 {  
    font-size: 2.5rem;  
    margin-bottom: 1rem;  
  }  
  .get-started-hero p {  
    font-size: 1.125rem;  
    max-width: 600px;  
    margin: 0 auto;  
  }  
    
  /*=================================  
    Form  
  =================================*/ 
  .form-section {  
    background: var(--gray-100);  
    padding: 4rem 0;  
  }  
    
  /* 3) Card around the form */  
  .form-card {  
    background: var(--white);  
    max-width: 600px;  
    margin: 0 auto;  
    padding: 2rem;  
    border-radius: 8px;  
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);  
  }  
    
  /* 4) Form spacing & labels */  
  .form-group {  
    display: flex;  
    flex-direction: column;  
    margin-bottom: 1rem;  
  }  
  .form-group label {  
    margin-bottom: 0.5rem;  
    font-weight: 500;  
    color: var(--gray-700);  
  }  
  .form-group input {  
    padding: 0.75rem;  
    border: 1px solid var(--gray-200);  
    border-radius: 4px;  
    font-size: 1rem;  
    transition: border-color 0.2s, box-shadow 0.2s;  
  }  
    
  /* 5) Focus state */  
  .form-group input:focus {  
    outline: none;  
    border-color: var(--primary);  
    box-shadow: 0 0 0 3px rgba(99,102,241,0.2);  
  }  
    
  /* 6) Section title tweak under form */  
  .form-card .section-title {  
    text-align: center;  
    margin-bottom: 2rem;  
    color: var(--gray-700);  
  }  
  
/* 1) Style our new select exactly like inputs */  
.form-group select {  
  padding: 0.75rem;  
  border: 1px solid var(--gray-200);  
  border-radius: 4px;  
  font-size: 1rem;  
  background: var(--white);  
  transition: border-color 0.2s, box-shadow 0.2s;  
  appearance: none;  
}  
  
.form-group select:focus {  
  outline: none;  
  border-color: var(--primary);  
  box-shadow: 0 0 0 3px rgba(99,102,241,0.2);  
}  
  
/* 2) Add a little red “*” after any label with class="required" */  
label.required::after {  
  content: "*";  
  color: #e53e3e;  
  margin-left: 0.25rem;  
}  


  /*=================================  
    Services  
  =================================*/ 
  .services-grid {  
    display: grid;  
    gap: 2rem;  
    /* each column will be at least 250px, at most 300px */  
    grid-template-columns: repeat(auto-fit, minmax(250px, 300px));  
    justify-content: center;    /* center the whole grid in its container */  
    margin-bottom: 5rem;  
  }  

  .services-cta {  
    margin-top: 2rem;  
    grid-column: 1 / -1;  
    text-align: center;  
    /* if you prefer flex-centering:   
    display: flex;  
    justify-content: center;  
    */  
  }  
  .service-card {  
    background: var(--gray-100);  
    padding: 1.5rem;  
    border-radius: 8px;  
    text-align: center;  
    transition: box-shadow 0.2s;  
  }  
  .service-card:hover {  
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);  
  }  
  .service-card img {  
    width: 60px;  
    height: 60px;  
    margin-bottom: 1rem;  
  }  
  .service-card h3 {  
    margin-bottom: 0.5rem;  
    font-size: 1.25rem;  
    color: var(--gray-700);  
  }  
  .service-card p {  
    font-size: 0.95rem;  
    color: var(--gray-700);  
  }  
  

  /* Make the hero a positioning context and hide overflow */  
#hero {  
  position: relative;  
  overflow: hidden;  
}  
  
/* Ensure your text container sits above the video */  
#hero .container {  
  position: relative;  
  z-index: 1;  
}  
  
/* Style the background video to cover the entire hero */  
.hero-bg-video {  
  position: absolute;  
  top: 50%;  
  left: 50%;  
  width: auto;  
  height: auto;  
  min-width: 100%;  
  min-height: 100%;  
  transform: translate(-50%, -50%);  
  object-fit: cover;  
  z-index: -2;  
  /* disable pointer events so it never interferes with clicks */  
  pointer-events: none;  
}  
  
/* Optional: a semi-transparent gradient overlay on top of the video */  
#hero::before {  
  content: '';  
  position: absolute;  
  inset: 0;  
  background: linear-gradient(  
    135deg,  
    rgba(0, 0, 0, 0.3),  
    rgba(0, 0, 0, 0.6)  
  );  
  z-index: -1;  
}  

/*———————————————————————————  
  Hero on dark video — make text white  
———————————————————————————*/  
#hero {  
    /* everything in here will inherit white text */  
    color: var(--white);  
  }  
    
  /* undo the old gray on the paragraph */  
  #hero p {  
    color: var(--white);  
  }  
    
  /* your rotating span already sets itself to var(--primary),  
     so it will remain purple against the white h1 text */  
  .hero .rotating {  
    color: var(--primary);  
  }  
  
  /* 1) Base styles */  
.nav-toggle {  
    display: none;  
    background: none;  
    border: none;  
    font-size: 1.8rem;  
    cursor: pointer;  
  }  
  .nav-links {  
    display: flex;  
    list-style: none;  
    gap: 1.5rem;  
  }  
  
  /* 2) Mobile styles */  
  @media (max-width: 768px) {  
    .nav-toggle {  
      display: block;  
    }  
    .nav-links {  
      position: absolute;  
      top: 100%;  
      left: 0;  
      width: 100%;  
      background: #fff;  
      flex-direction: column;  
      align-items: center;  
      overflow: hidden;  
      max-height: 0;  
      transition: max-height 0.3s ease-in-out;  
    }  
    .nav-links.open {  
      max-height: 500px; /* enough to show all links */  
    }  
    .nav-links li {  
      margin: 1rem 0;  
    }  
    .nav-links a {  
      display: block;  
      width: 100%;  
      padding: 0.5rem 0;  
      text-align: center;  
    }  
  }  
  

  /*=================================  
    About  
  =================================*/ 
/* 1) Tweak the .about padding: very little on top, plenty on bottom */  
.about {  
  background: var(--gray-100);  
  text-align: center;  
  border-radius: 12px;  
  padding: 0.5rem 1rem 2rem;  
}  

.about-cta {  
  margin-top: 2rem;
  margin-bottom: auto;  
  grid-column: 1 / -1;  
  text-align: center;  
  /* if you prefer flex-centering:   
  display: flex;  
  justify-content: center;  
  */  
}  

/* 2) Override the big top-margin on the About heading */  
.about .section-title {  
  /* remove the default 3rem top gap */  
  margin-top: 1rem;     
  /* keep a little breathing room below */  
  margin-bottom: 1.5rem;  
}  
  
/* your existing paragraph constraints */  
.about p {  
  max-width: 700px;  
  margin: 0 auto 1.5rem;  
}  

/*———————————————————————————  
  Blog‐style case study
———————————————————————————*/  

.article {  
  padding: 4rem 0;  
}  
.case-study-post .post-header h1 {  
  font-size: 2.5rem;  
  margin-bottom: 0.5rem;  
}  
.post-meta {  
  color: var(--gray-200);  
  font-size: 0.9rem;  
  margin-bottom: 1.5rem;  
}  
.case-study-post img {  
  width: 100%;  
  height: auto;  
  border-radius: 8px;  
  margin: 2rem 0;  
}  
.case-study-post h2 {  
  font-size: 1.75rem;  
  color: var(--primary);  
  margin-bottom: 1rem;  
}  
.case-study-post section {  
  margin-bottom: 2rem;  
}  
.back-link {  
  text-align: center;  
  margin-top: 3rem;  
}  

/* in your style.css, near the “Blog‐style case study” section */  
.post-header img {  
  display: block;  
  max-width: 400px;    /* or whatever width you prefer */  
  width: 100%;         /* scales down on mobile */  
  height: auto;  
  margin: 2rem auto;   /* space above/below and center it */  
  border-radius: 8px;  /* optional */  
  z-index: 0;          /* ensure it sits *under* the nav */  
}  

/* — Blog-style Case Study Improvements — */  
  
/* Narrow the article and center it */  
.article.container {  
  max-width: 800px;  
  margin: 0 auto;  
  padding: 4rem 1rem;  
}  
  
/* Base body text */  
.case-study-post {  
  color: var(--gray-700);  
  line-height: 1.7;  
  font-size: 1rem;  
}  
  
/* Header / Title */  
.case-study-post .post-header {  
  text-align: center;  
  margin-bottom: 3rem;  
}  
.case-study-post .post-header h1 {  
  font-size: 2.75rem;  
  line-height: 1.2;  
  margin: 0 0 0.5rem;  
}  
.case-study-post .post-meta {  
  color: var(--gray-500);  
  font-size: 0.9rem;  
  margin-bottom: 2rem;  
}  
  
/* Featured image */  
.case-study-post .post-header-image img {  
  display: block;  
  max-width: 600px;  
  width: 100%;  
  height: auto;  
  margin: 2rem auto;  
  border-radius: 8px;  
}  
  
/* Content sections */  
.case-study-post .post-content section {  
  margin-bottom: 2.5rem;  
}  
.case-study-post .post-content section h2 {  
  font-size: 1.75rem;  
  color: var(--primary);  
  margin-bottom: 1rem;  
  line-height: 1.3;  
}  
.case-study-post .post-content section p {  
  margin-bottom: 1rem;  
  font-size: 1.125rem;  
}  
.case-study-post .post-content section ul {  
  list-style: disc inside;  
  margin: 0 0 1rem;  
}  
.case-study-post .post-content section ul li {  
  margin-bottom: 0.75rem;  
}  
  
/* Back-link / CTA at bottom */  
.back-link {  
  text-align: center;  
  margin: 3rem 0;  
}  

/* ——————————————————————  
   Case Study: restore bullets on UL  
   —————————————————————— */  
   .case-study-post section ul {  
    list-style-type: disc;           /* use the solid disc bullet */  
    list-style-position: outside;    /* bullet sits outside the text block */  
    margin: 1rem 0 1.5rem 1.5rem;     /* give some space & indent */  
    padding: 0;                      /* reset any padding */  
  }  
    
  .case-study-post section ul li {  
    margin-bottom: 0.75rem;          /* spacing between items */  
  }

/*=================================  
  Results Gallery  
=================================*/  
.results-gallery {
  margin: 4rem 0;
}

.results-gallery h3 {
  text-align: center;
  margin-bottom: 2rem;
  font-size: 2rem;
  font-weight: 600;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin: 2rem 0;
}

.gallery-item {
  position: relative;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.gallery-item:hover {
  transform: scale(1.05);
}

.gallery-thumbnail {
  width: 100%;
  height: 250px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  transition: box-shadow 0.3s ease;
}

.gallery-thumbnail:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}

/*=================================  
  Image Modal  
=================================*/  
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.9);
  cursor: pointer;
}

.modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 90%;
  max-height: 90%;
  cursor: default;
}

.close {
  position: absolute;
  top: 15px;
  right: 35px;
  color: #f1f1f1;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

.close:hover,
.close:focus {
  color: #bbb;
  text-decoration: none;
}

@media (max-width: 768px) {
  .gallery-grid {
    grid-template-columns: 1fr;
  }
  
  .gallery-thumbnail {
    height: 200px;
  }
}  
  