.form-control {
    border: .0625rem solid #333;
}

.checkbox-outline-label {
    border: .0625rem solid #333;
    cursor: pointer;
}

.checkbox-outline-input:checked ~ .checkbox-outline-label {
    border-color: #377dff;
    border-width: 0.2em;
    background-color: #ffffff;
}

.custom-select {
    border: .0625rem solid #333;
}

.ui-widget {
  font-family: "Open Sans", sans-serif;
}

.form-control.is-valid, .was-validated .form-control:valid {
  padding-right: calc(1.2em + 1.0em);
}

.form-control.is-invalid, .was-validated .form-control:invalid {
  padding-right: calc(1.2em + 1.0em);
}

.input-label {
  font-size: 1.1rem;
}

input.form-control, .custom-select {
  font-size: 1.1rem !important;
}

textarea.form-control {
  font-size: 1.1rem;
}

.invalid-feedback {
  font-size: 1rem;
}

small.form-text {
  font-size: 0.875rem;
}

span.link-collapse-default {
  font-size: 1rem;
}

span.link-collapse-active {
  font-size: 1rem;
}

dd.text-sm {
  font-size: 1.1rem;
}

dt.text-sm {
  font-size: 1.1rem;
}

#addPerson.btn-xs {
  font-size: 1rem;
}

.input-group-add-field-delete {
  opacity: 1;
  padding-left: 0.4rem;
}

.is-invalid + span.select2-container--default > .selection > .select2-selection {
    border: 1px solid #ed4c78;
}

.is-valid + span.select2-container--default > .selection > .select2-selection {
    border: 1px solid #00c9a7;
}

.pac-item {
  font-size: 1rem;
  line-height: 2.5rem;
}

.pac-item-query {
  font-size: 1rem;
}

.pac-icon {
  margin-right: 8px;
  margin-left: 6px;
  margin-top: 11px;
}

#more {display: none;}
/* ---------- Answer feedback animations ---------- */

#fq-fx-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 9999;
}

.fq-confetti-particle,
.fq-sad-particle {
  position: fixed;
  font-size: 1.4rem;
  line-height: 1;
  will-change: transform, opacity;
  transform: translate(-50%, -50%);
  user-select: none;
}

.fq-confetti-particle {
  animation: fq-confetti-pop 1.1s ease-out forwards;
}

@keyframes fq-confetti-pop {
  0% {
    transform: translate(-50%, -50%) scale(0.6) rotate(0deg);
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    transform: translate(calc(-50% + var(--fq-dx, 0px)),
                         calc(-50% + var(--fq-dy, 0px)))
               scale(1) rotate(var(--fq-rot, 0deg));
    opacity: 0;
  }
}

.fq-sad-particle {
  animation: fq-sad-float 1s ease-out forwards;
  font-size: 1.3rem;
}

@keyframes fq-sad-float {
  0%   { transform: translate(-50%, -50%) scale(0.9); opacity: 0; }
  20%  { opacity: 1; }
  100% {
    transform: translate(calc(-50% + var(--fq-drift, 0px)), calc(-50% - 90px)) scale(1);
    opacity: 0;
  }
}

.fq-correct-pulse {
  animation: fq-pulse-correct 0.6s ease-out 1;
}

@keyframes fq-pulse-correct {
  0%   { transform: scale(1);    box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.55); }
  40%  { transform: scale(1.06); box-shadow: 0 0 0 14px rgba(40, 167, 69, 0); }
  100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); }
}

.fq-shake {
  animation: fq-shake 0.5s cubic-bezier(.36, .07, .19, .97) 1;
}

@keyframes fq-shake {
  10%, 90% { transform: translateX(-2px) rotate(-0.5deg); }
  20%, 80% { transform: translateX( 4px) rotate( 0.5deg); }
  30%, 50%, 70% { transform: translateX(-6px) rotate(-1deg); }
  40%, 60%      { transform: translateX( 6px) rotate( 1deg); }
}

@media (prefers-reduced-motion: reduce) {
  .fq-confetti-particle,
  .fq-sad-particle {
    display: none !important;
  }
  .fq-correct-pulse,
  .fq-shake {
    animation-duration: 0.2s;
  }
}
