/* Keep the same controls and geometry through every selection and slow response. */
.city-selection {
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(20px, 4vw, 48px);
}
.city-selection .city-selection-location,
.city-selection .planner-options {
  min-width: 0;
  padding: clamp(16px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.city-selection-location h2 { margin: 0; }
.city-selection-location .city-location-value {
  display: grid;
  grid-template-rows: minmax(1.5em, auto) minmax(1.4em, auto);
  min-block-size: 3.1em;
  margin: 12px 0 16px;
  overflow-wrap: anywhere;
}
.city-location-value small { color: var(--muted); }
.city-location-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0 12px;
}
.city-location-actions :is(a, button) { min-height: 44px; display: inline-flex; align-items: center; }
.city-location-actions button:disabled { opacity: .55; cursor: default; }
.city-selection .planner-options { display: grid; gap: 14px; }
.city-selection .planner-options fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.city-selection .planner-options legend { padding: 0; margin-bottom: 12px; font-weight: 700; }
.city-selection .monthly-choices { display: grid; grid-auto-rows: 1fr; gap: 8px; }
.city-selection .monthly-choices .choice-row { margin: 0; min-width: 0; min-height: 74px; }
.city-selection .choice-row small { line-height: 1.35; }
.city-selection .planner-options > .button { margin: 0; min-height: 48px; }
.city-selection .plan-note { margin: 0; padding: 14px; }
.city-selection .plan-note p { margin: 0; font-size: .94rem; }
.city-selection .plan-note p + p { margin-top: 8px; }
.city-selection .city-plan-amount { min-block-size: 1.5em; }
.city-selection .city-market-note { min-block-size: 1.5em; }
.city-contact .city-contact-options { align-items: stretch; }
.city-contact .city-contact-card { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.city-contact .city-contact-card :is(h2, p) { margin: 0; }
.city-contact .city-contact-card .button { margin-top: auto; min-height: 48px; }
.city-contact .city-contact-card p { padding-bottom: 8px; }
.city-contact-draft { overflow-wrap: anywhere; }
.city-contact-draft summary { min-height: 44px; cursor: pointer; }
.city-contact-draft form { display: grid; align-items: start; max-width: 40rem; }
.city-contact-draft form > .button { justify-self: start; }
.city-contact-draft #business-review { white-space: pre-wrap; }
@media (max-width: 780px) {
  .city-selection { grid-template-columns: minmax(0, 1fr); }
  .city-selection-location .city-location-value { grid-template-rows: minmax(2.75em, auto) minmax(1.4em, auto); }
}
