/* === about-bio === */
/* v3.12.25 — Token compliance pass. Glenn 2026-05-21 walk: "about bio
 * has hard coded font sizes that do not conform to the site wise
 * design." Pre-v3.12.25 used literal rem values (0.58rem, 2.2rem,
 * 1.7rem, 0.85rem, 0.62rem, 0.82rem) that ignored preset paint tokens.
 * Now consumes --paint-*-size + --paint-eyebrow-* tokens with the
 * original literals as fallbacks — preserves visual continuity for
 * pages without preset paint, and inherits canonical sizing when
 * preset is active.
 */
.sab-outer{padding:100px 48px}
.sab-header{text-align:center;margin-bottom:64px}
.sab-label{font-size:var(--paint-eyebrow-size, .58rem);font-weight:var(--paint-eyebrow-weight,700);letter-spacing:var(--paint-eyebrow-letter-spacing,2.5px);text-transform:var(--paint-eyebrow-case,uppercase);color:var(--sc,var(--shell-accent));margin-bottom:16px}
.sab-header h2{font-family:var(--shell-hf);font-size:var(--paint-h2-size, 2.2rem);font-weight:var(--paint-heading-weight,600);color:var(--shell-h)}
.sab-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:320px 1fr;gap:64px;align-items:start}
.sab-photo-wrap{position:relative;width:100%;height:420px;overflow:hidden}
.sab-photo{width:100%;height:100%;object-fit:cover}
.sab-photo[src=""]{display:none}
.sab-photo-wrap:not(:has(img[src]:not([src=""])))::after{content:"Add Photo";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--shell-card,rgba(255,255,255,.03));border:1px dashed var(--shell-line,rgba(0,0,0,.1));color:var(--shell-m);font-size:.7rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.sab-photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:20px 24px;background:linear-gradient(to top,rgba(15,43,76,.85),transparent)}
.sab-photo-overlay span{font-size:var(--paint-eyebrow-size, .58rem);font-weight:var(--paint-eyebrow-weight,700);letter-spacing:var(--paint-eyebrow-letter-spacing,1.5px);text-transform:var(--paint-eyebrow-case,uppercase);color:var(--sc,var(--shell-accent))}
.sab-photo[src=""]~.sab-photo-overlay{display:none}
.sab-body h3{font-family:var(--shell-hf);font-size:var(--paint-h3-size, 1.7rem);font-weight:var(--paint-heading-weight,600);color:var(--shell-h);margin-bottom:4px}
.sab-role{font-size:var(--paint-eyebrow-size, .62rem);font-weight:var(--paint-eyebrow-weight,700);letter-spacing:var(--paint-eyebrow-letter-spacing,1px);text-transform:var(--paint-eyebrow-case,uppercase);color:var(--sc,var(--shell-accent));margin-bottom:28px}
.sab-text p{font-size:var(--paint-body-size, .85rem);line-height:var(--paint-body-line-height, 1.85);color:var(--shell-t);margin-bottom:16px}
.sab-callout{margin-top:24px;padding:24px;background:rgba(var(--sc,184),var(--sc,146),var(--sc,47),.06);border-left:3px solid var(--sc,var(--shell-accent))}
.sab-callout p{font-size:var(--paint-body-size, .82rem);font-style:italic;color:var(--shell-h);margin:0;line-height:var(--paint-body-line-height, 1.7)}
.sab-callout:has(p:empty){display:none}
@media(max-width:768px){.sab-outer{padding:60px 24px}.sab-grid{grid-template-columns:1fr;gap:32px}.sab-photo-wrap{height:300px}}
