/* Shared modal and preference form components. */

.modal-content {
  background-color: #fff !important;
  opacity: 1 !important;
  z-index: 1051;
}

.modal,
.modal-body {
  opacity: 1 !important;
  backdrop-filter: none !important;
  filter: none !important;
}

#signup-form input::placeholder,
#signin-form input::placeholder,
#signout-form input::placeholder {
  color: #bbbbbb;
}

.contact-form {
  max-width: 720px;
}

.contact-form-label {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.35rem;
  color: #5a5a5a;
  font-size: 0.95rem;
  font-weight: 600;
}

.required-badge,
.optional-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.25rem;
  padding: 0.08rem 0.45rem;
  border-radius: 0.25rem;
  font-size: 0.72rem;
  line-height: 1.1;
  font-weight: 600;
}

.required-badge {
  color: #fff;
  background: #25a7b3;
}

.optional-badge {
  color: #6c757d;
  background: #eef2f3;
}

.contact-input-border {
  min-height: 2.8rem;
}

.contact-input-border input,
.contact-input-border select,
.contact-textarea-border textarea {
  width: 100%;
  color: #5a5a5a;
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
  font-size: 16px;
}

.contact-input-border select {
  appearance: auto;
  cursor: pointer;
}

.contact-textarea-border {
  border-bottom: 2px solid #ddd;
  transition: border-color 0.2s ease-in-out;
}

.contact-input-wrapper:focus-within .contact-textarea-border {
  border-bottom-color: #25a7b3;
}

.contact-textarea-border textarea {
  display: block;
  min-height: 10rem;
  padding: 0.45rem 0;
  resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #bbbbbb;
}

.contact-submit-button {
  min-width: 12rem;
}

.interest-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem 0.4rem;
}

.interest-choice-item {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.32rem 0.42rem;
  border: 1px solid rgba(43, 155, 166, 0.22);
  border-radius: 0.55rem;
  background: rgba(43, 155, 166, 0.06);
}

.interest-choice-item input {
  margin-top: 0.12rem;
  flex-shrink: 0;
}

.interest-choice-label {
  font-size: 0.78rem;
  line-height: 1.15;
  color: #495057;
}

.interest-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.interest-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  background: rgba(43, 155, 166, 0.12);
  color: #2b6770;
  font-size: 0.82rem;
  line-height: 1.2;
}

.preference-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

.preference-check input {
  margin-top: 0.25rem;
  flex-shrink: 0;
}

@media (min-width: 992px) {
  .interest-choice-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 359px) {
  .interest-choice-grid {
    grid-template-columns: 1fr;
  }
}
