:root {
  --navy: #1C2C57;
  --navy-deep: #121D3D;
  --navy-soft: #2A3B6B;
  --teal: #128A70;
  --teal-bright: #19A988;
  --teal-tint: #E3F2EE;
  --ink: #262A33;
  --muted: #5A6070;
  --line: #E2E5EC;
  --cream: #EDF0F7;
  --paper: #FFFFFF;
  --danger: #B3261E;
  --danger-tint: #FBE9E7;
  --radius: 14px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--sans); color: var(--ink); background: var(--cream); line-height: 1.5; }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--teal-bright); outline-offset: 2px; }

.brand { font-family: var(--serif); letter-spacing: 0.02em; }
.brand .dot { color: var(--teal-bright); }
.eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 48px; padding: 0.75rem 1.25rem; border-radius: 999px; border: 0;
  background: var(--teal); color: #fff; font-weight: 700; cursor: pointer; text-decoration: none;
  transition: background 0.15s ease, transform 0.1s ease, opacity 0.15s ease;
}
.btn:hover { background: var(--teal-bright); }
.btn:active { transform: translateY(1px); }
.btn[disabled] { opacity: 0.55; cursor: not-allowed; }
.btn.secondary { background: var(--paper); color: var(--navy); border: 1px solid var(--line); }
.btn.secondary:hover { background: var(--cream); }
.btn.ghost { background: transparent; color: var(--navy); border: 1px solid var(--line); }

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