.wave-group {
  position: relative;
}

.wave-group :is(.input, .select) {
  font-size: var(--fs);
  font-weight: var(--fw-300);
  padding: 10px 10px 10px 5px;
  display: block;
  /* width: 200px; */
  width: var(--width);
  border: none;
  border-bottom: 1px solid var(--border-color);
  background: transparent;
}

.wave-group :is(.input, .select):focus {
  outline: none;
}

.wave-group .label {
  color: #999;
  font-size: var(--fs);
  font-weight: normal;
  position: absolute;
  pointer-events: none;
  left: 5px;
  top: 10px;
  display: flex;
}

.wave-group .select__label {
  color: var(--accent-color);
  font-size: 14px;
  font-weight: normal;
  position: absolute;
  pointer-events: none;
  left: 5px;
  top: -10px;
  display: flex;
}

.wave-group .select {
  appearance: none;
}

.package__shipping .wave-group {
  display: grid;
  grid-template-areas: "select select";
  grid-template-columns: 1fr auto;
  position: relative;
}

.wave-group .select {
  align-items: center;
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  -ms-grid-column-span: 2;
  grid-area: select;
}

.package__shipping .wave-group::after {
  content: url(../img/caret-down-light.svg);
  width: 50px;
  height: 50px;
  justify-self: end;
  -ms-grid-row: 1;
  grid-row: 1;
  -ms-grid-column: 2;
  grid-column: 2;
  pointer-events: none;
}

.wave-group .select::-ms-expand {
  display: none;
}

.wave-group .label-char {
  transition: 0.2s ease all;
  transition-delay: calc(var(--index) * 0.05s);
}

.wave-group .input:focus ~ label .label-char,
.wave-group .input:valid ~ label .label-char {
  transform: translateY(-20px);
  font-size: 14px;
  color: var(--accent-color);
}

.wave-group .bar {
  position: relative;
  display: block;
  /* width: 200px; */
  width: var(--width);
}

.wave-group .bar:before,
.wave-group .bar:after {
  content: "";
  height: 2px;
  width: 0;
  bottom: 1px;
  position: absolute;
  background: var(--accent-color);
  transition: 0.2s ease all;
  -moz-transition: 0.2s ease all;
  -webkit-transition: 0.2s ease all;
}

.wave-group .bar:before {
  left: 50%;
}

.wave-group .bar:after {
  right: 50%;
}

.wave-group .input:focus ~ .bar:before,
.wave-group .input:focus ~ .bar:after {
  width: 50%;
}

.wave-group:is(.error, .zip) .input:focus ~ label .label-char {
  color: #de002e;
}

.wave-group:is(.error, .zip) .label-char {
  transform: translateY(-20px);
  font-size: 14px;
  color: #de002e;
}

.wave-group.error:after {
  content: attr(data-error);
  position: absolute;
  bottom: -1.25rem;
  left: 1rem;
  color: #de002e;
  font-size: 0.625rem !important;
}

.wave-group.zip:after {
  content: attr(data-zip);
  position: absolute;
  bottom: -1.25rem;
  left: 1rem;
  color: #de002e;
  font-size: 0.625rem !important;
}

.wave-group:is(.error, .zip) .bar:before,
.wave-group:is(.error, .zip) .bar:after {
  width: 50%;
  background: #de002e;
}

.wave-group:is(.error, .zip) .input {
  border-bottom: none;
}
