body {
  font-family: 'Noto Sans JP', 'Inter', sans-serif;
}

.hero-bg {
  background-image: url('http://fukumi.net/images/boeki2.jpeg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  padding-top: 8rem;
  padding-bottom: 8rem;
}

@media (min-width: 768px) {
  .hero-bg {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
}

.problem-card {
  background-color: #FEFCE8;
  border: 1px solid #FDE68A;
}

.problem-card .future-risk {
  background-color: #FFFBEB;
  border-top: 1px dashed #FACC15;
  padding: 0.75rem;
  margin-top: 1rem;
  border-radius: 0 0 0.75rem 0.75rem;
}

.usp-item {
  border-left: 3px solid #F97316;
  padding-left: 1.5rem;
  margin-bottom: 2rem;
}

.testimonial-card {
  border-left: 4px solid #047855;
  background-color: #F0FDF4;
  min-height: 250px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.achievement-card {
  background-color: #047855;
  border-radius: 0.5rem;
  padding: 1.5rem;
  text-align: center;
  color: white;
}

.fade-in-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.cta-button {
  transition: all 0.3s ease;
}

.cta-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 20px -3px rgba(0, 0, 0, 0.15), 0 6px 8px -2px rgba(0, 0, 0, 0.1);
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out, padding 0.3s ease-out;
}

.accordion-content.open {
  max-height: 1000px;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.step-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  fill: #1F2937;
}

.step-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  fill: #4B5563;
}

.connector {
  stroke: #9CA3AF;
  stroke-width: 3;
  stroke-dasharray: 8, 4;
  marker-end: url(#arrowhead);
}

.step-icon-bg {
  fill: #EFF6FF;
  stroke: #3B82F6;
  stroke-width: 2;
}

.step-group:hover .step-icon-bg {
  fill: #2563EB;
}

.step-group:hover .step-icon-path {
  fill: #fff;
}

.step-group {
  cursor: pointer;
  transition: transform 0.3s ease;
}

.hubconnect-slider {
  padding: 0 72px 24px;
}

.hubconnect-slider .swiper-slide.swiper-slide-active::before {
  opacity: 0.45;
}

.hubconnect-slide-title {
  font-size: 150%;
}

@media (max-width: 640px) {
  .hubconnect-slider {
    padding: 0 48px 24px;
  }
}

.swiper-button-next,
.swiper-button-prev {
  color: #047855;
}

.swiper-pagination-bullet-active {
  background: #047855;
}

#form {
  background-color: #1F2937;
}

#form h2 {
  color: white;
}

#form p {
  color: #E5E7EB;
}

#disclaimer {
  background-color: #FFF7ED;
  border-top: 2px solid #F97316;
}

#disclaimer .text-red-700 {
  color: #F97316;
}
