/* ============================================
   responsive.css
   - 모든 반응형(데스크톱 축소·태블릿·모바일) 미디어쿼리 통합 관리
   - 베이스/컴포넌트는 style.css, 애니메이션은 animation.css
   ============================================ */

/* ====== 한국어 줄바꿈 글로벌 룰 ====== */
h1, h2, h3, h4, h5, p, span, div, li, a, label, button, dt, dd {
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* ====== 좁은 데스크톱 (≤1180px) ====== */
@media (max-width: 1180px) {
  .biz-grid { grid-template-columns: repeat(3, 1fr); }
  .journey-grid { grid-template-columns: repeat(3, 1fr); }
  .content-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ====== 태블릿 (≤960px) ====== */
@media (max-width: 960px) {
  .desktop-nav,
  .header-actions .btn-light { display: none; }
  .menu-button { display: inline-flex; }

  .hero { min-height: 680px; }
  .hero-overlay { background: rgba(15,23,42,.70); }
  .hero-content { text-align: center; }
  .hero-buttons { justify-content: center; }
  .hero-keywords { justify-content: center; }

  .flow-chain { flex-wrap: wrap; }
  .flow-node { flex: 1 1 calc(50% - 28px); }
  .flow-arrow { transform: none; }

  .pillar-grid { grid-template-columns: repeat(2, 1fr); }
  .biz-grid { grid-template-columns: repeat(2, 1fr); }
  .journey-grid { grid-template-columns: repeat(2, 1fr); }
  .axes-grid { grid-template-columns: 1fr; }
  .axis-detail-grid { grid-template-columns: 1fr; }
  .model-grid { grid-template-columns: repeat(2, 1fr); }
  .ops-grid { grid-template-columns: repeat(2, 1fr); }
  .vision-grid { grid-template-columns: repeat(2, 1fr); }

  .deal-panel,
  .partner-box { grid-template-columns: 1fr; }
  .case-feature { grid-template-columns: 1fr; }
  .case-feature-photo { aspect-ratio: 16 / 9; }
  .case-grid { grid-template-columns: 1fr; }
  .pickup-store-mini { grid-template-columns: repeat(2, 1fr); }

  .ftype-grid,
  .asset-grid,
  .role-split { grid-template-columns: 1fr; }
  .revenue-formula { grid-template-columns: 1fr; }
  .rev-plus { padding: 4px 0; }
  .revenue-notes,
  .revenue-perks { grid-template-columns: 1fr; }
  .company-info { grid-template-columns: repeat(2, 1fr); }
  .company-info > div.wide { grid-column: span 2; }

  .store-sub-head { margin-top: 56px; }
}

/* ====== 모바일 (≤640px) ====== */
@media (max-width: 640px) {
  .header-inner { height: 62px; padding: 0 16px; }
  .brand-logo { width: 38px; height: 38px; border-radius: 12px; }
  .brand-text { font-size: 16px; }
  .mobile-nav { max-height: calc(100vh - 62px); }

  .hero { min-height: 620px; padding-top: 62px; }
  .hero-content { width: calc(100% - 32px); padding: 56px 0; }
  .eyebrow { font-size: 12px; padding: 8px 13px; }
  .hero h1 { font-size: 36px; }
  .hero p { font-size: 17px; }
  .hero-buttons .btn { width: 100%; }
  .hero-keywords { gap: 6px; }
  .hero-keywords li { font-size: 12px; padding: 6px 11px; }

  .section { padding: 64px 16px; }
  .section-head { margin-bottom: 32px; text-align: left; }
  .section h2, .section-head h2 { font-size: 28px; }
  .section-head p { font-size: 16px; }
  .section-note { text-align: left; font-size: 15px; }

  .flow-chain { flex-direction: column; }
  .flow-node { flex: none; padding: 22px 20px; }
  .flow-arrow { justify-content: center; transform: rotate(90deg); font-size: 20px; }

  .brand-banner { border-radius: 20px; }
  .brand-banner figcaption { padding: 14px 18px; font-size: 13px; }
  .pillar-grid,
  .biz-grid,
  .journey-grid,
  .model-grid,
  .ops-grid,
  .vision-grid,
  .content-grid,
  .preview-grid,
  .pickup-store-mini { grid-template-columns: 1fr; }

  .pipeline { gap: 8px; }
  .pipeline li { font-size: 14px; padding: 10px 16px 10px 38px; }

  .deal-panel { padding: 22px; border-radius: 24px; }
  .deal-copy { padding: 0; }
  .deal-actions .btn { width: 100%; }

  .service-thesis { font-size: 26px; }
  .axis-detail { padding: 26px 22px; }
  .service-cta { flex-direction: column; }
  .service-cta .btn { width: 100%; }

  .case-feature-body { padding: 28px 22px; }
  .case-body { padding: 24px 20px; }
  .case-body h3 { font-size: 21px; }

  .content-strip { padding: 26px 22px; }
  .content-strip h3 { font-size: 21px; text-align: left; }

  .faq-item { padding: 22px 20px; }
  .faq-item h3 { font-size: 18px; }
  .faq-item p { padding-left: 0; font-size: 15px; }

  .rev-card { padding: 28px 24px; }
  .ftype-card,
  .role-col,
  .asset-card { padding: 26px 22px; }

  .partner-copy { text-align: left; }
  .partner-steps { grid-template-columns: 1fr; }
  .partner-tel { width: 100%; justify-content: center; }
  .contact-form { padding: 24px 20px; border-radius: 24px; }

  .company-info { grid-template-columns: 1fr; border-radius: 20px; }
  .company-info > div.wide { grid-column: span 1; }
  .company-info > div { padding: 20px 22px; }

  .store-picker { padding: 0; align-items: flex-end; }
  .picker-panel { width: 100%; max-height: 90vh; border-radius: 24px 24px 0 0; }
  .picker-head { padding: 26px 20px 16px; }
  .picker-head h2 { font-size: 23px; }
  .picker-list { padding: 2px 20px; }
  .picker-note { padding: 16px 20px calc(22px + env(safe-area-inset-bottom)); }
  .picker-list a { padding: 16px; gap: 10px; }
  .picker-store strong { font-size: 16px; }
  .picker-go { min-width: 54px; font-size: 13px; }

  .floating-kakao { right: 16px; bottom: 16px; padding: 12px 18px; }
  .toast { bottom: 84px; padding: 13px 20px; font-size: 13px; }
  .footer-links { gap: 12px 18px; font-size: 14px; }
}

/* ====== 소형 모바일 (≤380px) ====== */
@media (max-width: 380px) {
  .hero h1 { font-size: 31px; }
  .section h2, .section-head h2 { font-size: 25px; }
  .service-thesis { font-size: 23px; }
  .rev-pct { font-size: 44px; }
}
