/* Responsive CSS */

/* Container and Grid */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

/* Mobile Navigation */
.mobile-nav-toggle {
  display: none;
}
.nav-links {
  display: flex;
  align-items: center;
}

/* Tablet */
@media (max-width: 992px) {
  .grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile */
@media (max-width: 768px) {
  .grid-3, .grid-2 {
    grid-template-columns: 1fr;
  }
  
  .section {
    padding: 60px 0;
  }

  .mobile-nav-toggle {
    display: block;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: var(--brand-dark);
  }

  .nav-links {
    position: fixed;
    top: 104px; /* Adjust based on header height */
    left: -100%;
    width: 100%;
    height: auto;
    max-height: calc(100vh - 104px);
    background: var(--brand-white);
    flex-direction: column;
    align-items: stretch;
    padding: 8px 0 16px;
    transition: left 0.3s ease;
    overflow-y: auto;
    box-shadow: 0 12px 24px rgba(11,44,95,0.12);
  }

  .nav-links .nav-item {
    width: 100%;
    border-bottom: 1px solid var(--brand-light);
  }

  .nav-links .nav-item > a {
    padding: 14px 24px;
    display: block;
  }
  
  .nav-links.active {
    left: 0;
  }
  
  /* Standard mobile submenu: plain vertical list, no columns/headers */
  .mega-menu {
    position: static !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: none;
    width: 100% !important;
    padding: 0 !important;
    transform: none !important;
    background: var(--brand-light);
  }
  
  .nav-item.dropdown.active .mega-menu {
    display: block;
  }

  .mega-col {
    width: 100%;
  }

  .mega-col h4 {
    display: none; /* hide column headers in standard mobile menu */
  }

  .mega-col ul {
    list-style: none;
  }

  .mega-col li a {
    padding: 10px 24px 10px 44px; /* indent sub-items */
    display: block;
    font-size: 15px;
    color: var(--brand-text);
  }

  .mega-col li a:hover {
    color: var(--brand-secondary);
  }
}

/* Small Mobile */
@media (max-width: 480px) {
  input, select, textarea, .btn-primary, .btn-secondary, .btn-ghost {
    width: 100%;
  }
}
