.signup-page { min-height: 100vh; background: var(--pink-soft); }
.signup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.4rem clamp(1rem, 5vw, 4rem);
  background: var(--green-dark);
  color: white;
}
.signup-header .brand img { width: 48px; height: 48px; }
.signup-home { font-size: .85rem; text-underline-offset: .25em; }
.signup-main { width: min(100% - 2rem, 680px); margin: 3rem auto; }
.signup-card {
  padding: clamp(1.5rem, 5vw, 3rem);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--ivory);
  box-shadow: 0 12px 40px rgba(23, 61, 48, .07);
}
.signup-intro h1 { font-size: clamp(2.6rem, 8vw, 3.6rem); line-height: 1.05; }
.signup-intro > p:last-child { margin: 1.25rem 0 1.75rem; color: #617068; }
.signup-help a, .signup-events a { font-weight: 700; text-underline-offset: .2em; }
.signup-embed {
  display: block;
  width: 100%;
  max-width: 540px;
  height: 800px;
  margin: 0 auto;
  border: 0;
}
.signup-help { margin: 1.25rem 0 0; font-size: .85rem; color: #617068; }
.signup-page :focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.signup-events { margin: 1.5rem 0 0; text-align: center; }
.signup-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem 2rem; padding: 1.5rem; font-size: .85rem; }
.signup-footer a { text-underline-offset: .25em; }
@media (max-width: 600px) {
  .signup-main { width: 100%; margin: 1.5rem auto; }
  .signup-card {
    padding: 1.5rem 0;
    border-inline: 0;
    border-radius: 0;
  }
  .signup-intro, .signup-help { margin-inline: 1.25rem; }
  .signup-embed { max-width: none; height: 900px; }
  .signup-events { margin-inline: 1.25rem; }
}
@media (max-width: 480px) {
  .signup-header { flex-wrap: wrap; gap: 1rem; }
}
