:root {
  --border-gray-light: #e0e0e0;
  --dark-gray: #323232;
  --dark-text-1: #1b1b1b;
  --dark-text: #212529;
  --medium-gray: #525252;
  --opa-blue: #0c5ba7;
  --opa-green: #21874e;
  --white: #fff;

  --transition-time: 0.15s;
}

/* base */
body {
  display: flex;
  margin: 0;
  padding: 0.125rem;
  max-height: 100vh;
}

.locator-widget {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: space-between;
}

.locator-widget > * {
  margin-bottom: 0.25rem;
}

.header {
  background-color: var(--opa-blue);
  color: var(--white);
  margin-top: 0;
  max-height: calc(100vh / 3);
  padding: 1rem;
}

.header img {
  max-height: 100%;
}

.content {
  align-items: center;
  flex-grow: 1;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-evenly;
}

.content-title-wrap {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
}

.title {
  flex-grow: 1;
  font-size: min(calc(100vw * 0.08), 1.5rem);
  font-weight: bold;
  margin-right: 1rem;
  /* text-wrap: balance; */
}

.locator-icon {
  align-items: center;
  display: flex;
  margin-left: 1rem;
  margin-right: 1rem;
  width: calc(100vw * (10 / 75));
  max-width: 2rem;
}

.content-input-wrap {
  flex-grow: 1;
  max-width: 22rem;
}

.input-wrap {
  display: flex;
  flex-direction: row;
}

input {
  border: 0.0625rem solid var(--border-gray-light);
  color: var(--medium-gray);
  font-size: 0.8125rem;
  height: 2rem;
  outline: 0.125rem solid rgba(0, 0, 0, 0);
  padding: 0.5rem;
  transition: border var(--transition-time) ease-in-out,
    outline var(--transition-time) ease-in-out;
  width: 100%;
}

input:focus {
  outline: 0.125rem solid var(--opa-blue);
}

.input-label {
  color: var(--medium-gray);
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  padding-left: 0.5625rem;
  text-wrap: balance;
  width: 100%;
}

.search-button {
  background: var(--opa-blue);
  border: medium none;
  color: var(--white);
  cursor: pointer;
  margin-bottom: 0;
  padding: 0.75rem 1.25rem 0.75rem;
  transition: outline, background-color var(--transition-time) ease-in-out;
}

.search-button:hover,
.search-button:focus {
  background-color: var(--opa-green);
  outline: 0.125rem solid var(--opa-green);
}

.search-button.disabled:hover,
.search-button.disabled:focus {
  background-color: var(--opa-blue);
  outline: none;
  cursor: default;
}

.search-button.large {
  font-size: 1rem;
  font-weight: bold;
  letter-spacing: 0.1rem;
  text-transform: uppercase;
  text-align: center;
  width: 100%;
}

.search-button.small {
  align-items: center;
  display: flex;
  height: 1.5rem;
  justify-content: center;
  padding: 0;
  width: 1.5rem;
}

@media (max-height: 180px) and (max-width: 424px) {
  .title {
    font-size: 1rem;
  }
}

@media (max-height: 250px) {
  .header {
    padding: 0.25rem 1rem;
  }
  input {
    flex-grow: 1;
    height: 1.5rem;
    padding: 0.25rem;
    width: unset;
  }
  .search-button.large {
    display: none;
  }
}

@media (min-height: 251px) {
  .search-button.small {
    display: none;
  }
}
