@charset "utf-8";

/* =========================
   COMING SOON PAGE
========================= */

.comingsoon-page {
  background: #fff;
  overflow: clip;
  margin-top: -32px;
}

@media(max-width:768px) {
  .comingsoon-page {
    margin-top: -46px;
  }
}

/* =========================
   Hero
========================= */
.cs-hero {
  position: relative;
  overflow: hidden;
}

/* 背景画像（404と同じ） */
.cs-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/common/page-mv-bg.webp") no-repeat;
  background-position: left bottom;
  background-size: cover;
  pointer-events: none;
}

/* 上部：タイトルエリア */
.cs-hero-top {
  position: relative;
  z-index: 1;
  padding: calc(var(--header-h) + 40px) 0 0;
}

.bp-hero-title {
  font-family: "Ubuntu", system-ui, sans-serif;
  font-size: clamp(18px, calc(18px + (100vw - 540px) * 30 / 1380), 48px);
  /* 80px at max */
  font-weight: 700;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-shadow: 0 0 15px #007DCC;
  margin: 0;
}

/* 下部：キャンバス+CTA */
.cs-hero-bottom {
  position: relative;
  z-index: 1;
  padding: clamp(100px, calc(100px + (100vw - 768px) * 200 / 832), 150px) 0 0;
  text-align: center;
}

.cs-hero-catch {
  position: relative;
  width: 100%;
  height: clamp(200px, 30vw, 350px);
  margin: 0 0 20px;
  cursor: pointer;
  z-index: 1;
}

.cs-particle-canvas {
  display: block;
  width: 100%;
  height: 100%;
}

/* 404と同じ “線” を重ねる（不要ならこのブロック削除OK） */
.cs-hero-catch::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 50%;
  height: 90px;
  background: url("../img/business/line 1.png") no-repeat center / 100% auto;
  pointer-events: none;
  z-index: -1;
}

.cs-hero-cta {
  margin-top: 10px;
}

@media(max-width:1400px) {
  .cs-hero::before {
    background-size: cover;
    background-position: center top;
  }
}

@media(max-width:768px) {
  .cs-hero-bottom {
    padding-top: 200px;
  }
}

@media(max-width:540px) {
  .cs-hero-bottom {
    padding-top: 170px;
  }
}

/* =========================
   グラデーションオーバーレイ
========================= */
.cs-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
      rgba(0, 60, 120, 0.35) 0%,
      rgba(0, 125, 204, 0.15) 40%,
      rgba(255, 255, 255, 0) 70%);
  pointer-events: none;
  z-index: 0;
  animation: cs-gradient-pulse 10s ease-in-out infinite;
}

@keyframes cs-gradient-pulse {

  0%,
  100% {
    opacity: 0.7;
    transform: scale(1);
  }

  50% {
    opacity: 1;
    transform: scale(1.02);
  }
}

/* =========================
   Blue Fog
========================= */
.cs-blue-fog {
  position: absolute;
  width: 800px;
  height: 600px;
  background: url("../img/common/background_blue_fog.png") no-repeat center / contain;
  pointer-events: none;
  z-index: 0;
  opacity: 0.6;
}

.cs-blue-fog--1 {
  top: 10%;
  right: -200px;
  animation: cs-fog-drift-1 60s ease-in-out infinite;
}

.cs-blue-fog--2 {
  bottom: 10%;
  left: -200px;
  animation: cs-fog-drift-2 70s ease-in-out infinite;
}

@keyframes cs-fog-drift-1 {
  0% {
    transform: translate(0, 0) scale(1);
  }

  20% {
    transform: translate(-20px, 15px) scale(1.02);
  }

  40% {
    transform: translate(10px, -10px) scale(0.98);
  }

  60% {
    transform: translate(-15px, -5px) scale(1.01);
  }

  80% {
    transform: translate(5px, 20px) scale(0.99);
  }

  100% {
    transform: translate(0, 0) scale(1);
  }
}

@keyframes cs-fog-drift-2 {
  0% {
    transform: translate(0, 0) scale(1);
  }

  25% {
    transform: translate(15px, -10px) scale(1.01);
  }

  50% {
    transform: translate(-10px, 15px) scale(0.98);
  }

  75% {
    transform: translate(20px, 5px) scale(1.02);
  }

  100% {
    transform: translate(0, 0) scale(1);
  }
}

/* =========================
   パーティクル（背景のふわふわ）
========================= */
.cs-particles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.cs-particle {
  position: absolute;
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  filter: blur(8px);
  box-shadow: 0 0 20px 10px rgba(0, 125, 204, 0.4);
  animation: cs-float 8s ease-in-out infinite;
}

.cs-particle--1 {
  left: 10%;
  bottom: 20%;
  width: 30px;
  height: 30px;
  animation-delay: 0s;
  animation-duration: 10s;
}

.cs-particle--2 {
  left: 25%;
  bottom: 10%;
  width: 15px;
  height: 15px;
  animation-delay: 1s;
  animation-duration: 12s;
}

.cs-particle--3 {
  left: 40%;
  bottom: 30%;
  width: 25px;
  height: 25px;
  animation-delay: 2s;
  animation-duration: 9s;
}

.cs-particle--4 {
  left: 55%;
  bottom: 15%;
  width: 18px;
  height: 18px;
  animation-delay: .5s;
  animation-duration: 11s;
}

.cs-particle--5 {
  left: 70%;
  bottom: 25%;
  width: 22px;
  height: 22px;
  animation-delay: 3s;
  animation-duration: 10s;
}

.cs-particle--6 {
  left: 85%;
  bottom: 10%;
  width: 12px;
  height: 12px;
  animation-delay: 1.5s;
  animation-duration: 13s;
}

.cs-particle--7 {
  left: 15%;
  bottom: 40%;
  width: 14px;
  height: 14px;
  animation-delay: 4s;
  animation-duration: 8s;
}

.cs-particle--8 {
  left: 60%;
  bottom: 35%;
  width: 28px;
  height: 28px;
  animation-delay: 2.5s;
  animation-duration: 14s;
}

@keyframes cs-float {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0;
  }

  10% {
    opacity: .8;
  }

  90% {
    opacity: .8;
  }

  100% {
    transform: translateY(-400px) scale(.5);
    opacity: 0;
  }
}

.cs-cta-container {
  margin: 0 auto;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 140px;
}