/* 2026vote — load last. Mobile-first; md begins at 768px.
 * Choose .container OR a full-width .page-padding wrapper for each section.
 * .section adds vertical spacing only. Do not apply page padding inside a
 * constrained card/column: use the fixed spacing tokens there instead.
 */
.container {
  width: calc(100% - var(--page-gutter) - var(--page-gutter));
  max-width: var(--content-max);
  margin-inline: auto;
}
.page-padding {
  padding-inline: var(--page-padding);
}
/* Supports accidental combined classes or a direct nested container without
 * repeating gutters. Deeper nesting should use ordinary component wrappers. */
.container.page-padding,
.page-padding > .container {
  width: 100%;
  padding-inline: 0;
}
.container.page-padding {
  width: calc(100% - var(--page-gutter) - var(--page-gutter));
}
.section {
  padding-block: var(--section-space, var(--space-section));
}
.stack {
  display: flex;
  flex-direction: column;
  gap: var(--stack-gap, var(--space-fluid-md));
}
.cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--cluster-gap, var(--spacing-4));
}
.grid-auto {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, var(--grid-min, 16rem)), 1fr)
  );
  gap: var(--grid-gap, var(--space-fluid-lg));
}
.stack > *,
.cluster > *,
.grid-auto > * {
  min-width: 0;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.flex {
  display: flex;
}
.grid {
  display: grid;
}
.hidden {
  display: none !important;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
/* Useful for a keyboard-accessible skip link paired with .sr-only. */
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
}
.text-sm {
  font-size: var(--text-sm);
}
.text-base {
  font-size: var(--text-base);
}
.text-lg {
  font-size: var(--text-lg);
}
.text-xl {
  font-size: var(--text-xl);
}
.text-2xl {
  font-size: var(--text-2xl);
}
.text-3xl {
  font-size: var(--text-3xl);
}
.text-start {
  text-align: start;
}
.text-center {
  text-align: center;
}
.text-end {
  text-align: end;
}
.text-muted {
  color: var(--color-muted);
}
.text-chustnut {
  color: var(--chustnut);
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.font-bold {
  font-weight: 700;
}
.leading-tight {
  line-height: var(--leading-tight);
}
.leading-normal {
  line-height: var(--leading-normal);
}
.w-full {
  width: 100%;
}
.mx-auto {
  margin-inline: auto;
}
.m-0 {
  margin: 0;
}
.items-center {
  align-items: center;
}
.justify-between {
  justify-content: space-between;
}
.relative {
  position: relative;
}
.whitespace-nowrap {
  white-space: nowrap;
}

@media (min-width: 768px) {
  .page-padding-md {
    padding-inline: var(--page-padding);
  }
  .container.page-padding-md {
    padding-inline: 0;
  }
  .page-padding-md > .container {
    width: 100%;
    padding-inline: 0;
  }
  .md-block {
    display: block;
  }
  .md-flex {
    display: flex;
  }
  .md-grid {
    display: grid;
  }
  .md-hidden {
    display: none !important;
  }
}
