@charset "UTF-8";
/**
 * アニメーション関連スタイル
 * 
 * 構成:
 * - Variables: カラー、トランジション、ボーダーラジウス
 * - Mixins: GPU最適化、backdrop-blur、グラデーションテキスト
 * - Fallback Styles: GSAPが読み込まれない場合の表示保証
 * - Animation Styles: 各セクションのアニメーション用スタイル
 */
/**
 * レスポンシブ変数定義
 * 
 * $pc-scale-ratio: 画面幅に応じた倍率
 * 1440px基準でレスポンシブ対応
 */
.hero-bg,
.hero-title,
.hero-subtitle,
.hero-cta,
.hero-phone,
.hero-label,
.scroll-reveal,
.member-card,
.job-card,
.feature-card,
.banner-logo,
.banner-desc,
.banner-image,
.stats-image,
.stats-text,
.fade-up,
.line-draw,
.section-label {
  opacity: 1;
  transform: none;
}

.gsap-ready .hero-bg,
.gsap-ready .hero-title,
.gsap-ready .hero-subtitle,
.gsap-ready .hero-cta,
.gsap-ready .hero-phone,
.gsap-ready .hero-label,
.gsap-ready .scroll-reveal,
.gsap-ready .member-card,
.gsap-ready .job-card,
.gsap-ready .feature-card,
.gsap-ready .banner-logo,
.gsap-ready .banner-desc,
.gsap-ready .banner-image,
.gsap-ready .stats-image,
.gsap-ready .stats-text,
.gsap-ready .fade-up,
.gsap-ready .section-label {
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}

.parallax,
.float-element {
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}

.footer {
  margin-top: -1px;
}

.hero-phone {
  filter: drop-shadow(0 2.0833333333vw 4.1666666667vw rgba(12, 125, 120, 0.25));
  transition: filter 0.4s ease;
}
.hero-phone:hover {
  filter: drop-shadow(0 2.7777777778vw 5.5555555556vw rgba(12, 125, 120, 0.35));
}

.text-gradient-style {
  background: linear-gradient(90deg, #007580 0%, #0c7d78 50%, #00a898 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position: relative;
  display: inline-block;
}
.text-gradient-style::after {
  content: "";
  position: absolute;
  bottom: -0.5555555556vw;
  left: 0;
  width: 100%;
  height: 0.2083333333vw;
  background: linear-gradient(90deg, #0c7d78, transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s ease;
}
.text-gradient-style.underline-visible::after {
  transform: scaleX(1);
}

.fade-in-text {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in-text.visible {
  opacity: 1;
  transform: translateY(0);
}

.gsap-ready .fade-in-text {
  opacity: 0;
  transform: translateY(1.3888888889vw);
}

.gsap-ready .fade-in-text.visible {
  opacity: 1;
  transform: translateY(0);
}

.cta-button {
  position: relative;
  overflow: hidden;
}

.header-animate {
  background-color: rgba(255, 255, 255, 0.98);
}

.header-animate.blur-ready {
  backdrop-filter: blur(0.6944444444vw);
  -webkit-backdrop-filter: blur(0.6944444444vw);
}

.header-cta {
  position: relative;
  overflow: hidden;
  pointer-events: auto !important;
  cursor: pointer !important;
  z-index: 100;
}

.title-4 {
  scroll-margin-top: 9.7222222222vw;
}

.job-card {
  position: relative;
  overflow: hidden;
}

.member-card {
  position: relative;
}

.member-photo {
  position: relative;
  overflow: hidden;
  border-radius: 0.8333333333vw;
}

.section-label {
  position: relative;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-1.0416666667vw);
  }
}
.float-element {
  animation: float 3s ease-in-out infinite;
}

.banner {
  position: relative;
  overflow: hidden;
}

.banner-title {
  display: block !important;
  flex-direction: unset !important;
}

.banner-line-1,
.banner-line-2 {
  display: inline;
}
.banner-line-1 .char,
.banner-line-2 .char {
  display: inline-block;
}

.stats-card-v2 {
  position: relative;
  overflow: hidden;
  background: #ffffff;
  border-radius: 1.3888888889vw;
  box-shadow: 0 0.8333333333vw 2.7777777778vw rgba(0, 0, 0, 0.06);
}

.stats-image-container {
  position: relative;
  flex-shrink: 0;
}

.stats-image {
  position: relative;
  border-radius: 0.5555555556vw;
  box-shadow: 0 0.5555555556vw 1.6666666667vw rgba(0, 0, 0, 0.1);
}

.bg-text {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  pointer-events: none;
  opacity: 0.04 !important;
}

html, body {
  overflow-x: hidden;
}

*::-webkit-scrollbar:horizontal {
  display: none;
}

*::-webkit-scrollbar {
  width: 0.4166666667vw;
  background: transparent;
}

*::-webkit-scrollbar-track {
  display: none;
}

*::-webkit-scrollbar-thumb {
  background: rgba(12, 125, 120, 0.6);
  border-radius: 0.2083333333vw;
}

.section,
.section-2,
.section-3,
.section-4,
.section-5 {
  position: relative;
}

.text-wrapper-24,
.text-wrapper-28 {
  position: relative;
  display: inline-block;
}
.text-wrapper-24::after,
.text-wrapper-28::after {
  content: "";
  position: absolute;
  bottom: -0.5555555556vw;
  left: 0;
  width: 100%;
  height: 0.2083333333vw;
  background: linear-gradient(90deg, #0c7d78, transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s ease;
}

.underline-scroll.underline-visible::after {
  transform: scaleX(1);
}

.hero-cta {
  border: 0.0694444444vw solid rgba(255, 255, 255, 0.2);
}

.hero-cta.blur-ready {
  backdrop-filter: blur(0.5555555556vw);
  -webkit-backdrop-filter: blur(0.5555555556vw);
}/*# sourceMappingURL=animations.css.map */