/* ==============================================
   RESPONSIVE - Mobile-First Media Queries
   ============================================== */

/* MOBILE FIRST - Base Styles (320px - 640px) */

/* Navigation & Header Mobile */
@media (max-width: 639px) {
  .header-container {
    padding: 1rem;
  }

  .nav {
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    bottom: 0;
    flex-direction: column;
    background-color: white;
    padding: 2rem;
    gap: 2rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height 300ms ease-in-out;
  }

  @media (prefers-color-scheme: dark) {
    .nav {
      background-color: #0f172a;
    }
  }

  .nav.active {
    max-height: calc(100vh - 60px);
  }

  .nav-link {
    font-size: 1.125rem;
  }
}

/* TABLET VIEW (640px - 1024px) */
@media (min-width: 640px) and (max-width: 1023px) {
  .header-container {
    padding: 1rem 1.5rem;
  }

  .nav {
    gap: 1.5rem;
  }

  .container {
    padding: 0 1.5rem;
  }

  h1 { font-size: 2.25rem; }
  h2 { font-size: 2rem; }
  h3 { font-size: 1.5rem; }

  /* Grid adjustments for tablet */
  .grid.cols-2 {
    grid-template-columns: 1fr;
  }

  .grid.cols-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid.cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Card spacing tablet */
  .card {
    margin-bottom: 1.5rem;
  }

  /* Footer grid tablet */
  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

/* DESKTOP VIEW (1024px - 1280px) */
@media (min-width: 1024px) and (max-width: 1279px) {
  .container {
    max-width: 960px;
  }

  .grid.cols-3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .grid.cols-4 {
    grid-template-columns: repeat(3, 1fr);
  }

  h1 { font-size: 3rem; }
  h2 { font-size: 2.5rem; }
}

/* LARGE DESKTOP (1280px - 1536px) */
@media (min-width: 1280px) and (max-width: 1535px) {
  .container {
    max-width: 1140px;
  }

  .grid.cols-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* EXTRA LARGE DESKTOP (1536px+) */
@media (min-width: 1536px) {
  .container {
    max-width: 1320px;
  }

  h1 { font-size: 4rem; }
  h2 { font-size: 3rem; }

  body {
    font-size: 1.0625rem;
  }
}

/* RESPONSIVE PADDING */
@media (max-width: 639px) {
  .section {
    padding-top: 2rem;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
  }

  .section-title {
    margin-bottom: 2rem;
  }

  .card-body,
  .card-header,
  .card-footer {
    padding: 1rem;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .section {
    padding-top: 3rem;
    padding-bottom: 3rem;
    margin-bottom: 2rem;
  }

  .section-title {
    margin-bottom: 3rem;
  }
}

@media (min-width: 1024px) {
  .section {
    padding-top: 4rem;
    padding-bottom: 4rem;
    margin-bottom: 2rem;
  }

  .section-title {
    margin-bottom: 4rem;
  }
}

/* RESPONSIVE TYPOGRAPHY */
@media (max-width: 639px) {
  p {
    font-size: 0.9375rem;
    line-height: 1.6;
  }

  .badge {
    font-size: 0.625rem;
    padding: 0.375rem 0.75rem;
  }
}

@media (min-width: 1024px) {
  p {
    font-size: 1.0625rem;
  }
}

/* RESPONSIVE GRID LAYOUTS */
@media (max-width: 639px) {
  .grid {
    gap: 1rem;
  }

  .grid.cols-2,
  .grid.cols-3,
  .grid.cols-4 {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .grid {
    gap: 1.5rem;
  }

  .grid.cols-2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid.cols-3 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid.cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .grid {
    gap: 2rem;
  }

  .grid.cols-2 {
    grid-template-columns: repeat(2, 1fr);
  }

  .grid.cols-3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .grid.cols-4 {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* RESPONSIVE SPACING */
@media (max-width: 639px) {
  .mt-4 { margin-top: 0.5rem; }
  .mb-8 { margin-bottom: 1.5rem; }
  .py-8 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
}

/* RESPONSIVE FLEX */
@media (max-width: 639px) {
  .flex-between {
    flex-direction: column;
    gap: 1rem;
  }

  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }

  .footer-social {
    justify-content: center;
  }
}

/* RESPONSIVE BUTTONS */
@media (max-width: 639px) {
  button,
  .btn {
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: 0.9375rem;
  }
}

@media (min-width: 640px) {
  button,
  .btn {
    padding: 0.75rem 2rem;
  }
}

/* RESPONSIVE HERO SECTIONS */
@media (max-width: 639px) {
  .hero {
    min-height: 60vh;
    padding: 3rem 1rem;
  }

  .hero h1 {
    font-size: 2rem;
  }

  .hero p {
    font-size: 0.9375rem;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .hero {
    min-height: 70vh;
    padding: 4rem 1.5rem;
  }

  .hero h1 {
    font-size: 2.5rem;
  }
}

@media (min-width: 1024px) {
  .hero {
    min-height: 100vh;
    padding: 5rem 2rem;
  }

  .hero h1 {
    font-size: 3.75rem;
  }
}

/* RESPONSIVE FORMS */
@media (max-width: 639px) {
  input,
  textarea,
  select {
    font-size: 1rem;
    padding: 0.75rem;
    border-radius: 0.5rem;
  }

  .form-group {
    margin-bottom: 1rem;
  }
}

@media (min-width: 640px) {
  input,
  textarea,
  select {
    font-size: 1rem;
    padding: 0.75rem 1rem;
  }

  .form-group {
    margin-bottom: 1.5rem;
  }
}

/* RESPONSIVE TABLES */
@media (max-width: 639px) {
  table {
    font-size: 0.875rem;
  }

  th, td {
    padding: 0.5rem;
  }

  table {
    overflow-x: auto;
    display: block;
  }
}

@media (min-width: 640px) {
  table {
    font-size: 1rem;
  }

  th, td {
    padding: 1rem;
  }
}

/* RESPONSIVE IMAGES */
@media (max-width: 639px) {
  img {
    max-width: 100%;
    height: auto;
  }

  picture img {
    width: 100%;
  }
}

/* RESPONSIVE NAVIGATION LINKS */
@media (max-width: 639px) {
  .nav-link {
    font-size: 1rem;
    padding: 0.5rem 0;
  }
}

@media (min-width: 640px) {
  .nav-link {
    font-size: 0.95rem;
    padding: 0.5rem 0;
  }
}

/* RESPONSIVE CONTAINERS FOR DIFFERENT VIEWS */
@media (max-width: 639px) {
  /* Mobile spacing */
  .container-sm { padding: 0 1rem; }
  .container-md { padding: 0 1rem; }
  .container-lg { padding: 0 1rem; }
}

@media (min-width: 640px) and (max-width: 1023px) {
  /* Tablet spacing */
  .container-sm { padding: 0 1.5rem; }
  .container-md { padding: 0 1.5rem; }
  .container-lg { padding: 0 1.5rem; }
}

@media (min-width: 1024px) {
  /* Desktop spacing */
  .container-sm { max-width: 540px; }
  .container-md { max-width: 720px; }
  .container-lg { max-width: 960px; }
}

/* HIDE/SHOW ELEMENTS BASED ON SCREEN SIZE */
@media (max-width: 639px) {
  .hide-mobile { display: none !important; }
  .show-mobile { display: block !important; }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .hide-tablet { display: none !important; }
  .show-tablet { display: block !important; }
}

@media (min-width: 1024px) {
  .hide-desktop { display: none !important; }
  .show-desktop { display: block !important; }
}

/* LANDSCAPE ORIENTATION */
@media (orientation: landscape) and (max-height: 600px) {
  .header {
    position: static;
  }

  .hero {
    min-height: auto;
    padding: 2rem;
  }

  h1 { font-size: 1.875rem; }
  h2 { font-size: 1.5rem; }
}

/* PRINT STYLES */
@media print {
  body {
    background: white;
    color: black;
  }

  .header,
  .footer,
  .no-print {
    display: none;
  }

  a {
    color: black;
  }

  img {
    max-width: 100%;
  }
}
