#include <bits/stdc++.h>
using namespace std;
long long int inv(long long int k) {
  long long int vl = 1000000007 - 2;
  long long int val = 1;
  long long int b = k;
  for (int i = 0; i < 63; i++) {
    if ((vl >> i) & 1) {
      val *= b;
      val %= 1000000007;
    }
    b = b * b;
    b %= 1000000007;
  }
  return val;
}
int main() {
  string s;
  cin >> s;
  long long int l = s.size();
  vector<long long int> vr(l + 1), op(l + 1);
  vr[0] = 1;
  for (int i = 1; i <= l; i++) {
    vr[i] = i * vr[i - 1];
    vr[i] %= 1000000007;
  }
  for (int i = 0; i < l; i++) {
    if (s[i] == '(') op[i + 1]++;
    op[i + 1] += op[i];
  }
  long long int ans = 0;
  for (int i = 0; i < l; i++) {
    if (s[i] == ')') continue;
    long long int v = op[i + 1];
    long long int v1 = op[l] - op[i + 1];
    v1 = l - i - 1 - v1;
    if (v1 == 0) continue;
    long long int n = v + v1 - 1;
    long long int k = v;
    k = (vr[k] * vr[n - k]) % 1000000007;
    k = inv(k);
    k = (vr[n] * k) % 1000000007;
    ans += k;
    ans %= 1000000007;
  }
  cout << ans << endl;
}
