.only-mobile {
  display: none;
}

@media (max-width: 767px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  .site-container,
  .page-container,
  .service-inner,
  .footer__inner,
  .faq-page,
  .checklist-page,
  .container,
  .section-inner,
  .main-hero__inner,
  .sub-hero__inner,
  .page-hero__inner,
  .company-hero__inner,
  .about-hero__inner,
  .subpage-hero__inner,
  .subpage-content__inner,
  .quote-content__container {
    width: calc(100% - 40px);
    max-width: none;
    margin-inline: auto;
  }
}

@media (max-width: 430px) {
  .only-desktop {
    display: none !important;
  }

  .only-mobile {
    display: block;
  }

  html,
  body {
    max-width: 100%;
    overflow-x: clip;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  html {
    scroll-padding-top: calc(var(--header-h) + 12px);
    scroll-padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }

  body {
    padding-bottom: 0;
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.012em;
  }

  .topbar {
    display: none !important;
  }

  .site-header .header__inner,
  .site-header .site-header__inner {
    min-height: 80px;
    height: 80px;
    align-items: center;
    gap: 12px;
  }

  .logo {
    align-items: center;
    max-width: 185px;
    gap: 8px;
  }

  .logo__mark,
  .logo__mark img,
  .logo__mark svg {
    width: auto;
    height: 48px;
    max-height: 48px;
  }

  .logo__name-ko,
  .logo__text strong {
    font-size: 15px;
    line-height: 1.2;
  }

  .logo__name-en,
  .logo__text em {
    font-size: 9px;
    letter-spacing: 0.06em;
    line-height: 1.2;
  }

  .nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
  }

  .nav-toggle span {
    left: 3px;
    width: 24px;
    height: 2px;
  }

  .nav-toggle span:nth-child(1) { top: 6px; }
  .nav-toggle span:nth-child(2) { top: 14px; }
  .nav-toggle span:nth-child(3) { top: 22px; }

  .mobile-menu-header {
    min-height: 80px;
    height: calc(80px + env(safe-area-inset-top, 0px));
  }

  .site-nav,
  .mobile-menu-panel {
    width: min(86vw, 360px);
    max-width: 100%;
  }

  .page-section,
  .section,
  .home-section,
  .subpage-content {
    padding-block: 56px;
  }

  .home-reasons.home-section {
    padding-bottom: 56px;
  }

  h1,
  .subpage-hero h1,
  .page-hero h1 {
    font-size: clamp(32px, 8vw, 36px);
    line-height: 1.3;
    letter-spacing: -0.04em;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  h2,
  .page-content h2,
  .section-head h2,
  .section-title,
  .home-section__title,
  .subpage-content h2 {
    font-size: clamp(28px, 7vw, 30px);
    line-height: 1.35;
    letter-spacing: -0.04em;
    word-break: keep-all;
  }

  h3,
  .subpage-content h3,
  .home-reason-card__title,
  .moving-card__title {
    font-size: clamp(20px, 5.4vw, 22px);
    line-height: 1.4;
    letter-spacing: -0.03em;
    word-break: keep-all;
  }

  p,
  li,
  .page-content p,
  .page-content li,
  .subpage-content p,
  .subpage-content li {
    font-size: 15px;
    line-height: 1.75;
    letter-spacing: -0.012em;
    word-break: keep-all;
  }

  .home-section__eyebrow,
  .home-section__description,
  .subpage-hero__eyebrow,
  .crumbs,
  .crumbs__list {
    font-size: 13px;
  }

  .home-section__heading {
    margin-bottom: 32px;
  }

  .home-section__eyebrow {
    margin-bottom: 16px;
  }

  .home-section__description {
    margin-top: 20px;
  }

  .home-services__grid,
  .home-reasons__grid {
    gap: 16px;
  }

  .main-hero {
    min-height: 520px;
    height: 520px;
    align-items: center;
    background-position: 78% 38%;
    background-size: cover;
  }

  .main-hero::before {
    background: linear-gradient(
      105deg,
      rgba(16, 22, 34, 0.72) 0%,
      rgba(16, 22, 34, 0.46) 42%,
      rgba(16, 22, 34, 0.16) 68%,
      rgba(16, 22, 34, 0.04) 100%
    );
  }

  .main-hero__inner {
    width: calc(100% - 40px);
    padding: 36px 0;
  }

  .main-hero__eyebrow {
    margin: 0 0 22px;
    font-size: 12px;
    letter-spacing: 0.12em;
    white-space: nowrap;
  }

  .main-hero h1.main-hero__title {
    max-width: 100%;
    font-size: clamp(31px, 8.5vw, 36px);
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: -0.045em;
  }

  .main-hero__title span {
    display: block;
    white-space: nowrap;
  }

  .main-hero__description {
    margin-top: 24px;
    font-size: 15px;
    line-height: 1.75;
  }

  .main-hero__actions {
    margin-top: 28px;
  }

  .main-hero__actions .btn {
    width: 100%;
    min-height: 52px;
    border-radius: 8px;
    font-size: 16px;
  }

  .company-hero {
    height: 400px;
    min-height: 400px;
    align-items: center;
  }

  .company-hero__img {
    object-position: 70% 42%;
  }

  .company-hero__inner {
    width: calc(100% - 40px);
    padding: 32px 0;
  }

  .company-hero .crumbs,
  .company-hero .crumbs__list {
    margin-bottom: 14px;
    font-size: 12px;
  }

  .company-hero__eyebrow {
    margin: 0 0 12px;
  }

  .company-hero h1 {
    margin: 0;
    font-size: 28px;
    line-height: 1.3;
    letter-spacing: -0.045em;
  }

  .company-hero__lead {
    margin-top: 16px;
    font-size: 15px;
    line-height: 1.75;
  }

  .company-intro {
    padding: 64px 0 32px;
  }

  .company-intro__title,
  .company-map__title {
    font-size: 28px;
  }

  .company-intro__lead,
  .company-map__lead,
  .company-message__body p {
    font-size: 15px;
    line-height: 1.8;
  }

  .company-map__card {
    padding: 28px 20px;
  }

  .company-map__visual {
    height: 240px;
  }

  .company-message {
    padding: 64px 0 72px;
  }

  .company-message__inner {
    width: 100%;
  }

  .subpage-hero {
    min-height: 340px;
  }

  .subpage-hero__inner {
    padding: 40px 0 32px;
  }

  .subpage-hero .crumbs,
  .subpage-hero .crumbs__list {
    margin-bottom: 16px;
    font-size: 12px;
  }

  .subpage-hero__eyebrow {
    margin-bottom: 16px;
  }

  .subpage-hero h1 {
    font-size: clamp(32px, 8vw, 36px);
    line-height: 1.3;
    letter-spacing: -0.04em;
  }

  .subpage-hero__description {
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.75;
  }

  .subpage-content {
    padding: 56px 0;
  }

  .mobile-quickbar,
  .mobile-cta {
    display: grid;
    height: calc(60px + env(safe-area-inset-bottom, 0px));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: #ffffff;
    border-top: 1px solid #ece8ee;
    box-shadow: none;
  }

  .mobile-cta a,
  .mobile-cta button {
    min-height: 60px;
    padding: 6px 4px;
    font-size: 13px;
    font-weight: 700;
    gap: 5px;
  }

  .mobile-cta__icon,
  .mobile-cta__icon svg {
    width: 22px;
    height: 22px;
  }

  .site-footer {
    padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }

  .home-cta {
    padding-block: 56px;
  }

  .home-cta h2 {
    font-size: clamp(28px, 7vw, 30px);
    line-height: 1.35;
    letter-spacing: -0.04em;
  }
}

@media (max-width: 360px) {
  .main-hero h1.main-hero__title {
    font-size: min(31px, calc((100vw - 40px) / 12.6));
  }

  .company-hero h1,
  .company-hero__title-mobile span,
  .company-message__title {
    white-space: normal;
  }

  .main-hero__eyebrow {
    letter-spacing: 0.08em;
  }
}
