:root {
  --black: #000;
  --near-black: #0a0a0a;
  --white: #fff;
  --grey: #8a8a8a;
  --field-bg: #111;
  --field-border: #2a2a2a;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  background: var(--black);
  color: var(--white);
  font-family: 'Montserrat', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* Hero: photo fading into solid black at the bottom. */
.hero {
  min-height: 100vh;
  /* Dark gradient fallback shows before the photo loads. */
  background:
    linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.65) 45%, #000 78%),
    var(--near-black) url('../img/hero.jpg') no-repeat center top;
  /* Gradient fills the hero; photo fits the full screen WIDTH (proportional
     height, anchored top) so the sides aren't cropped, then fades to black. */
  background-size: 100% 100%, 100% auto;
  display: flex;
  justify-content: center;
  padding: 4.5rem 1.25rem 6rem;
}

.hero__inner {
  width: 100%;
  max-width: 760px;
  text-align: center;
}

/* Brand / logo */
.brand { margin-bottom: 3.5rem; }

.brand__logo {
  font-weight: 400;
  font-size: clamp(2.4rem, 7vw, 4rem);
  letter-spacing: 0.12em;
  display: inline-block;
  border-bottom: 1px solid rgba(255,255,255,0.55);
  padding-bottom: 0.5rem;
  line-height: 1;
}
.brand__bold  { font-weight: 700; }
.brand__light { font-weight: 300; }

.brand__tagline {
  margin-top: 0.9rem;
  font-size: clamp(0.7rem, 1.6vw, 0.85rem);
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: #e6e6e6;
}

/* Headline */
.headline {
  font-weight: 400;
  font-size: clamp(1.5rem, 4.2vw, 2.4rem);
  line-height: 1.35;
  text-transform: uppercase;
  margin-bottom: 9rem;
}

/* Offer block */
.offer__eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--grey);
  font-size: clamp(0.85rem, 2vw, 1.05rem);
  margin-bottom: 1.4rem;
}
.offer__title {
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-size: clamp(1.4rem, 3.6vw, 2.1rem);
  margin-bottom: 0.6rem;
}
.offer__subtitle {
  font-style: italic;
  font-weight: 400;
  color: #d8d8d8;
  font-size: clamp(0.95rem, 2.2vw, 1.2rem);
  margin-bottom: 2.4rem;
}

/* Signup form */
.signup {
  display: flex;
  max-width: 620px;
  margin: 0 auto;
  border: 2px solid #000;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.08);
}
.signup__email {
  flex: 1 1 auto;
  background: var(--field-bg);
  border: 1px solid var(--field-border);
  color: var(--white);
  font-family: inherit;
  font-size: 1rem;
  padding: 1.35rem 1.5rem;
  outline: none;
}
.signup__email::placeholder { color: #9a9a9a; }
.signup__email:focus { border-color: #888; box-shadow: 0 0 0 2px rgba(255,255,255,0.22); }

.signup__button {
  flex: 0 0 auto;
  background: var(--white);
  color: #000;
  border: none;
  font-family: inherit;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.9rem;
  padding: 1.35rem 1.8rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  transition: background 0.15s ease;
}
.signup__button:hover { background: #e2e2e2; }
.signup__button:disabled { opacity: 0.6; cursor: default; }
.signup__arrow { font-size: 1.1rem; }

/* Status message */
.signup__message {
  min-height: 1.2em;
  margin-top: 1rem;
  font-size: 0.95rem;
}
.signup__message.is-error   { color: #ff8a8a; }
.signup__message.is-success { color: #b9f6c1; }

/* Privacy line */
.privacy {
  margin-top: 1.6rem;
  color: var(--grey);
  font-size: 0.92rem;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

/* Mobile: stack the form */
@media (max-width: 560px) {
  .headline { margin-bottom: 4rem; }
  .signup { flex-direction: column; }
  .signup__button { justify-content: center; }
}
