/* Responsive Styles */

/* Mobile First Approach */

/* Extra Small devices (phones, less than 576px) */
@media (max-width: 575.98px) {
  /* Typography adjustments for mobile */
  h1 { font-size: 1.75rem; }
  h2 { font-size: 1.5rem; }
  h3 { font-size: 1.25rem; }
  .display-4 { font-size: 1.75rem; }
  
  /* Header adjustments */
  .navbar-brand {
    font-size: 1.25rem;
  }
  
  .navbar-nav .nav-link {
    padding: 0.75rem 1rem;
    text-align: center;
  }
  
  /* Hero section mobile */
  .hero-section {
    padding: 100px 0 60px;
    text-align: center;
  }
  
  .hero-shape {
    display: none; /* Hide decorative shape on mobile */
  }
  
  /* Services grid - single column on mobile */
  .service-card img {
    height: 150px;
  }
  
  /* Team members - adjust grid */
  .team-member img {
    width: 100px;
    height: 100px;
  }
  
  /* Process steps - vertical layout */
  .process-step {
    margin-bottom: 2rem;
  }
  
  .step-number {
    width: 50px;
    height: 50px;
    font-size: 1rem;
  }
  
  /* Contact form adjustments */
  .contact-form .form-control {
    padding: 10px 14px;
  }
  
  /* FAQ items - full width */
  .faq-item {
    margin-bottom: 1rem;
  }
  
  /* Gallery - fewer columns */
  #gallery .col-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  
  /* Spacing adjustments */
  section {
    padding: 3rem 0;
  }
  
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  
  /* No animations on mobile (respect reduced motion) */
  .feature-card:hover,
  .service-card:hover,
  .pricing-card:hover,
  .review-card:hover,
  .case-study-card:hover,
  .faq-item:hover {
    transform: none;
  }
  
  #gallery img:hover {
    transform: none;
  }
  
  .btn-primary:hover,
  .btn-outline-primary:hover {
    transform: none;
  }
}

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) and (max-width: 767.98px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.75rem; }
  .display-4 { font-size: 2rem; }
  
  .hero-section {
    padding: 110px 0 70px;
  }
  
  .service-card img {
    height: 180px;
  }
  
  .team-member img {
    width: 110px;
    height: 110px;
  }
  
  /* Process steps - still vertical but with more space */
  .process-step {
    margin-bottom: 1.5rem;
  }
  
  .step-number {
    width: 55px;
    height: 55px;
    font-size: 1.125rem;
  }
  
  /* Gallery - 3 columns */
  #gallery .col-sm-4 {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) and (max-width: 991.98px) {
  .hero-section {
    padding: 120px 0 80px;
  }
  
  .service-card img {
    height: 200px;
  }
  
  .team-member img {
    width: 115px;
    height: 115px;
  }
  
  /* Process steps - horizontal layout starts here */
  .process-step {
    margin-bottom: 1rem;
  }
  
  /* Team grid - adjust for tablet */
  .team-member {
    margin-bottom: 2rem;
  }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .hero-section {
    padding: 120px 0 80px;
  }
  
  .service-card img {
    height: 200px;
  }
  
  .team-member img {
    width: 120px;
    height: 120px;
  }
  
  /* Full desktop layout */
  .process-step {
    margin-bottom: 0;
  }
}

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
  .hero-section {
    padding: 140px 0 100px;
  }
  
  .container {
    max-width: 1200px;
  }
  
  .service-card img {
    height: 220px;
  }
}

/* Bootstrap Grid System Responsive Classes */

/* Col classes for responsive grid */
.col-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
.col-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
.col-3 { flex: 0 0 25%; max-width: 25%; }
.col-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
.col-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
.col-6 { flex: 0 0 50%; max-width: 50%; }
.col-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
.col-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
.col-9 { flex: 0 0 75%; max-width: 75%; }
.col-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
.col-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
.col-12 { flex: 0 0 100%; max-width: 100%; }

/* Small breakpoint */
@media (min-width: 576px) {
  .col-sm-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-sm-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-sm-3 { flex: 0 0 25%; max-width: 25%; }
  .col-sm-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-sm-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-sm-6 { flex: 0 0 50%; max-width: 50%; }
  .col-sm-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-sm-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-sm-9 { flex: 0 0 75%; max-width: 75%; }
  .col-sm-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-sm-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Medium breakpoint */
@media (min-width: 768px) {
  .col-md-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-md-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-md-3 { flex: 0 0 25%; max-width: 25%; }
  .col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-md-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-md-6 { flex: 0 0 50%; max-width: 50%; }
  .col-md-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-md-9 { flex: 0 0 75%; max-width: 75%; }
  .col-md-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-md-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-md-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Large breakpoint */
@media (min-width: 992px) {
  .col-lg-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-lg-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
  .col-lg-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-lg-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
  .col-lg-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-lg-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-lg-9 { flex: 0 0 75%; max-width: 75%; }
  .col-lg-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-lg-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Extra large breakpoint */
@media (min-width: 1200px) {
  .col-xl-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-xl-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-xl-3 { flex: 0 0 25%; max-width: 25%; }
  .col-xl-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-xl-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-xl-6 { flex: 0 0 50%; max-width: 50%; }
  .col-xl-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-xl-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-xl-9 { flex: 0 0 75%; max-width: 75%; }
  .col-xl-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-xl-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-xl-12 { flex: 0 0 100%; max-width: 100%; }
}

/* Row and container responsive behavior */
.row {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}

.row > * {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 576px) {
  .container { max-width: 540px; }
}

@media (min-width: 768px) {
  .container { max-width: 720px; }
}

@media (min-width: 992px) {
  .container { max-width: 960px; }
}

@media (min-width: 1200px) {
  .container { max-width: 1140px; }
}

.container-fluid {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

/* Utility classes for responsive behavior */
.d-none { display: none; }
.d-block { display: block; }
.d-inline { display: inline; }
.d-inline-block { display: inline-block; }
.d-flex { display: flex; }

@media (min-width: 576px) {
  .d-sm-none { display: none; }
  .d-sm-block { display: block; }
  .d-sm-inline { display: inline; }
  .d-sm-inline-block { display: inline-block; }
  .d-sm-flex { display: flex; }
}

@media (min-width: 768px) {
  .d-md-none { display: none; }
  .d-md-block { display: block; }
  .d-md-inline { display: inline; }
  .d-md-inline-block { display: inline-block; }
  .d-md-flex { display: flex; }
}

@media (min-width: 992px) {
  .d-lg-none { display: none; }
  .d-lg-block { display: block; }
  .d-lg-inline { display: inline; }
  .d-lg-inline-block { display: inline-block; }
  .d-lg-flex { display: flex; }
}

@media (min-width: 1200px) {
  .d-xl-none { display: none; }
  .d-xl-block { display: block; }
  .d-xl-inline { display: inline; }
  .d-xl-inline-block { display: inline-block; }
  .d-xl-flex { display: flex; }
}

/* Text alignment responsive utilities */
.text-start { text-align: left; }
.text-center { text-align: center; }
.text-end { text-align: right; }

@media (min-width: 576px) {
  .text-sm-start { text-align: left; }
  .text-sm-center { text-align: center; }
  .text-sm-end { text-align: right; }
}

@media (min-width: 768px) {
  .text-md-start { text-align: left; }
  .text-md-center { text-align: center; }
  .text-md-end { text-align: right; }
}

@media (min-width: 992px) {
  .text-lg-start { text-align: left; }
  .text-lg-center { text-align: center; }
  .text-lg-end { text-align: right; }
}

@media (min-width: 1200px) {
  .text-xl-start { text-align: left; }
  .text-xl-center { text-align: center; }
  .text-xl-end { text-align: right; }
}

/* Navbar responsive behavior */
.navbar-toggler {
  background: transparent;
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 0.25rem;
  padding: 0.25rem 0.75rem;
  font-size: 1.25rem;
  line-height: 1;
}

.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}

.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
}

@media (max-width: 991.98px) {
  .navbar-collapse {
    margin-top: 1rem;
    border-top: 1px solid rgba(0,0,0,.1);
    padding-top: 1rem;
  }
  
  .navbar-nav {
    flex-direction: column;
    width: 100%;
  }
  
  .navbar-nav .nav-link {
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0,0,0,.05);
  }
}

@media (min-width: 992px) {
  .navbar-expand-lg .navbar-nav {
    flex-direction: row;
  }
  
  .navbar-expand-lg .navbar-collapse {
    display: flex;
    flex-basis: auto;
  }
  
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }
} 

body {
    overflow-x: hidden;
}

.hero-section h1 {
    padding-top: 225px;
}