/* The one speaker card (functions/_lib/speaker-card.js, Drew 10-07). Used on
   the public event page, the member event page and the speaker kit. Colours
   come from the portal tokens (css/tokens.css: light and dark) and fall back
   to the public site's palette, which has no tokens.css.
   Drew 10-07: running text fully justified; everything (text, icons, offers,
   businesses) on ONE left edge; the speaker and each business share one layout. */
.spc { display: flex; flex-direction: column; gap: 20px; min-width: 0; overflow-wrap: break-word; color: var(--ink, var(--navy, #172029)); }
.spc-sp, .spc-bz { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.spc-sp + .spc-sp { border-top: 1px solid var(--line, #DCDCD4); padding-top: 20px; }
.spc-bz { border-top: 1px solid var(--line, #DCDCD4); padding-top: 16px; }
.spc-who { display: flex; gap: 16px; align-items: center; min-width: 0; }
.spc-shot { width: 88px; height: 88px; flex: none; border-radius: 50%; object-fit: cover; box-sizing: content-box; padding: 3px; border: 3px solid #E98500; background: var(--surface, #FFFFFF); }
.spc-initials { display: flex; align-items: center; justify-content: center; background: #053C5E; background-clip: content-box; color: #FFFFFF; font-size: 1.8rem; letter-spacing: .04em; }
.spc-logo { width: 56px; height: 56px; flex: none; object-fit: contain; background: var(--surface, #FFFFFF); border: 1px solid var(--line, #DCDCD4); box-sizing: border-box; }
.spc-letter { display: flex; align-items: center; justify-content: center; background: #053C5E; border-color: #053C5E; color: #FFFFFF; font-weight: 600; font-size: 22px; }
.spc-name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.spc-name b, .spc-person { margin: 0; font: inherit; font-weight: 600; font-size: 17px; line-height: 1.3; color: inherit; }
.spc-small { font-size: 14px; line-height: 20px; color: var(--ink-2, #555C63); }
.spc-bio, .spc-offer { margin: 0; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.spc-bio { line-height: 1.7; }
/* Icons: one row from the shared left edge. Each is a 44px target with its mark at the left of it. */
.spc-icons { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; column-gap: 4px; }
.spc-icons a { display: inline-flex; align-items: center; justify-content: flex-start; width: 44px; height: 44px; color: var(--link, #005E7A); transition: color .2s ease; }
.spc-icons a:hover, .spc-icons a:focus-visible { color: #E98500; }
.spc-icons svg { display: block; }
.spc-sub { margin: 4px 0 -8px; font: 600 12px/16px var(--font-kicker, 'Montserrat', system-ui, sans-serif); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2, #555C63); }
.spc-offer { padding: 12px 14px; background: var(--tint-info, #E3EEF2); border-left: 3px solid #E98500; font-size: 15px; line-height: 22px; }
.spc-tag { display: block; margin-top: 6px; font: 600 11px/1 var(--font-kicker, 'Montserrat', system-ui, sans-serif); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2, #555C63); text-align: left; }
@media (max-width: 400px) { .spc-shot { width: 68px; height: 68px; } .spc-who { gap: 12px; } }
@media (prefers-reduced-motion: reduce) { .spc-icons a { transition: none; } }
