/* ============================================================
   responsive.css — breakpoints: 1200 / 992 / 768 / 576 / 420
   ============================================================ */

/* ---------- ≤ 1200px ---------- */
@media (max-width: 1200px) {
  .hero__grid { gap: 2rem; }
  .cards-grid--3 { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- ≤ 992px ---------- */
@media (max-width: 992px) {
  /* Mobile navigation */
  .nav__links {
    position: fixed;
    top: 0; right: 0;
    height: 100dvh;
    width: min(320px, 82vw);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 1.6rem;
    padding: 2rem;
    background: var(--menu-bg);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-left: 1px solid var(--color-border);
    transform: translateX(100%);
    transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1);
    visibility: hidden;
  }
  .nav__links.is-open { transform: translateX(0); visibility: visible; }
  .nav__link { font-size: 1.1rem; }
  .nav__cta { display: none; }
  .nav__cta-mobile { display: block; margin-top: 1rem; }
  .nav__burger { display: flex; position: relative; z-index: 2; }

  .hero__grid { grid-template-columns: 1fr; text-align: left; }
  .hero__visual { order: -1; }
  .hero__portrait { max-width: 300px; margin-inline: 0; }
  .hero__scroll-hint { display: none; }

  .about__grid { grid-template-columns: 1fr; }
  .about__portrait { max-width: 420px; }
  .about__ring { right: 8px; bottom: -34px; }

  .skills__grid { grid-template-columns: 1fr; }
  .process__steps { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- ≤ 768px ---------- */
@media (max-width: 768px) {
  .stats__grid { grid-template-columns: repeat(2, 1fr); }

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

  .timeline { padding-left: 1.6rem; }
  .timeline__marker { left: -1.6rem; }
  .timeline__card { padding: 1.4rem 1.5rem; }

  .cards-grid--3 { grid-template-columns: 1fr; }
  .process__steps { grid-template-columns: 1fr; }
  .process__line { display: none; }

  .modal__panel { padding: 1.8rem 1.4rem; }

  /* Sticky bar compact */
  .sticky-bar {
    width: calc(100% - 1.6rem);
    justify-content: space-between;
    gap: 0.7rem;
    padding: 0.5rem 0.7rem 0.5rem 1rem;
  }
  .sticky-bar .status { font-size: 0.72rem; }
  .sticky-bar__cv { display: none; }

  .back-top { right: 1rem; }
}

/* ---------- ≤ 576px ---------- */
@media (max-width: 576px) {
  .container { width: calc(100% - 2.2rem); }
  .section { padding-block: 3.5rem; }

  .hero { padding-top: 5.5rem; }
  .hero__actions .btn { width: 100%; }
  .hero__meta { gap: 1rem; }

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

  .footer__grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer__bottom { padding-bottom: 6.5rem; text-align: center; }
}

/* ---------- ≤ 420px ---------- */
@media (max-width: 420px) {
  .stats__grid { grid-template-columns: 1fr 1fr; gap: 1.4rem; }
  .testimonial { padding: 1.6rem; }
  .testimonial p { font-size: 0.98rem; }
  .contact__actions .btn { width: 100%; }
  .sticky-bar .status { display: none; }
  .sticky-bar { justify-content: center; }
}

/* ---------- Touch devices: no hover-dependent effects ---------- */
@media (hover: none) {
  [data-tilt] { transform: none !important; }
}

/* ---------- Nav toggle buttons on small screens ---------- */
@media (max-width: 760px) {
  .nav__toggles { gap: 0.35rem; }
  .toggle-btn { min-width: 36px; height: 36px; padding: 0 0.5rem; font-size: 0.78rem; }
  .toggle-btn svg { width: 16px; height: 16px; }
}
