/* Responsive — Toyin John Modern Theme · v2.0.2 */

/* Large desktop / small laptop */
@media (max-width: 1180px) {
  .footer-grid { grid-template-columns: 1.4fr repeat(3, 1fr); }
  .footer-grid > .footer-col:nth-child(n+5) { grid-column: span 1; }
  .footer-grid > .footer-col:nth-child(5),
  .footer-grid > .footer-col:nth-child(6),
  .footer-grid > .footer-col:nth-child(7) { grid-column: span 1; }
}

@media (max-width: 1024px) {
  .nav-item--l1 > .nav-link { padding: 0.6rem 0.85rem; font-size: 0.875rem; letter-spacing: 0.04em; }
  .footer-grid { grid-template-columns: 1.2fr repeat(2, 1fr); }
  .footer-grid > .footer-col:nth-child(n+4) { grid-column: span 1; }
}

/* Tablet */
@media (max-width: 980px) {
  :root { --container: 100%; }
  .quick-grid { grid-template-columns: repeat(3, 1fr); }
  .content-layout { grid-template-columns: 1fr; }
  .content-aside { position: static; order: 2; }
  .content-main { order: 1; }
  .headlines { grid-template-columns: repeat(2, 1fr); }
  .cta-card { grid-template-columns: 1fr; text-align: center; }
  .cta-actions { flex-direction: row; justify-content: center; flex-wrap: wrap; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
  .footer-grid > .footer-col:first-child { grid-column: 1 / -1; text-align: center; }
  .footer-brand-tag { letter-spacing: 0.16em; }

  .hero-arrow { width: 40px; height: 40px; }
  .hero-arrow--prev { left: 0.6rem; }
  .hero-arrow--next { right: 0.6rem; }
}

/* Mobile */
@media (max-width: 720px) {
  .utility-bar { font-size: 11px; }
  .utility-inner { flex-direction: row; gap: 0.6rem; }
  .utility-links ul { gap: 0.7rem; }
  .utility-links ul li:nth-child(n+4) { display: none; }
  .utility-social a { width: 24px; height: 24px; }
  .utility-social img { width: 14px; height: 14px; }

  .header-inner { gap: var(--sp-1); }
  .brand-tag { display: none; }
  .nav-toggle { display: inline-block; }

  .primary-nav {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: #fff;
    border-top: 1px solid var(--c-border);
    border-bottom: 1px solid var(--c-border);
    padding: var(--sp-2);
    display: none;
    box-shadow: var(--shadow-lg);
  }
  .primary-nav.is-open { display: block; }
  .nav-list, .nav-list--root { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-item--l1 { width: 100%; }
  .nav-item--l1 > .nav-link {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: var(--radius-sm);
    border-bottom: 1px solid var(--c-border-soft);
    justify-content: flex-start;
    color: var(--c-text);
    background: transparent;
  }
  .nav-item--l1 > .nav-link.active,
  .nav-item--l1.active > .nav-link,
  .nav-item--l1.starter_active > .nav-link {
    color: var(--c-purple);
    background: var(--c-bg-alt);
  }
  .nav-list--l2 {
    position: static;
    display: block;
    box-shadow: none;
    border: 0;
    padding: 0 0 0 1rem;
    background: var(--c-bg-alt);
  }
  .nav-list--l3 {
    position: static;
    display: block;
    box-shadow: none;
    border: 0;
    padding-left: 1rem;
  }

  /* Hero slider */
  .hero-slides { min-height: 460px; }
  .hero-content { padding: var(--sp-5) var(--sp-3); }
  .hero-title { font-size: 2.5rem; }
  .hero-lede { font-size: 1rem; }
  .hero-arrow { display: none; }
  .hero-dots { bottom: var(--sp-2); }

  .quick-grid { grid-template-columns: repeat(2, 1fr); }
  .home-featured, .home-headlines, .home-promos, .home-cta { padding: var(--sp-4) 0; }
  .headlines { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; gap: var(--sp-4); }
  .footer-grid > .footer-col:first-child { text-align: center; }
  .footer-bottom-inner { flex-direction: column; text-align: center; gap: 0.5rem; }
  .footer-copyright { justify-content: center; }

  .content-page { padding: var(--sp-3) 0 var(--sp-5); }
  .page-title { font-size: var(--fs-2xl); }

  h1 { font-size: 2rem; }
  h2 { font-size: 1.625rem; }
  h3 { font-size: 1.25rem; }
}

/* Small phones */
@media (max-width: 420px) {
  .quick-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-1); }
  .quick-card { padding: 0.9rem 0.4rem; }
  .quick-icon { width: 36px; height: 36px; }
  .quick-icon svg { width: 16px; height: 16px; }
  .quick-label { font-size: 0.7rem; }
  .hero-title { font-size: 2.1rem; }
}
