/* Brignoli Web core.css: shared by every site. Values come only from tokens.css. */
.ab, .ab * { box-sizing: border-box; }
.ab {
  --r: var(--radius-md);
  font-family: var(--font-body); font-size: 1rem; line-height: 1.6;
  color: var(--ink); background: var(--ground);
  -webkit-font-smoothing: antialiased;
}
.ab[data-radius="sm"] { --r: var(--radius-sm); }
.ab[data-radius="lg"] { --r: var(--radius-lg); }
.ab[data-radius="xl"] { --r: var(--radius-xl); }

/* Dark mode: same component code, remapped roles */
.ab.ab-dark {
  --ground: var(--ground-dark); --raise: var(--raise-dark); --band: var(--raise-dark);
  --ink: var(--ink-dark); --ink-dim: var(--ink-dim-dark); --ink-faint: var(--ink-dim-dark);
  --line: var(--line-dark); --brand: var(--brand-dark); --brand-soft: var(--brand-soft-dark);
  --brand-ink: var(--brand-ink-dark); --accent: var(--accent-dark); --focus: var(--brand-dark);
}

.ab-label { font-family: var(--font-mono); font-size: .74rem; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: var(--ink-dim); }
.ab-h1 { font-family: var(--font-display); font-weight: 800; font-size: 2.6rem; line-height: 1.04; letter-spacing: -.04em; margin: 0; }
.ab-h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.3rem; line-height: 1.2; margin: 0; }
.ab-lead { font-size: 1.1rem; line-height: 1.45; color: var(--ink-dim); margin: 0; }
.ab-small { font-size: .9rem; line-height: 1.45; color: var(--ink-faint); margin: 0; }

/* Button */
.ab-btn {
  display: inline-flex; align-items: center; gap: var(--space-2);
  font: 600 .93rem/1.2 var(--font-body); text-decoration: none; cursor: pointer;
  padding: var(--space-3) var(--space-4); border-radius: var(--r);
  border: 2px solid var(--brand); background: var(--brand); color: var(--brand-ink);
}
.ab-btn:hover { filter: brightness(1.08); }
.ab-btn:focus-visible, .ab-faq summary:focus-visible, .ab-chip:focus-visible, .ab-link:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.ab-btn--ghost { background: transparent; color: var(--brand); }
.ab-btn--ghost:hover { background: var(--brand-soft); filter: none; }
.ab-link { color: var(--brand); text-underline-offset: 3px; font-weight: 600; }

/* Chip / quiz answer */
.ab-chip {
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: var(--space-2) var(--space-4); border-radius: var(--radius-pill);
  border: 1px solid var(--line); background: var(--raise); color: var(--ink);
  font: 500 .9rem/1.2 var(--font-body); cursor: pointer;
}
.ab-chip[aria-pressed="true"] { background: var(--brand-soft); border-color: var(--brand); color: var(--ink); }
.ab[data-radius="sm"] .ab-chip { border-radius: var(--radius-sm); }

/* Card */
.ab-card {
  background: var(--raise); border: 1px solid var(--line); border-radius: var(--r);
  padding: var(--space-6); display: grid; gap: var(--space-3); align-content: start;
}
.ab-card--lift { box-shadow: var(--shade); border-color: transparent; }
.ab-card .ab-price { font-family: var(--font-mono); font-size: .9rem; color: var(--brand); }

/* Accent spark: the one per-site signature mark */
.ab-spark { display: inline-block; width: 10px; height: 10px; background: var(--accent); box-shadow: 2px 2px 0 var(--ink); }

/* Pixel dialog (Spieler 2, Quest) */
.ab-dialog {
  background: var(--raise); color: var(--ink); border: 3px solid var(--ink);
  box-shadow: var(--pixel); padding: var(--space-4) var(--space-6); display: grid; gap: var(--space-2);
  image-rendering: pixelated;
}
.ab-dialog .ab-tag { justify-self: start; background: var(--accent); color: var(--accent-ink); font: 500 .74rem/1 var(--font-mono); text-transform: uppercase; padding: var(--space-1) var(--space-2); }

/* FAQ "Antworten" */
.ab-faq { border-top: 1px solid var(--line); }
.ab-faq details { border-bottom: 1px solid var(--line); }
.ab-faq summary { cursor: pointer; list-style: none; padding: var(--space-4) 0; font: 700 1.1rem/1.3 var(--font-display); display: flex; justify-content: space-between; gap: var(--space-4); }
.ab-faq summary::-webkit-details-marker { display: none; }
.ab-faq summary::after { content: "+"; font-family: var(--font-mono); color: var(--brand); }
.ab-faq details[open] summary::after { content: "–"; }
.ab-faq details > p { margin: 0 0 var(--space-4); color: var(--ink-dim); max-width: var(--measure); }

/* Status lamp: colour + word, never colour alone */
.ab-status { display: inline-flex; align-items: center; gap: var(--space-2); font: 500 .8rem/1 var(--font-mono); text-transform: uppercase; }
.ab-status::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.ab-status--ok { color: var(--ok); } .ab-status--mid { color: var(--mid); } .ab-status--no { color: var(--no); }

/* Footer with cross-links to the other sites */
.ab-footer { background: var(--band); border-top: 1px solid var(--line); padding: var(--space-8) var(--space-6); display: grid; gap: var(--space-4); }
.ab-footer nav { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-6); }
.ab-footer a { color: var(--ink); text-decoration: none; font-size: .9rem; display: inline-flex; align-items: center; gap: var(--space-2); }
.ab-footer a:hover { color: var(--brand); text-decoration: underline; }
.ab-footer a i { width: 8px; height: 8px; display: inline-block; }

@media (prefers-reduced-motion: reduce) { .ab * { transition: none !important; animation: none !important; } }
