/* CAC ZIP Code Agency Search — FusionDev 2026-10-15. Brand: #005288 (blue), #c70752 (magenta). */
.cac-zs {
  --cac-zs-blue: #005288;
  --cac-zs-blue-dark: #003a60;
  --cac-zs-accent: #c70752;
  --cac-zs-text: #333333;
  --cac-zs-muted: #595959;
  --cac-zs-line: #d5dde5;
  --cac-zs-bg: #f3f7fa;
  --cac-zs-error: #b00020;
  font-family: inherit;
  color: var(--cac-zs-text);
  max-width: 820px;
  margin: 0 auto 2.5rem;
  padding: 1.75rem;
  background: var(--cac-zs-bg);
  border-top: 4px solid var(--cac-zs-blue);
  border-radius: 6px;
  box-sizing: border-box;
}
.cac-zs *,
.cac-zs *::before,
.cac-zs *::after { box-sizing: border-box; }

.cac-zs__title {
  margin: 0 0 .5rem;
  font-size: 1.6rem;
  line-height: 1.25;
  color: var(--cac-zs-blue);
}
.cac-zs__intro { margin: 0 0 1.25rem; font-size: 1.05rem; line-height: 1.5; }

.cac-zs__label {
  display: block;
  margin: 0 0 .4rem;
  font-weight: 700;
  font-size: 1rem;
}
.cac-zs__label--small { font-size: .95rem; }

.cac-zs__row { display: flex; gap: .6rem; flex-wrap: wrap; }

.cac-zs__input,
.cac-zs__select {
  font: inherit;
  font-size: 1.1rem;
  color: var(--cac-zs-text);
  background: #fff;
  border: 2px solid #767676;
  border-radius: 4px;
  min-height: 48px;
  padding: .55rem .75rem;
}
.cac-zs__input { flex: 0 1 12rem; letter-spacing: .08em; }
.cac-zs__select { width: 100%; max-width: 22rem; }
.cac-zs__input[aria-invalid="true"] { border-color: var(--cac-zs-error); }

.cac-zs__input:focus,
.cac-zs__select:focus,
.cac-zs__button:focus,
.cac-zs a:focus {
  outline: 3px solid var(--cac-zs-accent);
  outline-offset: 2px;
}

.cac-zs__button {
  font: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  min-height: 48px;
  padding: .55rem 1.4rem;
  color: #fff;
  background: var(--cac-zs-blue);
  border: 2px solid var(--cac-zs-blue);
  border-radius: 4px;
  cursor: pointer;
}
.cac-zs__button:hover { background: var(--cac-zs-blue-dark); border-color: var(--cac-zs-blue-dark); }

.cac-zs__hint { margin: .35rem 0 0; font-size: .9rem; color: var(--cac-zs-muted); }

.cac-zs__county {
  margin-top: 1.25rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--cac-zs-line);
}

.cac-zs__results { margin-top: 1.5rem; }
.cac-zs__results:focus { outline: none; }
.cac-zs__results:empty { display: none; }

.cac-zs__result-heading { margin: 0 0 .4rem; font-weight: 700; font-size: 1.1rem; }
.cac-zs__note { margin: 0 0 .9rem; color: var(--cac-zs-muted); }

.cac-zs__cards { display: grid; gap: 1rem; }

.cac-zs__card {
  background: #fff;
  border: 1px solid var(--cac-zs-line);
  border-left: 5px solid var(--cac-zs-accent);
  border-radius: 4px;
  padding: 1.1rem 1.25rem;
}
.cac-zs__name { margin: 0 0 .25rem; font-size: 1.25rem; line-height: 1.3; color: var(--cac-zs-blue); }
.cac-zs__serves { margin: 0 0 .75rem; font-size: .95rem; color: var(--cac-zs-muted); }

.cac-zs__contact { list-style: none; margin: 0; padding: 0; }
.cac-zs__contact li { margin: .3rem 0; line-height: 1.45; overflow-wrap: anywhere; }
.cac-zs__k { font-weight: 700; }
.cac-zs__contact a { color: var(--cac-zs-blue); text-decoration: underline; }
.cac-zs__phone a { font-weight: 700; font-size: 1.1rem; }

.cac-zs__msg { margin: 0; padding: .9rem 1rem; background: #fff; border-radius: 4px; border: 1px solid var(--cac-zs-line); }
.cac-zs__msg--error { border-left: 5px solid var(--cac-zs-error); }

.cac-zs__sr {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 520px) {
  .cac-zs { padding: 1.25rem 1rem; }
  .cac-zs__input { flex: 1 1 100%; }
  .cac-zs__button { flex: 1 1 100%; }
}
