/* Daat brand tokens, taken from daat.co.nz. Change colours and type here only. */
:root {
  --violet-900: #3b1078;
  --violet-800: #5a1e9e;
  --violet-700: #6f24b8;
  --violet-600: #8a2bd1;   /* primary buttons, links */
  --violet-500: #a14fe0;
  --lavender-200: #e9dbf6; /* tile backgrounds */
  --lavender-100: #f4ecfb;
  --coral: #ec5f83;        /* headline accent, logo pink */
  --orange: #f7941d;       /* small accent dots */
  --ink: #14151f;          /* headings on light */
  --text: #3d4150;
  --muted: #6b7083;
  --line: #e3e5ec;
  --surface: #f7f8fb;
  --white: #ffffff;
  --danger: #c62845;
  --success: #138a5b;

  --hero-gradient: radial-gradient(120% 90% at 30% 40%, #8b34cf 0%, #6a22b5 45%, #4a178f 100%);

  --font: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* The site's tile shape: rounded on three corners, square on one. */
  --leaf: 28px 28px 28px 4px;
  --leaf-sm: 16px 16px 16px 3px;
  --radius-btn: 4px;

  --focus: 0 0 0 3px #fff, 0 0 0 5px var(--violet-600);
}

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

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

body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.55;
  color: var(--text);
  background: var(--surface);
}

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

:focus-visible { outline: none; box-shadow: var(--focus); }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 28px;
  border: 0;
  border-radius: var(--radius-btn);
  background: var(--violet-600);
  color: var(--white);
  font-weight: 500;
  font-size: 16px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.15s ease;
}
.btn:hover { background: var(--violet-700); }
.btn:disabled { opacity: 0.55; cursor: not-allowed; }
.btn-ghost {
  background: transparent;
  color: var(--violet-600);
  border: 1.5px solid currentColor;
}
.btn-ghost:hover { background: var(--lavender-100); }

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

/* Page shown for a mistyped or old adviser link. */
.not-found { display: grid; place-items: center; min-height: 100vh; padding: 16px; text-align: center; }
.not-found img { display: inline-block; height: auto; }
.not-found h1 { margin: 20px 0 8px; color: var(--ink); font-size: 24px; }
.not-found p { margin: 0 0 20px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
