/* ==========================================================================
   고향시래기 — 반응형
   ========================================================================== */

@media (max-width: 1080px) {
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(3, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .split { gap: 40px; }
}

@media (max-width: 900px) {
  .section { padding: 68px 0; }
  .nav__tel { display: none; }
  .nav__toggle { display: grid; place-items: center; }

  .nav__menu {
    position: fixed; inset: calc(var(--nav-h) + 36px) 0 auto 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--c-bg); border-bottom: 1px solid var(--c-line);
    padding: 12px 20px 24px; box-shadow: var(--shadow);
    transform: translateY(-14px); opacity: 0; pointer-events: none;
    transition: opacity .22s ease, transform .22s ease;
    max-height: calc(100vh - var(--nav-h) - 36px); overflow-y: auto;
  }
  .nav__menu.is-open { opacity: 1; transform: none; pointer-events: auto; }
  .nav__link { padding: 15px 12px; border-radius: 10px; font-size: 1.02rem; }
  .nav__link.is-active::after { display: none; }
  .nav__link.is-active { background: var(--c-brand-lt); }
  .nav__menu .btn { margin-top: 12px; }
  .nav__cta .btn { display: none; }
  .brand__logo { height: 28px; }
  .brand__name { font-size: 1.12rem; }

  .nav__dropdown { flex-direction: column; align-items: stretch; }
  .nav__link--parent { justify-content: space-between; }
  .nav__submenu {
    position: static; opacity: 1; visibility: visible; transform: none;
    margin-top: 0; padding: 0 0 0 14px; border: none; box-shadow: none;
    max-height: 0; overflow: hidden; transition: max-height .22s ease;
  }
  .nav__submenu::before { display: none; }
  .nav__dropdown.is-open .nav__submenu { max-height: 220px; padding-top: 4px; }

  .grid--3, .grid--2 { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr; }
  .split--rev .split__media { order: -1; }
  .valuebar__grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .statband__grid { grid-template-columns: repeat(2, 1fr); }
  .field-row { grid-template-columns: 1fr; }
  .topbar__right { display: none; }
  .topbar__list { gap: 14px; font-size: .74rem; }

  /* timeline → 한 줄 */
  .timeline::before { left: 9px; }
  .tl-item, .tl-item:nth-child(even) {
    width: 100%; margin-left: 0; padding: 0 0 36px 36px; text-align: left;
  }
  .tl-item::after, .tl-item:nth-child(even)::after { left: 1px; right: auto; }
  .tl-item:nth-child(odd) .tl-card ul li { padding-left: 14px; padding-right: 0; }
  .tl-item:nth-child(odd) .tl-card ul li::before { left: 0; right: auto; }
}

@media (max-width: 768px) {
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { flex: 1 1 100%; }
}

@media (max-width: 640px) {
  :root { --nav-h: 62px; }
  .wrap { width: min(100% - 32px, var(--wrap)); }
  .section { padding: 56px 0; }
  .sec-head { margin-bottom: 36px; }

  .hero__inner { padding: 64px 0 56px; }
  .hero__stats { gap: 26px; margin-top: 36px; }
  .hero__stat b { font-size: 1.6rem; }

  .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .valuebar__grid { grid-template-columns: 1fr; }
  .valuebar__item { justify-content: flex-start; }
  .statband__grid { grid-template-columns: 1fr 1fr; gap: 20px; }

  .footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }

  .page-hero { padding: 62px 0 54px; }
  .form-card { padding: 24px 20px; }
  .cta-band { padding: 60px 0; }
  .cta-band__actions .btn { flex: 1 1 100%; }
  .to-top { right: 14px; bottom: 14px; width: 44px; height: 44px; }

  .topbar__list li:nth-child(n+2) { display: none; }
  .filters { gap: 8px; }
  .filter-btn { padding: 9px 16px; font-size: .86rem; }
}

@media (max-width: 380px) {
  .brand__name { font-size: 1.1rem; }
  .brand__tag { font-size: .62rem; }
}

@media print {
  .site-header, .topbar, .to-top, .cta-band, .site-footer { display: none; }
}
