/* App-derived primitives. Load after tokens.css; provenance: docs/visual-audit.md. */
.site-brand {
  display: inline-block;
  width: min(100%, 220px);
  vertical-align: middle;
}

.site-brand img {
  display: block;
  width: 100%;
  height: auto;
}

.site-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  padding: 14px 18px;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  background: var(--primary);
  color: var(--card);
  font: 700 1rem/1.35 var(--font-ui);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.site-button:hover { background: var(--primary-dark); }
.site-button--secondary {
  background: var(--coral-wash);
  border-color: #ffc4ba;
  color: var(--navy);
}
.site-button--secondary:hover { background: var(--coral); }
.site-button:focus-visible,
.site-brand:focus-visible {
  outline: 3px solid var(--teal-deep);
  outline-offset: 4px;
}

.site-card {
  padding: 1.5rem;
  border: 1px solid var(--line-brand);
  border-radius: var(--radius-xl);
  background: var(--card);
  color: var(--text);
  box-shadow: var(--shadow);
}

.site-pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 8px 14px;
  border: 1px solid var(--line-brand);
  border-radius: 999px;
  background: var(--navy-wash);
  color: var(--navy);
  font: 700 .875rem/1.35 var(--font-ui);
}

.site-panel--navy {
  border-radius: 31px;
  background: linear-gradient(145deg, #103357, #092747 85%);
  color: var(--card);
}

.site-panel--coral {
  border-radius: 25px;
  background: linear-gradient(135deg, #ffa99e, #ff8478 80%);
  color: var(--navy);
}

.site-panel--teal {
  border-radius: var(--radius-lg);
  background: var(--teal-wash);
  color: var(--navy);
}
