/* BlueRock Presence: shared colour tokens and base typography (kiosk + portal). */
:root {
  --br-deep: #1b4332;
  --br-green: #2d6a4f;
  --br-mint: #d8f3dc;
  --br-gold: #d4a843;
  --br-amber: #c98a1b;
  --br-page: #f0f4f1;
  --br-text: #1f2a24;

  --br-surface: #ffffff;
  --br-muted: #5b6b62;
  --br-border: #c9d6cd;
  --br-danger: #b3261e;
  --br-danger-bg: #fbe9e7;
  --br-focus: #d4a843;
  --br-on-dark: #f0f4f1;
  --br-dark: #0d1f17;

  --br-radius: 12px;
  --br-radius-lg: 20px;
  --br-shadow: 0 2px 10px rgba(27, 67, 50, 0.12);

  --br-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --br-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --br-fs-sm: 0.875rem;
  --br-fs-base: 1rem;
  --br-fs-lg: 1.25rem;
  --br-fs-xl: 1.75rem;
  --br-fs-2xl: 2.5rem;
}

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

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--br-font);
  font-size: var(--br-fs-base);
  line-height: 1.5;
  color: var(--br-text);
  background: var(--br-page);
}

h1, h2, h3 { line-height: 1.2; margin: 0 0 0.5em; color: var(--br-deep); }
h1 { font-size: var(--br-fs-2xl); }
h2 { font-size: var(--br-fs-xl); }
h3 { font-size: var(--br-fs-lg); }

a { color: var(--br-green); }

button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 3px solid var(--br-focus); outline-offset: 2px; }

.br-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
  min-height: 44px; padding: 0.5em 1.1em;
  border: 0; border-radius: var(--br-radius);
  background: var(--br-green); color: #fff; font-weight: 600; cursor: pointer;
}
.br-btn:hover { background: var(--br-deep); }
.br-btn.secondary { background: var(--br-mint); color: var(--br-deep); }
.br-btn.amber { background: var(--br-amber); }
.br-btn.danger { background: var(--br-danger); }
.br-btn:disabled { opacity: 0.5; cursor: default; }

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

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
