/* Domus Pura foundations (opt-in via dp-* classes only) */

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

.dp-root {
  font-family: var(--dp-font-family-base);
  font-size: var(--dp-font-size-md);
  line-height: var(--dp-line-height-body);
  color: var(--dp-color-text-primary);
  background: var(--dp-color-bg-page);
}

.dp-container {
  width: min(100%, 1200px);
  margin-inline: auto;
  padding-inline: var(--dp-space-4);
}

.dp-stack {
  display: grid;
  gap: var(--dp-space-4);
}

.dp-cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dp-space-3);
  align-items: center;
}

.dp-grid {
  display: grid;
  gap: var(--dp-space-4);
}

.dp-grid--cards {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.dp-grid--fields {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.dp-grid--compact-fields {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.dp-surface {
  background: var(--dp-card-bg);
  border: var(--dp-border-width) solid var(--dp-card-border);
  border-radius: var(--dp-card-radius);
  box-shadow: var(--dp-shadow-sm);
  padding: var(--dp-card-padding);
  display: grid;
  gap: var(--dp-card-gap);
}

.dp-divider {
  border: 0;
  border-top: var(--dp-border-width) solid var(--dp-color-border-soft);
  margin: 0;
}

.dp-text-muted {
  color: var(--dp-color-text-muted);
}

.dp-text-danger {
  color: var(--dp-color-danger);
}

.dp-text-success {
  color: var(--dp-color-success);
}

.dp-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 720px) {
  .dp-container {
    padding-inline: var(--dp-space-3);
  }

  .dp-grid--cards,
  .dp-grid--fields,
  .dp-grid--compact-fields {
    grid-template-columns: minmax(0, 1fr);
  }
}
