/* NEXUS Kanal – Basis und verbindliche Lesbarkeit */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--canvas);
  color: var(--ink);
  font-family: "Source Sans 3", ui-sans-serif, system-ui, sans-serif;
  font-size: var(--text-base);
  line-height: var(--line-height-body);
}

body[data-bg="plan"] {
  background-image: none;
  background-color: var(--canvas);
}

h1 {
  font-size: var(--text-title);
  line-height: 1.15;
  letter-spacing: -0.03em;
  font-weight: 700;
}

h2 {
  font-size: var(--text-heading);
  line-height: 1.3;
  font-weight: 650;
}

h3 {
  font-size: 16px;
  line-height: 1.35;
  font-weight: 650;
}

p {
  line-height: 1.5;
}

button,
input,
select,
textarea {
  font: inherit;
  font-size: var(--text-ui);
}

.btn-primary,
.btn-secondary,
.btn-danger,
button.primary,
.actions > button {
  min-height: 2.5rem;
  font-size: var(--text-ui);
  line-height: 1.35;
}

.hint,
.muted,
.small,
.danger-text {
  font-size: var(--text-secondary);
  line-height: 1.45;
}

.lbl {
  font-size: var(--text-secondary);
  line-height: 1.4;
}

@media (max-width: 780px) {
  h1,
  .page-title {
    font-size: var(--text-title-mobile);
  }
}
