/* =========================================================
   OnYvon — Responsive (mobile-first adjustments)
   Breakpoints: 480, 768, 1024, 1240
   ========================================================= */

/* ============ Tablet & below ============ */
@media (max-width: 1024px) {
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--s-8);
  }
  .footer-brand { grid-column: 1 / -1; }
  .timeline { padding-left: var(--s-8); }
  .timeline__item::before { left: calc(-1 * var(--s-8) + 6px); }
}

/* ============ Mobile ============ */
@media (max-width: 768px) {
  :root { --header-h: 64px; }

  .container { padding-inline: var(--s-5); }

  .section { padding-block: clamp(var(--s-12), 12vw, var(--s-20)); }

  /* Nav */
  .nav-links { display: none; }
  .nav-cta .btn--secondary { display: none; }
  .nav-burger { display: inline-flex; }

  /* Hero */
  .hero-orb { width: 360px; height: 360px; filter: blur(60px); }

  /* Typography */
  h1 { font-size: clamp(2.5rem, 10vw, 3.5rem); }
  .section-title { font-size: var(--fs-3xl); max-width: none; }
  .pullquote blockquote { font-size: clamp(1.5rem, 6vw, 2rem); max-width: 20ch; }

  /* Cards / grids */
  .grid { gap: var(--s-4); }
  .card { padding: var(--s-6); }

  .project-filters { overflow-x: auto; flex-wrap: nowrap; padding-bottom: var(--s-2); scrollbar-width: none; }
  .project-filters::-webkit-scrollbar { display: none; }
  .filter-btn { flex-shrink: 0; }

  /* CTA strip */
  .cta-strip { border-radius: var(--r-xl); }
  .cta-strip .btn-group .btn { flex: 1 1 auto; }

  /* Footer */
  .footer-grid {
    grid-template-columns: 1fr;
    gap: var(--s-8);
  }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  /* Mobile drawer */
  .mobile-drawer nav a { font-size: 1.75rem; }
}

/* ============ Small mobile ============ */
@media (max-width: 480px) {
  .container { padding-inline: var(--s-4); }
  .btn { width: 100%; max-width: 340px; }
  .hero .btn-group { flex-direction: column; align-items: stretch; }
  .stat__num { font-size: 2.25rem; }
}

/* ============ Large desktop ============ */
@media (min-width: 1440px) {
  .container { max-width: 1320px; }
}

/* ============ Print (clean CV) ============ */
@media print {
  body::before, body::after, .site-nav, .site-footer, .cta-strip, .hero-orb, .grid-bg { display: none !important; }
  body { background: white; color: black; }
  * { color: black !important; }
  .card, .stat, .timeline__item { break-inside: avoid; }
  a::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #666; }
}

/* ============ Landscape phone — avoid content hidden ============ */
@media (max-height: 500px) and (orientation: landscape) {
  .hero { min-height: 100vh; }
}
