/* ==========================================================================
   Responsive Styles
   - Breakpoint 1: max-width 1199px (Tablet)
   - Breakpoint 2: max-width 767px (Smartphone)
   ========================================================================== */

/* ============================
   Tablet (1199px and below)
   ============================ */
@media (max-width: 1199px) {
  :root {
    --container-pad: 32px;
  }

  /* Header */
  .global-nav__list { gap: 20px; }
  .nav-jp { display: none; }
  .logo-text__tag { display: none; }

  /* Hero */
  .hero__inner {
    grid-template-columns: 1fr;
    gap: 48px;
    padding: 60px var(--container-pad);
  }
  .hero {
    min-height: auto;
    padding-top: calc(var(--header-h-pc) + 40px);
    padding-bottom: 80px;
  }
  .hero__title { font-size: 48px; }
  .hero__visual {
    height: 50vh;
    min-height: 360px;
  }

  /* Business */
  .business { padding: 100px 0; }
  .business__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .business-card:last-child {
    grid-column: 1 / -1;
    max-width: calc(50% - 16px);
    margin: 0 auto;
  }

  /* Strength */
  .strength { padding: 100px 0; }
  .strength-item {
    grid-template-columns: 120px 1fr;
    gap: 24px;
  }
  .strength-item__num { font-size: 80px; }
  .strength__numbers {
    grid-template-columns: repeat(2, 1fr);
    gap: 48px 32px;
  }

  /* Recruit */
  .recruit__inner {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .recruit__content {
    padding: 100px var(--container-pad) 60px;
  }
  .recruit__visual {
    min-height: 480px;
    padding-bottom: 60px;
  }
  .recruit__main-photo { min-height: 420px; }
  .recruit__thumbs {
    left: var(--container-pad);
    bottom: 0;
    grid-template-columns: repeat(3, 1fr);
    max-width: 380px;
  }
  .recruit__thumbs li { width: 100%; }

  /* News */
  .news { padding: 100px 0; }
  .news__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .news-card:last-child { grid-column: 1 / -1; }

  /* Contact CTA */
  .contact-cta { padding: 120px 0; }
  .contact-cta__title { font-size: 40px; }
  .contact-cta__bg-text { font-size: 180px; }

  /* Footer */
  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
  .footer-col--brand { grid-column: 1 / -1; }
}

/* ============================
   Smartphone (767px and below)
   ============================ */
@media (max-width: 767px) {
  :root {
    --container-pad: 20px;
    --header-h-pc: var(--header-h-sp);
  }

  .pc-only { display: none; }
  .sp-only { display: inline; }

  /* Section common */
  .section-title { font-size: 28px; }
  .section-head { margin-bottom: 40px; }
  .section-foot { margin-top: 40px; }
  .section-lead { font-size: 14px; }

  /* Header */
  .site-header { height: var(--header-h-sp); background: rgba(11, 31, 58, 0.85); backdrop-filter: blur(10px); }
  .site-header.is-scrolled { background: rgba(11, 31, 58, 0.95); }
  .header-inner { padding: 0 20px; }
  .logo-mark { width: 28px; height: 28px; }
  .logo-text__en { font-size: 16px; }

  .hamburger { display: block; }

  .global-nav {
    position: fixed;
    inset: 0;
    background: rgba(11, 31, 58, 0.98);
    backdrop-filter: blur(16px);
    flex-direction: column;
    justify-content: center;
    gap: 40px;
    padding: 80px 24px 40px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out), visibility 0.4s;
  }
  .global-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .global-nav__list {
    flex-direction: column;
    gap: 28px;
    width: 100%;
    text-align: center;
  }
  .global-nav__list > li > a {
    flex-direction: row;
    gap: 12px;
    justify-content: center;
    padding: 8px 0;
  }
  .nav-en { font-size: 22px; }
  .nav-jp { display: inline; font-size: 11px; }
  .btn--header { width: 100%; max-width: 280px; }

  /* Hero */
  .hero {
    min-height: 75vh;
    padding-top: calc(var(--header-h-sp) + 24px);
    padding-bottom: 60px;
  }
  .hero__inner {
    padding: 32px 20px;
    gap: 32px;
  }
  .hero__sub-en { font-size: 12px; margin-bottom: 20px; }
  .hero__title { font-size: 34px; line-height: 1.4; }
  .hero__lead { font-size: 14px; margin-top: 20px; }
  .hero__lead br { display: none; }
  .hero__cta { flex-direction: column; gap: 12px; margin-top: 32px; }
  .hero__cta .btn { width: 100%; }
  .hero__visual { height: 40vh; min-height: 280px; }
  .hero__scroll { display: none; }

  /* Business */
  .business { padding: 80px 0; }
  .business__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .business-card {
    padding: 36px 24px;
  }
  .business-card:last-child {
    grid-column: auto;
    max-width: none;
    margin: 0;
  }
  .business-card__num { font-size: 44px; top: 16px; right: 24px; }
  .business-card__title { font-size: 20px; }

  /* Strength */
  .strength { padding: 80px 0; }
  .strength__list { gap: 0; margin-bottom: 64px; }
  .strength-item {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 32px 0;
  }
  .strength-item__num { font-size: 64px; }
  .strength-item__title { font-size: 18px; }
  .strength-item__desc { font-size: 14px; }
  .strength__numbers {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 16px;
    padding: 40px 0;
  }
  .number-item__value { font-size: 40px; }
  .number-item__unit { font-size: 16px; }

  /* Recruit */
  .recruit__content {
    padding: 80px 20px 48px;
  }
  .section-title br { display: none; }
  .recruit__lead { font-size: 14px; }
  .recruit__cta { width: 100%; }
  .recruit__cta .btn { width: 100%; min-width: 0; }
  .recruit__visual { min-height: 0; padding-bottom: 0; }
  .recruit__main-photo { min-height: 320px; }
  .recruit__thumbs {
    position: static;
    margin: -32px 20px 60px;
    max-width: none;
    gap: 8px;
    grid-template-columns: repeat(3, 1fr);
  }
  .recruit__thumbs li { height: 72px; }

  /* News */
  .news { padding: 80px 0; }
  .news__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .news__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .news-card:last-child { grid-column: auto; }
  .news-card { background: #fff; box-shadow: 0 4px 16px -8px rgba(11, 31, 58, 0.1); }
  .news-card__link { padding: 24px; }
  .news-card__title { font-size: 15px; }

  /* Contact CTA */
  .contact-cta { padding: 80px 0; }
  .contact-cta__title { font-size: 28px; }
  .contact-cta__lead { font-size: 14px; margin-bottom: 32px; }
  .contact-cta__bg-text { font-size: 100px; }
  .contact-cta__btns {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 48px;
  }
  .contact-cta__btns .btn {
    width: 100%;
    min-width: 0;
  }
  .contact-cta__tel-num { font-size: 24px; }

  /* Footer */
  .site-footer { padding: 56px 0 24px; }
  .footer-top {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 32px;
    margin-bottom: 40px;
  }
  .footer-tagline { font-size: 18px; }
  .footer-main {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .footer-mid {
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .footer-policy { flex-wrap: wrap; gap: 16px; }
}
