@@ -273,6 +273,61 @@ ol.breadcrumb {
273273 }
274274}
275275
276+ // Opt-in variant: keeps bio text (including lists) indented beside the photo
277+ // for the entire height of the entry, instead of the float-based layout's
278+ // default behavior — once text runs past the photo's bottom edge, a plain
279+ // float lets the remainder revert to full container width. Uses flexbox so
280+ // the row auto-sizes to whichever is taller, the photo or the text — a fixed
281+ // min-height under-reserved space for photos taller than it (non-square
282+ // crops), letting them overlap the next entry, and a grid layout stretched
283+ // each auto-placed text row to reach the spanning photo's full height,
284+ // leaving a gap between short lines. Scoped to its own modifier class so it
285+ // doesn't change the float-based layout other speaker-bio entries on the
286+ // site still use.
287+ .speaker-bio--aligned {
288+ display : flex ;
289+ align-items : flex-start ;
290+ gap : 40px ;
291+ margin-bottom : 32px ;
292+ }
293+
294+ .speaker-bio--aligned .speaker-bio-text {
295+ flex : 1 ;
296+ min-width : 0 ;
297+ }
298+
299+ .speaker-bio--aligned img .speaker-photo {
300+ flex : 0 0 240px ;
301+ width : 240px ;
302+ max-width : 240px ;
303+ float : none ;
304+ margin : 0 ;
305+ }
306+
307+ @media (max-width : 576px ) {
308+ .speaker-bio--aligned {
309+ flex-direction : column ;
310+ }
311+
312+ .speaker-bio--aligned img .speaker-photo {
313+ width : 100% ;
314+ max-width : 240px ;
315+ margin : 0 auto 20px ;
316+ }
317+ }
318+
319+ // A bio's bullet list sits inside a flex item (.speaker-bio-text). With the
320+ // default outside marker position, browsers can lay the bullet out relative
321+ // to the flex row instead of the list item, stranding it beside the photo
322+ // far from its own text. Rendering the marker inside the item's own content
323+ // box keeps it anchored to its text regardless of the surrounding flex
324+ // layout.
325+ .speaker-bio-text ul {
326+ list-style-position : inside ;
327+ padding-left : 0 ;
328+ margin : 1em 0 ;
329+ }
330+
276331.content img {
277332 display : block ;
278333 margin : 2rem auto ;
0 commit comments