.form-stack {
  display: grid;
  gap: var(--space-4);
}

.form-control {
  width: 100%;
  min-height: 3.25rem;
  padding: 0.875rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-card);
  color: var(--color-text);
}

.form-control--textarea {
  min-height: 9rem;
  resize: vertical;
}

.form-control--inverse {
  border-color: var(--color-inverse-border-soft);
  background: var(--color-inverse-surface-soft);
  color: var(--color-text-inverse);
}

.form-control::placeholder {
  color: var(--color-text-muted);
}

.form-control--inverse::placeholder {
  color: var(--color-inverse-text-soft);
}

.form-control:focus,
.button:focus,
button:focus,
a:focus {
  outline: 2px solid var(--color-accent-500);
  outline-offset: 2px;
}

.form-notice {
  padding: 1rem 1.25rem;
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  line-height: 1.5;
}

.form-notice--success {
  background: rgba(5, 150, 105, 0.08);
  border: 1px solid rgba(5, 150, 105, 0.3);
  color: #065f46;
}

.form-notice--error {
  background: rgba(220, 38, 38, 0.08);
  border: 1px solid rgba(220, 38, 38, 0.3);
  color: #991b1b;
}

.newsletter-banner__success {
  font-size: var(--font-size-sm);
  color: rgba(255, 255, 255, 0.9);
  font-weight: 600;
}

.search-form {
  display: grid;
  gap: var(--space-3);
}

.search-form__label {
  font-size: var(--font-size-sm);
  color: var(--color-text);
}

.search-form__row {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 576px) {
  .search-form__row {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}
