/* Business card layouts. Colours, type, spacing and radii come from the Pando tokens only. */
html, body { margin: 0; background: var(--surface); }
.bc { box-sizing: border-box; min-height: 100vh; max-width: 480px; margin: 0 auto; padding: var(--space-7) var(--space-4); display: grid; gap: var(--space-5); align-content: start; }

/* Layout "page": identity panel beside links and about on wide screens. */
.bc--page { max-width: 960px; }
@media (min-width: 768px) {
  .bc--page { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: start; }
  .bc--page > * { grid-column: 2; }
  .bc--page .bc-header { grid-column: 1; grid-row: 1 / span 4; position: sticky; top: var(--space-7); }
}

.bc-header { padding: var(--space-5); gap: var(--space-4); }
.bc-logo { display: block; height: 40px; width: auto; max-width: 160px; margin-bottom: var(--space-2); }
.bc-photo { width: 72px; height: 72px; border-radius: var(--radius-full); object-fit: cover; }
.bc-name { margin: 0; font-family: var(--font-display); font-size: 40px; line-height: 44px; font-weight: 700; }
.bc-role { margin: 0; font-size: 16px; line-height: 24px; color: var(--mint); }
.bc-tagline { margin: 0; font-size: 14px; line-height: 20px; }

.bc-links { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.bc-link { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--ink); text-decoration: none; transition: background-color 150ms; }
.bc-link:hover { background: var(--line); }
.bc-link__text { display: grid; min-width: 0; }
.bc-link__label { font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.bc-link__value { font-size: 14px; line-height: 20px; font-weight: 700; overflow-wrap: anywhere; }

.bc-about { font-size: 14px; line-height: 20px; }
.bc-about > :first-child { margin-top: 0; }
.bc-about > :last-child { margin-bottom: 0; }
.bc-about h1, .bc-about h2 { font-size: 18px; line-height: 24px; }
.bc-about h3 { font-size: 16px; line-height: 22px; }
.bc-about a { color: var(--teal-ink); }

/* The QR code sits on a fixed light ground in both themes so every scanner can read it. */
.bc-qr { justify-self: center; display: grid; gap: var(--space-2); justify-items: center; }
.bc-qr[hidden] { display: none; }
.bc-qr__code { background: var(--on-pine); color: var(--pine); padding: var(--space-3); border-radius: var(--radius-md); width: 200px; height: 200px; }
.bc-qr__code svg { display: block; width: 100%; height: 100%; }
.bc-caption { font-size: 12px; line-height: 16px; color: var(--ink-muted); margin: 0; }

.bc-error { font-size: 14px; }

@media (prefers-reduced-motion: reduce) {
  .bc-link { transition: none; }
}
