.zipcode-validator-form form {
  max-width: 500px;
  margin: 20px 0;
}

.zipcode-form label {
  display: block;
  margin-bottom: 0.5rem;
  /* Heading 2XS */
  font-family: Neue Campton, Helvetica Neue, Helvetica, Arial, sans-serif;
  font-size: clamp(1rem, 0.9167rem + 0.3333vw, 1.25rem);
  font-weight: 700;
  line-height: 1.125;
  text-transform: uppercase;
  letter-spacing: -0.02rem;
}

/* When label is directly followed by form-inline (no message in between) */
.zipcode-form label:has(+ .form-inline) {
  margin-bottom: 1rem;
}

@media (min-width: 1024px) {
  .zipcode-form label {
    line-height: 1.2;
    letter-spacing: -0.013rem;
  }
}

.zipcode-form .form-inline {
  --input-radius: 9999px;
  display: flex;
  gap: 0;
  align-items: flex-end;
  border-radius: var(--input-radius);
  border: 2.5px solid transparent;
  transition: border-color 0.2s ease;
}

.zipcode-form .form-inline input[type="text"],
.zipcode-form .form-inline input[type="email"] {
  flex: 1;
  width: calc(100% + 2rem);
  margin-right: -2rem;
  padding: 20px;
  padding-right: 2.5rem;
  border-radius: var(--input-radius) 0 0 var(--input-radius);
  font-size: 14px;
  line-height: 17px;
  border: none;
  height: 100%;
}

@media (min-width: 1024px) {
  .zipcode-form .form-inline input[type="text"],
  .zipcode-form .form-inline input[type="email"] {
    padding: 20px 30px 18.91px;
    font-size: 16px;
  }
}

.zipcode-form .form-inline input:focus {
  outline: none;
  box-shadow: none !important;
}

/* Focus state - highlight entire container */
.zipcode-form .form-inline:focus-within {
  border-color: #e3c967;
}

/* Invalid state - highlight entire container */
.zipcode-form .form-inline.invalid {
  border-color: #e7816a;
}

/* Valid state - highlight entire container */
.zipcode-form .form-inline.valid {
  border-color: #226144;
}

.zipcode-form .zipcode-submit-btn {
  display: flex;
  align-items: center;
  border: none;
  background: transparent;
  padding: 0;
}

.zipcode-submit-btn .wp-block-button__link {
  padding: 20px 32px !important;
  text-transform: capitalize;
  font-weight: 700;
  line-height: 17.375px; /* 108.597% */
  letter-spacing: -0.16px;
  height: 58px;
  min-width: 108px;
  font-size: 16px;
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  max-height: 58px;
  transition: background-color 0.2s ease, color 0.2s ease;
}

@media (min-width: 1024px) {
  .zipcode-submit-btn .wp-block-button__link {
    min-width: 170px;
  }
}

.zipcode-form .zipcode-submit-btn:disabled .wp-block-button__link {
  background-color: #4a6856;
  color: #f9f6e8;
  cursor: not-allowed;
  pointer-events: none;
}

.zipcode-form .zipcode-submit-btn:disabled .wp-block-button__link:hover,
.zipcode-form .zipcode-submit-btn:disabled .wp-block-button__link:focus {
  background-color: #4a6856;
  color: #f9f6e8;
}

.zipcode-message {
  margin-bottom: 1rem;
}

.zipcode-message.error {
  color: #d34322;
}
.zipcode-error {
  display: block;
  padding: 0 2rem;
  color: #d34322;
  font-size: 14px;
  margin-top: 5px;
}
