/* ============================================
   Responsive Styles
   Mobile First Approach
   ============================================ */

/* Mobile devices (default - up to 575px) */
@media (max-width: 575.98px) {
  :root {
    --fs-h1: 2rem;      /* 32px */
    --fs-h2: 1.75rem;   /* 28px */
    --fs-h3: 1.5rem;    /* 24px */
    --container-padding: 1rem;
  }
  
  .hero-heading {
    font-size: 1.75rem;
  }
  
  .hero-subheading {
    font-size: 1rem;
  }
  
  .navbar-logo {
    max-height: 40px;
  }
  
  .navbar-brand {
    margin-right: 1rem;
  }
  
  .site-header .container-custom {
    flex-wrap: wrap;
  }
  
  .navbar-nav {
    padding-top: 1rem;
    flex-direction: column;
    align-items: flex-start !important;
    width: 100%;
  }
  
  .navbar-nav .nav-item {
    width: 100%;
  }
  
  .navbar-nav .nav-link {
    padding: 0.75rem 0;
    width: 100%;
  }
  
  .navbar-nav .nav-item {
    margin: 0;
  }
  
  .nav-centered {
    justify-content: flex-start !important;
    flex: 1;
  }
  
  /* Show Get Started button in mobile menu */
  .navbar-nav::after {
    content: '';
    display: block;
    width: 100%;
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
  }
  
  .navbar-nav::after + .btn {
    margin-top: 1rem;
  }
  
  .btn-primary-custom,
  .btn-outline-primary-custom {
    padding: 0.625rem 1.5rem;
    font-size: 0.9rem;
  }
  
  .ussd-code {
    font-size: 0.875rem;
    padding: 0.4rem 0.75rem;
  }
  
  .service-card {
    margin-bottom: 1rem;
  }
  
  .hero-section {
    padding: 5rem 0 6rem 0 !important;
  }
  
  .hero-image {
    margin-top: 2rem !important;
  }
  
  /* Add margin to the image column on mobile when stacked */
  .hero-section .col-lg-6:last-child {
    margin-top: 2rem !important;
  }
  
  /* Disable fixed background on mobile for better performance */
  .services-bg-image {
    background-attachment: scroll !important;
  }
  
  .services-section,
  .services-overview,
  .why-choose-section,
  .highlights-section,
  .cta-section,
  .faq-cta {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }
}

/* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) {
  :root {
    --container-padding: 1.5rem;
  }
}

/* All devices below large (below 992px) - where columns stack */
@media (max-width: 991.98px) {
  .hero-section .col-lg-6:last-child {
    margin-top: 3rem !important;
  }
  
  .hero-image {
    margin-top: 0 !important;
  }
  
  /* Disable fixed background on tablets and mobile */
  .services-bg-image {
    background-attachment: scroll !important;
  }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
  :root {
    --container-padding: 2rem;
  }
  
  .site-footer {
    padding: 2rem 0 1rem;
  }
  
  .footer-heading {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
  }
  
  .footer-links li:first-child {
    margin-top: 0;
  }
  
  .hero-section {
    padding: 5rem 0 6rem 0 !important;
  }
  
  /* Remove margin on tablets when columns might be side-by-side */
  .hero-section .col-lg-6:last-child {
    margin-top: 0;
  }
  
  .services-section,
  .services-overview,
  .why-choose-section,
  .highlights-section,
  .cta-section,
  .faq-cta {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
  }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
  .navbar-nav .nav-link {
    padding: 0.5rem 1rem;
  }
  
  .hero-section {
    padding: 6rem 0 6rem 0 !important;
  }
  
  /* Remove margin on desktop when columns are side-by-side */
  .hero-section .col-lg-6:last-child {
    margin-top: 0;
  }
  
  .hero-image {
    margin-top: 0 !important;
  }
  
  .services-section,
  .services-overview,
  .why-choose-section,
  .highlights-section,
  .cta-section,
  .faq-cta {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }
  
  /* Hide mobile flyout menu on desktop */
  .mobile-flyout-menu {
    display: none !important;
  }
  
  .modern-menu-toggle {
    display: none !important;
  }
}

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
  .container-custom {
    padding: 0 2rem;
  }
  
  .hero-section {
    padding: 6rem 0 6rem 0 !important;
  }
  
  .services-section,
  .services-overview,
  .why-choose-section,
  .highlights-section,
  .cta-section,
  .faq-cta {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }
}

/* Print styles */
@media print {
  .site-header,
  .site-footer,
  .btn,
  .navbar {
    display: none;
  }
}
