body,
html {
  margin: 0;
  padding: 0;
  background-color: #000;
  scroll-snap-type: y mandatory;
  overflow-y: scroll;
  height: 100%;
}

#section1,
#section2,
#section3,
#section4,
#section5 {
  height: 100vh;
  width: 100%;
  scroll-snap-align: start;
  position: relative;
  overflow: hidden; /* Prevent content from overflowing */
}

canvas {
  display: block;
  width: 100vw;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
}

.logo {
  position: absolute;
  top: 20px;
  left: 20px;
  color: white;
  font-family: sans-serif;
  font-size: 24px;
  font-weight: bold;
  z-index: 10;
}

.welcome-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  text-align: center;
  font-family: sans-serif;
  z-index: 10;
}

.welcome-container h1 {
  font-size: 4vw;
  margin-bottom: 10px;
}

.welcome-container p {
  font-size: 1.5vw;
}

#section2 .vanta-content,
#section3 .vanta-content,
#section4 .vanta-content {
  position: relative;
  z-index: 10;
  color: white;
  font-family: Helvetica, sans-serif;
  padding: 10vh 10vw;
  max-width: 800px;
  margin: 0 auto;
}

.service-header {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

.service-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 1.2vw;
  letter-spacing: 2px;
  margin-right: 20px;
  color: #ccc;
}

.service-number {
  font-size: 6vw;
  font-weight: bold;
}

#section2 hr,
#section3 hr,
#section4 hr {
  border: 2;
  height: 1px;
  background: #fff;
  margin-bottom: 32px; /* 罫線の下の余白を調整 */
  transform: scaleX(0);
  transform-origin: left;
}

@keyframes expandWidth {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

.hr-animate {
  animation: expandWidth 12.0s ease-out forwards;
}

.gradient-text {
  font-size: 6vw;
  font-weight: bold;
  line-height: 1.2;
  background: linear-gradient(90deg, #00c6ff, #0072ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-top: 0; /* 見出しの上の余白を削除 */
  margin-bottom: 30px;
}

#section2 p,
#section3 p,
#section4 p {
  font-size: 1.2vw;
  color: #ccc;
  line-height: 1.2;
}

/* Promo popup styles */
.promo {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  text-align: center;
  font-family: sans-serif;
}

.promo-content {
  position: relative;
  display: inline-block;
  background: #232323;
  color: #fff;
  padding: 20px;
  border-radius: 10px;
  top: 50%;
  transform: translateY(-50%);
}

.promo-close {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 24px;
  cursor: pointer;
}

.promo-header {
  font-size: 20px;
  margin-bottom: 15px;
}

.promo-links a {
  margin: 0 10px;
}

.promo-links img {
  width: 150px;
}

/* Company Info Section */
#section5 .company-info {
  position: relative;
  z-index: 10;
  color: #000;
  font-family: Helvetica, sans-serif;
  padding: 10vh 10vw;
  max-width: 800px;
  margin: 0 auto;
}

#section5 h2 {
  font-size: 6vw;
  font-weight: bold;
  text-align: center;
  margin-bottom: 16px;
}

#section5 hr {
  border: 2;
  height: 1px;
  background: #000;
  margin-bottom: 32px;
}

.company-info-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 20px;
  font-size: 1.2vw;
}

.info-item {
  display: contents;
}

.info-label {
  font-weight: bold;
  color: #000;
}

.info-value {
  color: #000;
}

.info-value a {
  color: #000;
  text-decoration: none;
}

.info-value a:hover {
  text-decoration: underline;
}

/* --- Responsive Styles for Mobile --- */
@media (max-width: 768px) {
  .welcome-container h1 {
    font-size: 8vw;
  }

  .welcome-container p {
    font-size: 3vw;
  }

  #section2 .vanta-content,
  #section3 .vanta-content,
  #section4 .vanta-content {
    padding: 15vh 5vw;
  }

  .service-text {
    font-size: 2.5vw;
  }

  .service-number {
    font-size: 10vw;
  }

  .gradient-text {
    font-size: 10vw;
  }

  #section2 p,
  #section3 p,
  #section4 p {
    font-size: 3vw;
  }

  #section5 .company-info {
    padding: 10vh 5vw;
  }

  #section5 h2 {
    font-size: 10vw;
  }

  .company-info-grid {
    grid-template-columns: 1fr;
    gap: 15px;
    font-size: 3.5vw;
  }

  .info-label {
    grid-column: 1 / 2;
  }

  .info-value {
    grid-column: 1 / 2;
  }
}
