/* ======= GLOBAL RESPONSIVE FIXES ======= */

/* Large tablets */
@media (max-width: 1024px) {
  .section {
    padding: 100px 20px;
  }

  .grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .grid.narrow {
    grid-template-columns: repeat(2, 1fr);
}

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }

  .cta-inner {
    padding: 50px 40px;
  }

  .cta-inner h2 {
    font-size: 32px;
  }
}

/* Tablets / small laptops */
@media (max-width: 900px) {
  .section h1 {
    font-size: 38px;
  }
  .section h2 {
    font-size: 30px;
  }
  .section .subtext {
    font-size: 18px;
  }

  .gallery {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
  }

  .cta-box {
    padding: 100px 20px;
  }

  .cta-inner {
    padding: 50px 30px;
    max-width: 700px;
  }
}

/* Phones */
@media (max-width: 768px) {
  .section {
    padding: 80px 18px;
  }

  .section h1 {
    font-size: 32px;
  }

  .section h2 {
    font-size: 26px;
  }

  .section h3 {
    font-size: 20px;
  }

  .section .subtext {
    font-size: 16px;
  }

  .grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .grid.narrow { grid-template-columns: 1fr}

  .gallery {
    grid-template-columns: 1fr 1fr;
  }

  .card {
    padding: 28px;
  }

  .cta-inner {
    padding: 40px 24px;
    max-width: 90%;
  }

  .cta-inner h2 {
    font-size: 28px;
  }

  .cta-inner p {
    font-size: 16px;
  }

  .cta-inner .large-btn {
    font-size: 16px;
    width: 100%;
    padding: 20px 0px;
    margin: 10px 0px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  .footer {
    padding: 50px 20px;
  }

  .btn-primary,
  .btn-outline,
  .btn-outline-black {
    width: 100%;
    justify-content: center;
  }
}

/* Small phones */
@media (max-width: 480px) {
  body {
    font-size: 15px;
  }

  .section {
    padding: 60px 14px;
  }

  .section h1 {
    font-size: 28px;
  }

  .section h2 {
    font-size: 22px;
  }

  .grid,
  .gallery {
    grid-template-columns: 1fr;
  }

  .gallery-item img {
    height: 200px;
  }

  .cta-inner {
    padding: 30px 18px;
    border-radius: 18px;
  }

  .cta-inner h2 {
    font-size: 24px;
  }

  .cta-inner p {
    font-size: 15px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .footer-copy {
    margin-top: 20px;
  }
  .grid.narrow {
    grid-template-columns: 1fr;
}
}
