*,
*:before,
*:after {
  box-sizing: border-box;
}

:root {
  --localhood-color-error: #f44336;
  --localhood-background-error: #ffebee;
  --localhood-theme-spacing: 8px;
  --localhood-color-incomplete: #8a8a8e;
  --cr-color-neutral-800: #121315;
}

body {
  margin: 0;
  font-family: Source Sans Pro, sans-serif;
  font-size: 14px;
}

header {
  width: 100%;
  padding: 14px 16px;
  background: #121315;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

@media (min-width: 768px) {
  header {
    padding: 14px 40px;
  }
}

section {
  width: 100%;
  margin-top: calc(var(--localhood-theme-spacing) * 3);
}

h2,
h3 {
  margin: 0;
}

.localhood-error {
  color: var(--localhood-color-error) !important;
  background-color: var(--localhood-background-error) !important;
}

.crowdriff-heading {
  font-size: calc(var(--localhood-theme-spacing) * 4);
  font-weight: 500;
  letter-spacing: 0;
  margin: 0 auto calc(var(--localhood-theme-spacing) * 4) auto;
}

.page-title {
  color: var(--cr-color-neutral-800);
  text-align: center;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 28px;
  margin-top: calc(var(--localhood-theme-spacing) * 3);
}

.page-description {
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  margin: var(--localhood-theme-spacing) 0 0;
}

.section-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  word-wrap: break-word
}

.section-description {
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
  margin: calc(var(--localhood-theme-spacing) / 2) 0 0;
}

.content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}

.collection {
  margin: var(--localhood-theme-spacing) 0 0;
  border: 1px solid #E0E4EB;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
}

.collection a.collection-item {
  justify-content: space-between;
  align-items: flex-start;
  display: flex;
  gap: var(--localhood-theme-spacing);
}

.collection a.collection-item,
.collection li.collection-item {
  padding: var(--localhood-theme-spacing);
}

.collection li.collection-item>a {
  justify-content: space-between;
  align-items: flex-start;
  display: flex;
  gap: 8px;
}

.collection-item:hover,
.collection-item:focus,
.collection-item:active {
  background: #F1F4F8 !important;
  box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15) !important;
}

.collection-item-link {
  flex: 1 1 0;
  color: #2A2B30;
  font-size: 16px;
  font-weight: 400;
  text-decoration: underline;
  line-height: 24px;
}

.download-failed {
  pointer-events: none;
  text-decoration: none;
  touch-action: none;
}

.collection-item-link.download-failed>div:first-child {
  color: #A0A5AF;
}

.collection-item-link.download-failed>div:nth-child(2) {
  color: #4C4F56;
}

.collection-item-details {
  justify-content: flex-start;
  align-items: flex-start;
  gap: var(--localhood-theme-spacing);
  display: flex;
  flex: 1 1 0;
}

.processing {
  pointer-events: none;
  touch-action: none;
}

.spinner {
  height: 24px;
  width: 24px;
  position: relative;
  animation: 1s spin steps(8) infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg)
  }
  
  to {
    transform: rotate(360deg)
  }
}
