@charset "UTF-8";
/* =========================================================
   12-responsive.css — レスポンシブ調整を集約
   ≤1023 タブ以下 / ≤768 SP / ≤480 小型 SP の 3 段階
   ========================================================= */

@media (max-width: 1023px) {
  .lib-anchor__grid { grid-template-columns: 1fr; gap: 32px; }
  .lib-anchor__en   { font-size: clamp(40px, 8vw, 72px); }
  .lib-footer__grid { grid-template-columns: 1fr; gap: 48px; }
  .c-gnav > .menu-item > a { padding: 10px 12px; }
  .c-gnav > .menu-item > a > .ttl_en { display: none; }
}

@media (max-width: 768px) {
  :root { --lib-header-h: 64px; --lib-gutter: 20px; }

  .l-header__inner { gap: 12px; grid-template-columns: auto 1fr auto; }
  .lib-brand__name { display: none; }
  .lib-brand__mark { width: 36px; }

  .lib-hero { padding-top: calc(var(--lib-header-h) + 48px); padding-bottom: 80px; }
  .lib-hero__grid { row-gap: 40px; }
  .lib-hero__meta { flex-direction: column; align-items: flex-start; gap: 10px; padding-bottom: 12px; }
  .lib-hero__tagline { font-size: clamp(48px, 12vw, 80px) !important; line-height: 1.05 !important; letter-spacing: -0.04em !important; }
  .lib-hero__foot { grid-template-columns: 1fr; gap: 24px; }
  .lib-hero__marquee { width: 100%; }
  .lib-hero__sub { font-size: 13px; line-height: 1.85; }
  .lib-hero__scroll { display: none; }

  .lib-anchor { padding: 80px var(--lib-gutter); }
  .lib-anchor__en { font-size: clamp(48px, 13vw, 88px) !important; line-height: 0.92 !important; }
  .lib-pageHero__en { font-size: clamp(48px, 14vw, 96px) !important; }
  .lib-anchor.is-dark { padding: 96px 0 !important; }

  .lib-services { grid-template-columns: 1fr; gap: 1px; }
  .lib-service { min-height: 0; padding: 28px 24px 80px; }

  .lib-others { grid-template-columns: 1fr; gap: 32px; }

  .lib-cta { flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px; }
  .lib-cta:hover { padding: 32px; }

  .lib-footer__cols { grid-template-columns: 1fr 1fr; }
  .lib-footer__meta { flex-direction: column; gap: 8px; align-items: flex-start; }

  .lib-pageHero { padding: calc(var(--lib-header-h) + 48px) var(--lib-gutter) 48px; }
  .lib-pageHero__en { font-size: clamp(40px, 12vw, 72px); }
}

@media (max-width: 480px) {
  .lib-footer__cols { grid-template-columns: 1fr; }
  .lib-cta__lead { font-size: 18px !important; }
  .lib-anchor__jp { font-size: 18px !important; }
  .lib-hero__tagline { font-size: 32px !important; line-height: 1.2 !important; letter-spacing: -0.035em !important; }
  .lib-anchor__en, .lib-pageHero__en { font-size: clamp(40px, 13vw, 64px) !important; }
  .lib-service__en { font-size: clamp(24px, 6.5vw, 32px) !important; }
  .lib-contact__title { font-size: clamp(40px, 12vw, 64px) !important; }
}
