/* ===========================================
   Responsive Styles
   2-tier breakpoint system: PC (>=1024px) / Mobile (<=1023px)
   =========================================== */

/* --- Theme switcher: smooth transitions --- */
.theme-switcher {
  transition: opacity 0.3s ease;
}

.theme-switcher-info,
.theme-buttons,
.theme-btn {
  transition: all 0.2s ease;
}

/* --- 1023px and below: Mobile / Tablet --- */
@media (max-width: 1023px) {
  /* Navigation */
  .nav-links {
    display: none;
  }

  .hamburger {
    display: block;
  }

  /* Layout grids */
  .services-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

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

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

  .qa-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

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

  .about-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

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

  /* Section padding & titles */
  .section-padding {
    padding: 4rem 0;
  }

  .section-title {
    font-size: 1.5rem;
    margin-bottom: 2.5rem;
  }

  /* Container */
  .container {
    padding: 0 1rem;
  }

  /* Footer */
  .footer-inner {
    flex-direction: column;
    text-align: center;
  }

  /* --- Theme: Cyberpunk --- */
  .theme-cyberpunk .hero-title {
    font-size: 2rem;
  }

  .theme-cyberpunk .hero-subtitle-area {
    height: auto;
    margin-bottom: 2rem;
  }

  .about-cyber-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  /* --- Theme: Retro Game --- */
  .theme-retro-game .hero-box {
    padding: 1.5rem;
  }

  .theme-retro-game .hero-title {
    font-size: 1.25rem;
  }

  .theme-retro-game .rpg-grid {
    grid-template-columns: 1fr !important;
  }

  .theme-retro-game .rpg-left {
    border-right: none !important;
  }

  .theme-retro-game .rpg-abilities {
    grid-template-columns: 1fr !important;
  }

  /* --- Theme: Editorial --- */
  .theme-editorial .hero-inner {
    grid-template-columns: 1fr;
  }

  .theme-editorial .hero-image {
    max-height: 60vh;
  }

  .theme-editorial .section-title {
    font-size: 2rem;
  }

  .theme-editorial .works-header h2 {
    font-size: 2rem;
  }

  .theme-editorial .work-editorial-item {
    grid-template-columns: 1fr;
  }

  .theme-editorial .work-editorial-item:nth-child(even) .work-image,
  .theme-editorial .work-editorial-item:nth-child(even) .work-info {
    order: unset;
    text-align: left;
  }

  .theme-editorial .about-text-lead {
    font-size: 1.125rem;
  }

  .theme-editorial .about-grid-editorial {
    grid-template-columns: 1fr;
  }

  .theme-editorial .about-skills-grid {
    grid-template-columns: 1fr;
  }

  .theme-editorial .flow-step-editorial {
    flex-direction: column;
    gap: 0.5rem;
  }

  /* --- Theme: Glass --- */
  .theme-glass .hero-title {
    font-size: 2rem;
  }

  .theme-glass .hero-subtitle {
    font-size: 1rem;
  }

  .theme-glass .about-glass {
    padding: 1.5rem;
  }

  .theme-glass .contact-glass {
    padding: 1.5rem;
  }

  .theme-glass .mobile-menu.open {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }

  /* --- Theme switcher (size shrink + fade) --- */
  .theme-switcher {
    bottom: 1rem;
    right: 1rem;
    gap: 0.3rem;
  }

  .theme-switcher-info {
    padding: 0.2rem 0.6rem;
    gap: 0.35rem;
    font-size: 0.5rem;
    letter-spacing: 0.1em;
  }

  .theme-switcher-label {
    font-size: 0.5rem;
  }

  .theme-buttons {
    gap: 0.35rem;
    padding: 0.3rem;
  }

  .theme-btn {
    width: 32px;
    height: 32px;
    font-size: 0.625rem;
  }

  .theme-switcher.near-footer {
    opacity: 0.35;
  }

  .theme-switcher.near-footer:hover,
  .theme-switcher.near-footer:focus-within {
    opacity: 1;
  }
}
