#include <bits/stdc++.h>
using namespace std;
int L[400011], R[400011];
const long long mod = 1e9 + 7;
char st[400011];
long long fac[400011], inv[400011];
long long fastpower(long long v, long long p) {
  long long ret = 1;
  while (p > 0) {
    if (p % 2 == 0) {
      v = v * v;
      v %= mod;
      p /= 2;
    } else {
      ret = ret * v;
      ret %= mod;
      p--;
    }
  }
  return ret;
}
long long C(int n, int k) {
  return ((fac[n] * inv[n - k]) % mod * inv[k]) % mod;
}
int main() {
  int i, N;
  long long ans = 0;
  scanf("%s", st + 1);
  N = strlen(st + 1);
  fac[0] = inv[0] = 1;
  for (i = 1; i < 400011; ++i) {
    fac[i] = fac[i - 1] * i;
    fac[i] %= mod;
    inv[i] = inv[i - 1] * fastpower(i, mod - 2);
    inv[i] %= mod;
  }
  for (i = 1; i <= N; ++i) {
    L[i] = L[i - 1] + (st[i] == '(');
  }
  for (i = N; i >= 1; --i) {
    R[i] = R[i + 1] + (st[i] == ')');
  }
  for (i = 1; i <= N; ++i) {
    if (st[i] == '(' && R[i] > 0) {
      ans = ans + C(L[i] + R[i] - 1, L[i]);
      ans %= mod;
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
