/* ==========================================================================
   veryGoodAgency - 반응형 스타일 (responsive.css)
   Breakpoints: 1200px / 1024px / 768px / 640px / 480px
   ========================================================================== */

/* --------------------------------------------------------------------------
   1200px - 넓은 화면 최적화
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  :root {
    --container-pad: 2rem;
  }

  .footer__grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 2.5rem;
  }

  /* about */
  .team-grid { grid-template-columns: repeat(3, 1fr); }
  .partners-grid { grid-template-columns: repeat(4, 1fr); }
}

/* --------------------------------------------------------------------------
   1024px - 태블릿 가로
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  :root {
    --container-pad: 1.5rem;
  }

  /* 네비 */
  .nav__menu { display: none; }
  .nav__cta  { display: none; }
  .nav__hamburger { display: flex; }

  /* 히어로 */
  .hero__stats-inner {
    gap: 1rem;
  }

  .hero__stat-num { font-size: var(--fs-2xl); }

  /* about preview */
  .about-preview {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .about-preview__image { order: -1; }
  .about-preview__image .img-placeholder { min-height: 360px; }
  .about-preview__image::after { display: none; }
  .about-preview__badge { left: 1rem; }

  /* services grid */
  .services-grid { grid-template-columns: repeat(2, 1fr); }

  /* portfolio preview grid */
  .portfolio-preview-grid { grid-template-columns: repeat(2, 1fr); }

  /* stats */
  .stats-grid { grid-template-columns: repeat(2, 1fr); }

  /* strengths */
  .strengths-grid { grid-template-columns: 1fr 1fr; }

  /* team */
  .team-grid { grid-template-columns: repeat(2, 1fr); }

  /* partners */
  .partners-grid { grid-template-columns: repeat(3, 1fr); }
  .partners-text-grid { grid-template-columns: repeat(3, 1fr); }

  /* story grid */
  .story-grid { gap: 3rem; }

  /* service alt rows */
  .service-alt-row {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .service-alt-row--reverse { direction: ltr; }
  .service-alt-row__image .img-placeholder { min-height: 300px; }

  /* portfolio grid */
  .portfolio-grid { grid-template-columns: repeat(2, 1fr); }

  /* contact */
  .contact-layout {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .contact-info { position: static; }

  /* footer */
  .footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }

  /* vision grid */
  .vision-grid { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   768px - 태블릿 세로
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  /* 섹션 간격 줄이기 */
  .section { padding: 4rem 0; }

  /* 섹션 헤더 */
  .section-title { font-size: var(--fs-3xl); }
  .section-desc  { font-size: var(--fs-base); }

  /* 히어로 */
  .hero__title { font-size: clamp(2rem, 8vw, 3rem); }
  .hero__desc  { font-size: var(--fs-base); }
  .hero__actions { gap: .75rem; }
  .hero__bg-img { object-position: right center; }

  .hero__stats { display: none; }

  .hero__content { text-align: center; }
  .hero__eyebrow { justify-content: center; font-size: 1.5em }
  .hero__desc { margin-left: auto; margin-right: auto; }
  .hero__actions { justify-content: center; }

  /* 페이지 히어로 */
  .page-hero__title { font-size: var(--fs-4xl); }

  /* about preview */
  .about-preview__badge { display: none; }

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

  /* portfolio preview grid */
  .portfolio-preview-grid { grid-template-columns: 1fr; }

  /* portfolio grid */
  .portfolio-grid { grid-template-columns: repeat(2, 1fr); }

  /* portfolio detail */
  .pf-detail { flex-direction: column; }
  .pf-detail .pf-modal__image-wrap { min-height: 260px; }
  .pf-detail .pf-modal__body { padding: 1.5rem 1.5rem 2rem; }
  .pf-detail .pf-modal__title { font-size: var(--fs-xl); }

  /* strengths */
  .strengths-grid { grid-template-columns: 1fr; }

  /* team */
  .team-grid { grid-template-columns: repeat(2, 1fr); }

  /* partners */
  .partners-grid { grid-template-columns: repeat(3, 1fr); }
  .partners-text-grid { grid-template-columns: repeat(2, 1fr); }

  /* story grid — 768px: 세로 배치 */
  .story-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    margin-top: 3rem;
  }
  .story-grid__image { order: -1; }
  .story-grid__image .img-placeholder { min-height: 280px; }

  /* stats */
  .stats-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }

  /* form */
  .form-row { grid-template-columns: 1fr; }

  /* footer */
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem;
  }

  /* CTA 섹션 */
  .cta-title { font-size: var(--fs-3xl); }
  .cta-actions { flex-direction: column; align-items: center; }

  /* 필터 */
  .portfolio-filter { gap: .35rem; padding: .75rem; }
  .filter-btn { padding: .5rem 1rem; font-size: var(--fs-xs); }

  /* vision */
  .vision-card { padding: 1.75rem; }

  /* service alt */
  .service-alt-row__title { font-size: var(--fs-3xl); }
  .service-alt-row__number { font-size: 4rem; }

  /* contact form */
  .contact-form-wrap { padding: 1.75rem; border-radius: var(--r-xl); }
  .contact-info__card { padding: 1.75rem; }
}

/* --------------------------------------------------------------------------
   640px - 모바일 (대)
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
  :root {
    --container-pad: 1.25rem;
    --nav-h: 64px;
  }

  /* 히어로 */
  .hero { min-height: 100svh; }
  .hero__title { font-size: clamp(1.875rem, 9vw, 2.5rem); }

  /* 히어로 스크롤 숨김 */
  .hero__scroll { display: none; }

  /* 페이지 히어로 */
  .page-hero { padding: calc(var(--nav-h) + 3rem) 0 3rem; }
  .page-hero__title { font-size: var(--fs-3xl); }
  .page-hero__desc { font-size: var(--fs-sm); }

  /* 버튼 */
  .btn--lg { padding: .875rem 1.75rem; font-size: var(--fs-base); }

  /* about preview */
  .about-preview { gap: 2rem; }
  .about-preview__image .img-placeholder { min-height: 260px; }

  /* portfolio grid */
  .portfolio-grid { grid-template-columns: 1fr; }

  /* team */
  .team-grid { grid-template-columns: 1fr; }

  /* stats */
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }

  /* stat item 패딩 */
  .stat-item { padding: 1.75rem 1rem; }
  .stat-item__number { font-size: var(--fs-4xl); }

  /* partners */
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .partners-text-grid { grid-template-columns: 1fr 1fr; }

  /* 카카오 플로팅 */
  .kakao-float { bottom: 1.25rem; right: 1.25rem; }
  .kakao-float__btn { width: 50px; height: 50px; font-size: 1.3rem; }

  /* 섹션 헤더 */
  .section-header { margin-bottom: 2.5rem; }
  .section-title { font-size: var(--fs-2xl); }
}

/* --------------------------------------------------------------------------
   480px - 모바일 (소)
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
  .section { padding: 3rem 0; }
  .section-title { font-size: var(--fs-2xl); }

  .hero__title { font-size: clamp(1.75rem, 10vw, 2.25rem); }
  .hero__eyebrow { font-size: .65rem; }

  .btn { padding: .7rem 1.4rem; font-size: var(--fs-sm); }
  .btn--lg { padding: .8rem 1.6rem; font-size: var(--fs-base); }

  /* 히어로 통계 */
  .hero__stat-num { font-size: var(--fs-xl); }

  /* nav mobile */
  .nav__mobile-link { font-size: var(--fs-sm); padding: .8rem .875rem; }

  /* CTA */
  .cta-title { font-size: var(--fs-2xl); }
  .cta-desc  { font-size: var(--fs-sm); }

  /* contact */
  .contact-form-wrap { padding: 1.25rem; }
  .contact-info__card { padding: 1.25rem; }

  /* footer */
  .footer { padding: 3rem 0 1.5rem; }
  .footer__grid { gap: 2rem; }
  .footer__kakao-btn { width: 100%; justify-content: center; }

  /* portfolio filter wrap 스크롤 */
  .portfolio-filter {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
    padding: .75rem 1rem;
  }

  .portfolio-filter::-webkit-scrollbar { display: none; }

  .filter-btn { flex-shrink: 0; }

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

  /* strengths */
  .strength-card { padding: 1.75rem 1.25rem; }

  /* service alt */
  .service-alt-row { padding: 3rem 0; gap: 2rem; }
  .service-alt-row__title { font-size: var(--fs-2xl); }
  .service-alt-row__number { font-size: 3rem; }
}
