.banner--primary {
  --banner-height: 400px;
  display: grid;
  grid-template-columns: 1fr minmax(1px, var(--width-container)) 1fr;
  grid-template-rows: 30px auto 30px;
  grid-template-areas:
    "top top top"
    "aside-first main aside-second"
    "bottom bottom bottom"
  ;
  height: var(--banner-height);
}

@media screen and (min-width: 48rem) {
  .banner--primary {
    grid-template-rows: 75px auto 75px;
  }
}

.banner--primary .banner__image {
  grid-column: top-start / top-end;
  grid-row: top-start / bottom-end;
}

.banner--primary .banner__image-overlay {
  grid-column: top-start / top-end;
  grid-row: top-start / bottom-end;
  background-color: var(--color-black);
  z-index: 0;
  opacity: .25;
}

.banner--primary .banner__image img {
  height: var(--banner-height);
}

.banner--primary .banner__content-items {
  grid-column: main-start / main-end;
  grid-row: main-start / main-end;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 1;
}

.banner--primary .banner__content-items-bottom {
  margin-top: auto;
}

.banner--primary .banner__content {
  padding: var(--spacing);
  margin: 0;
  border-radius: var(--border-radius-large);
  background-color: var(--color-accent-light);
}

@media screen and (min-width: 60rem) {
  .banner--primary .banner__content {
    display: flex;
    gap: var(--spacing);
    justify-content: space-between;
    align-items: center;
    padding: var(--banner-content-padding);
    max-width: 100%;
  }
}

.banner--primary .banner__texts > * + *,
.banner--primary .banner__texts + .banner__cta {
  margin-top: var(--spacing-small);
}

.banner--primary .field--name-localgov-title {
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-semi-bold);
  color: var(--color-black);
}

.banner--primary .field--name-localgov-subsites-banner-text {
  color: var(--color-black);
}

.banner--primary .banner__cta {
  flex-shrink: 0;
}

.banner--primary .banner__cta a {
  display: inline-block;
  text-decoration: none;
  background-color: var(--color-accent-dark);
  color: var(--color-white);
  padding: var(--spacing);
  border-radius: var(--border-radius-large);
}
.banner--primary .field--name-field-banner-cta a:focus,
.banner--primary .field--name-field-banner-cta a:hover {
  text-decoration: underline;
  color: var(--color-accent-dark);
  background-color: var(--color-accent-2);
}

.banner__search {
  max-width: 350px;
}

.banner__search form {
  display: flex;
}

.banner__search .form-submit,
.banner__search .form-text {
  border-color: var(--color-accent-dark);
}

.banner__search .form-submit:hover {
  background-color: var(--color-accent-dark);
}

.banner__search .form-submit:focus {
  outline: 3px solid var(--color-focus);
  outline-offset: 0;
  box-shadow: inset 0 0 0 3px;
  border-color: var(--color-black);
  color: var(--color-black);
  position: relative;
}
