/* ======================================
   共通部品
====================================== */
:root {
  --service-color: #2563eb;
  --service-dark: #1e3a8a;
}
.service-lowcode {
  --service-color: #2563eb;
  --service-dark: #1e3a8a;
}
.service-ai {
  --service-color: #06b6d4;
  --service-dark: #155e75;
}
.service-web {
  --service-color: #00c3ff;
  --service-dark: #00c3ff;
}
.service-it {
  --service-color: #bc3bf8;
  --service-dark: #8400ff;
}
.recruit-page {
  --service-color: #10b981;
  --service-dark: #065f46;
}
.page-hero {
  background: linear-gradient(135deg, #0f172a, var(--service-dark));
}

.service-label {
  color: var(--service-color);
}

/*web専用*/
.service_back {
  background: url("../images/service_back.png") no-repeat right;
  position: fixed;
  z-index: -10; /* 一番後ろに配置 */
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-position: right;
  background-size: cover;
  opacity: 0.2;
}

/* ======================================
   PAGE HERO
====================================== */

.page-hero {
  padding-top: 180px;
  padding-bottom: 120px;
  overflow: hidden;
}

.hero-grid {
  display: grid;
  grid-template-columns:
    1fr
    550px;

  gap: 80px;
  align-items: center;
}

.hero-left {
  color: #fff;
  text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.4);
}

.breadcrumb {
  font-size: 13px;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 30px;
}

.page-hero h1 {
  font-size: 14px;
  letter-spacing: 4px;
  color: #93c5fd;
  margin-bottom: 20px;
}

.page-hero h2 {
  font-size: clamp(2.3rem, 5vw, 5.5rem);
  line-height: 1.1;
  margin-bottom: 30px;
}

.page-hero .lead {
  font-size: 1.15rem;
  line-height: 2;
  color: rgba(255, 255, 255, 0.8);
  max-width: 650px;
  margin-bottom: 40px;
}

/* IMAGE */

.hero-image-box {
  position: relative;
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.hero-image-box img {
  width: 100%;
  height: 650px;
  object-fit: cover;
  display: block;
}
.hero-image-box {
  border-radius: 40px;
}

.hero-image-box::after {
  content: "";
  position: absolute;
  inset: 0;
}
.service-lowcode .hero-image-box::after {
  background: linear-gradient(135deg, transparent, rgba(12, 75, 211, 0.58));
}
.service-ai .hero-image-box::after {
  background: linear-gradient(135deg, transparent, rgba(2, 126, 143, 0.58));
}
.service-web .hero-image-box::after {
  background: linear-gradient(135deg, transparent, rgba(0, 204, 255, 0.58));
}
.service-it .hero-image-box::after {
  background: linear-gradient(135deg, transparent, rgba(98, 0, 255, 0.58));
}

/* ======================================
   opacity: 0;
====================================== */
.problem-card,
.feature-card,
.flow-item {
  transform: translateY(60px);
}

/* ======================================
   PROBLEM
====================================== */

.problem-grid {
  margin-top: 80px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.problem-card {
  background: white;
  padding: 40px;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  font-weight: 700;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
}

/* ======================================
   FEATURES
====================================== */

.features {
  background: #eef3f8;
}

.feature-grid {
  margin-top: 80px;

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 30px;
}

.feature-card {
  background: white;

  padding: 50px;

  border-radius: 24px;
}

.feature-card > span {
  color: #2563eb;

  font-size: 4rem;

  font-weight: 700;

  opacity: 0.15;
}

.feature-card h3 {
  margin: 20px 0;
  font-size: 1.8rem;
}

/* ======================================
   CASE
====================================== */

.usecase-grid {
  margin-top: 80px;

  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 24px;
}

.usecase-card {
  background: white;

  padding: 40px;

  border-radius: 20px;

  border: 1px solid #e2e8f0;

  transition: 0.3s;
}

.usecase-card:hover {
  transform: translateY(-8px);

  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
}

.usecase-icon {
  font-size: 2rem;

  margin-bottom: 20px;
}

.usecase-card h3 {
  margin-bottom: 16px;
}

.usecase-card p {
  color: #64748b;

  line-height: 1.8;
}

/* ======================================
   FLOW
====================================== */

.flow-list {
  margin-top: 80px;

  display: grid;

  gap: 20px;
}

.flow-item {
  display: flex;
  align-items: center;

  gap: 30px;

  padding: 30px;

  border-bottom: 1px solid #e2e8f0;
}

.flow-item span {
  width: 80px;

  color: #2563eb;

  font-weight: 700;
}

/* ======================================
   CTA
====================================== */

.service-cta {
  padding: 150px 0;
}

.cta-box {
  background: #0f172a;

  color: white;

  text-align: center;

  padding: 100px 60px;

  border-radius: 40px;
}

.cta-box h2 {
  font-size: clamp(2rem, 5vw, 4rem);

  margin-bottom: 40px;
}

/* ======================================
   SERVICE TYPES
====================================== */

.service-types-grid {
  margin-top: 80px;

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 24px;
}

.service-type-card {
  background: #fff;

  padding: 40px;

  border-radius: 20px;

  border: 1px solid #e2e8f0;

  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);

  transition: 0.3s;
}

.service-type-card:hover {
  transform: translateY(-8px);

  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
}

.service-type-card h3 {
  margin-bottom: 16px;

  color: var(--service-color);
}

.service-type-card p {
  color: #64748b;

  line-height: 1.8;
}
.features2 .feature-grid {
  margin-top: 80px;

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 24px;
}

/* ==========================================
   スクロール誘導（下矢印アニメーション）
========================================== */
.hero {
  position: relative; /* ヒーローセクション基準で位置固定するため必要 */
}

/* aタグ化に伴うスタイルの補正 */
.scroll-indicator {
  text-decoration: none; /* 下線を消す */
  position: absolute;
  bottom: 55px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 10;
  cursor: pointer;
}

/* 「SCROLL」のテキスト */
.scroll-text {
  font-size: 0.75rem;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  opacity: 0.8;
}

/* CSSだけで作成する下矢印 */
.scroll-arrow {
  width: 16px;
  height: 16px;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg); /* 正方形の右・下枠線を45度傾けて下矢印にする */

  /* 上下アニメーションの適用 */
  animation: bounceArrow 2s infinite ease-in-out;
}

/* 上下に優しく揺れるキーフレーム定義 */
@keyframes bounceArrow {
  0%,
  100% {
    transform: translateY(0) rotate(45deg);
    opacity: 0.6;
  }
  50% {
    transform: translateY(10px) rotate(45deg); /* 下に10px移動 */
    opacity: 1; /* 移動時に少し明るくして目立たせる */
  }
}
/* ======================================
   MOBILE
====================================== */

@media (max-width: 768px) {
  .hero-grid {
    position: relative;
    height: calc(100vh - 200px);
  }
  .page-hero {
    padding-top: 130px;
    padding-bottom: 80px;
  }
  .hero-left {
    position: absolute;
    z-index: 1;
    padding: 20px;
  }

  .hero-right {
    position: absolute;
  }

  .problem-grid {
    grid-template-columns: 1fr;
  }

  .feature-grid {
    grid-template-columns: 1fr;
  }

  .flow-item {
    flex-direction: column;
    align-items: flex-start;
  }
  .usecase-grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .section {
    padding: 100px 0;
  }
  .feature-card,
  .usecase-card {
    padding: 20px;
    text-align: center;
  }
  .cta-box {
    padding: 40px 60px;
  }
.page-hero .lead {
  line-height: 1.5;
}


}






