/* 
 * Greeen-Biz B2B Platform Core Styles (SWELL Optimized)
 * Prefix: gbz-
 * Primary Color: #087f5b (Deep Green)
 */

:root {
  --gbz-color-primary: #087f5b;
  --gbz-color-primary-dark: #065c42;
  --gbz-color-secondary: #2f4f4f;
  --gbz-color-bg: #f9fbfb;
  --gbz-color-text: #333333;
  --gbz-border-radius: 8px;
  --gbz-transition: all 0.3s ease;
}

/* === Base & Layout === */
.gbz-wrapper {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  color: var(--gbz-color-text) !important;
  line-height: 1.6 !important;
}

.gbz-container {
  max-width: 1080px !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
}

/* === Buttons === */
/* SWELLの .btn 等との競合を強制力 (!important) で排除 */
.gbz-wrapper .gbz-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 28px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  border-radius: var(--gbz-border-radius) !important;
  text-decoration: none !important;
  transition: var(--gbz-transition) !important;
  cursor: pointer !important;
  border: none !important;
  line-height: 1 !important;
  margin: 0 !important;
}

.gbz-wrapper .gbz-btn--primary {
  background-color: var(--gbz-color-primary) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 6px rgba(8, 127, 91, 0.1) !important;
}

.gbz-wrapper .gbz-btn--primary:hover {
  background-color: var(--gbz-color-primary-dark) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 16px rgba(8, 127, 91, 0.2) !important;
  color: #ffffff !important;
  opacity: 1 !important;
}

.gbz-wrapper .gbz-btn--outline {
  background-color: transparent !important;
  color: var(--gbz-color-primary) !important;
  border: 2px solid var(--gbz-color-primary) !important;
}

.gbz-wrapper .gbz-btn--outline:hover {
  background-color: var(--gbz-color-primary) !important;
  color: #ffffff !important;
  opacity: 1 !important;
}

/* === Hero Section Component === */
.gbz-hero {
  background-color: var(--gbz-color-bg) !important;
  padding: 100px 0 80px !important;
  border-bottom: 1px solid #e9ecef !important;
  position: relative !important;
  overflow: hidden !important;
  margin: 0 calc(50% - 50vw) !important; /* SWELLのコンテナ幅を突き抜けて画面端まで伸ばす魔法 */
  width: 100vw !important;
}

.gbz-hero::before {
  content: '' !important;
  position: absolute !important;
  top: -50% !important;
  right: -10% !important;
  width: 600px !important;
  height: 600px !important;
  background: radial-gradient(circle, rgba(8, 127, 91, 0.05) 0%, rgba(255,255,255,0) 70%) !important;
  border-radius: 50% !important;
  z-index: 0 !important;
}

.gbz-hero__content {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  max-width: 800px !important;
  margin: 0 auto !important;
}

.gbz-hero__badge {
  background-color: rgba(8, 127, 91, 0.1) !important;
  color: var(--gbz-color-primary) !important;
  padding: 8px 16px !important;
  border-radius: 20px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  margin-bottom: 24px !important;
  letter-spacing: 0.05em !important;
  display: inline-block !important; /* 背景色をテキスト幅に合わせる */
}

/* ここが黒くなっていた原因。SWELLのh1に勝つためにも !important を付与 */
.gbz-hero__title {
  font-size: 40px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  color: var(--gbz-color-secondary) !important;
  margin-bottom: 24px !important;
  letter-spacing: -0.02em !important;
  border: none !important; /* SWELLの見出し下線などを消す */
  padding: 0 !important;
}

.gbz-hero__title span {
  color: var(--gbz-color-primary) !important;
  display: block !important;
  margin-top: 8px !important;
  font-size: 80% !important; /* サブタイトルっぽく少し小さく */
}

.gbz-wrapper p.gbz-hero__text {
  font-size: 18px !important;
  line-height: 1.8 !important;
  color: #555 !important;
  margin-bottom: 40px !important;
  font-weight: 500 !important;
}

.gbz-hero__actions {
  display: flex !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  max-width: 100% !important;
}

/* Responsive */
@media (max-width: 768px) {
  .gbz-hero {
    padding: 60px 0 50px !important;
  }
  .gbz-hero__title {
    font-size: 28px !important;
  }
  .gbz-wrapper p.gbz-hero__text {
    font-size: 15px !important;
  }
  .gbz-hero__actions {
    flex-direction: column !important;
    width: 100% !important;
  }
  .gbz-wrapper .gbz-hero__actions .gbz-btn {
    width: 100% !important;
  }
}