/* ============ SECTION 通用 ============ */
.section {
  padding: 120px 40px;
  position: relative;
  max-width: 1440px;
  margin: 0 auto;
}

.section-header {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 40px;
  align-items: end;
  margin-bottom: 72px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--border-soft);
}
.section-num {
  font-family: 'Baloo 2', var(--font-display);
  font-size: 80px;
  font-weight: 900;
  line-height: 0.85;
  letter-spacing: -0.05em;
  background: linear-gradient(180deg, var(--text) 0%, var(--text-dimmer) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.section-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 4px;
  color: var(--pink);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.section-title {
  font-family: var(--font-display);
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--text);
}
.hl-purple { color: var(--purple-soft); }
