/* Responsive rules for Justiq static site */

@media (max-width: 1400px) {
  .hero h1 { font-size: 56px; }
  .section-title { font-size: 38px; }
  .header-phone { display: none; }
}

@media (max-width: 1200px) {
  .hero-grid,
  .about-grid,
  .why-grid,
  .history-layout,
  .how-grid,
  .testi-grid,
  .details-layout,
  .contact-wrap,
  .contact-layout,
  .contact-split,
  .enquiry,
  .process,
  .standing,
  .footer-cta,
  .page-intro {
    grid-template-columns: 1fr;
  }

  .hero-visual .main-img,
  .about-visual img,
  .why-image,
  .how-visual img,
  .page-intro-visual img {
    height: 420px;
  }

  .team-grid,
  .counter-row,
  .contact-info-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .footer-cta {
    flex-direction: column;
    align-items: flex-start;
  }

  .footer-cta-actions {
    width: 100%;
  }

  .contact-layout,
  .contact-split {
    grid-template-columns: 1fr;
  }

  .mega-menu {
    width: 420px;
  }
}

@media (max-width: 991px) {
  .split-2 { grid-template-columns: 1fr; }
  .nav-toggle { display: grid; place-items: center; }

  .header-phone,
  .header-cta { display: none; }

  .nav {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(86vw, 380px);
    background: var(--primary);
    padding: 90px 24px 30px;
    transform: translateX(100%);
    transition: transform 0.4s ease;
    overflow-y: auto;
    margin: 0;
    z-index: 1001;
  }

  .nav.open { transform: none; }

  .nav > ul {
    flex-direction: column;
    align-items: stretch;
  }

  .dropdown,
  .mega-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
    width: 100%;
    background: rgba(255, 255, 255, 0.06);
    box-shadow: none;
    margin-top: 6px;
  }

  .mega-menu { grid-template-columns: 1fr; }

  .has-dropdown.open > .dropdown,
  .has-dropdown.open > .mega-menu {
    display: block;
  }

  .dropdown a,
  .mega-menu a {
    color: var(--white);
  }

  .hero {
    min-height: auto;
  }

  .hero-swiper .swiper-slide {
    min-height: auto;
    padding: 140px 0 120px;
  }

  .hero h1 { font-size: 42px; }
  .section { padding: 80px 0; }
  .page-banner { min-height: 380px; }
  .banner-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    padding: 56px 0 32px;
  }
  .page-banner h1 { font-size: 38px; max-width: none; }
  .banner-mark { width: 90px; height: 110px; bottom: 70px; }
  .hero-rings { width: 340px; height: 340px; }

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

  .service-grid,
  .blog-grid,
  .info-grid,
  .gallery-grid,
  .why-features {
    grid-template-columns: 1fr 1fr;
  }

  .form-grid,
  .two-col {
    grid-template-columns: 1fr;
  }

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

@media (max-width: 767px) {
  .container { width: min(100% - 28px, var(--container)); }

  .hero h1 { font-size: 34px; }
  .section-title { font-size: 30px; }
  .services-head,
  .hero-actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .hero-ui-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 14px 0 16px;
    gap: 12px;
  }

  .hero-copy { padding-left: 18px; }
  .banner-rings { width: 260px; height: 260px; right: -120px; }
  .banner-foot span:not(:last-child)::after { margin: 0 10px; }
  .hero-meta span:not(:last-child)::after { margin: 0 10px; }

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

  .practice-tile {
    min-height: 200px;
    padding: 18px 16px 16px;
  }

  .practice-tile h3 { font-size: 16px; }

  .service-grid,
  .blog-grid,
  .info-grid,
  .gallery-grid,
  .why-features,
  .team-grid,
  .counter-row,
  .contact-info-grid,
  .footer-top,
  .footer-practice,
  .process,
  .standing {
    grid-template-columns: 1fr;
  }

  .footer-cta {
    padding: 26px 20px;
  }

  .footer-cta h3 {
    font-size: 24px;
  }

  .footer-bottom,
  .footer-meta {
    flex-direction: column;
    align-items: flex-start;
  }

  .counter-item .count { font-size: 32px; }
  .error-page .code { font-size: 90px; }
  .hero-visual .main-img,
  .about-visual img { height: 380px; }
  .hero-cta-card { position: relative; right: auto; bottom: auto; max-width: none; margin-top: 18px; }
  .contact-panel,
  .contact-form-pane { padding: 28px 22px; }
  .map-full iframe { height: 280px; }
  .page-intro { gap: 28px; margin-bottom: 36px; }
  .page-intro-visual img { height: 320px; }
  .page-figure img { height: 240px; }
}

@media (max-width: 375px) {
  .hero h1 { font-size: 30px; }
  .btn { padding-left: 18px; }
  .practice-grid { grid-template-columns: 1fr; }
}
