/**
 * Checklist rows: <ul><li><svg/>…<span>…</span></li></ul>
 * Scoped to lists whose direct children are li with svg first (decorative icon).
 */
ul:has(> li > svg:first-child) {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul:has(> li > svg:first-child) > li {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
}

ul:has(> li > svg:first-child) > li + li {
  margin-top: 0.6rem;
}

ul:has(> li > svg:first-child) > li > svg {
  inline-size: 1rem;
  block-size: 1rem;
  flex: 0 0 auto;
  margin-top: 0.25em;
}

/* Icon-prefixed paragraph: <p><svg/><span>…</span></p>. Same auto-detect
   idiom as the checklist above, single-line variant. */
p:has(> svg:first-child) {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

p:has(> svg:first-child) > svg {
  inline-size: 1rem;
  block-size: 1rem;
  flex: 0 0 auto;
}

/* Link list: <ul><li><a/></li></ul>. Strips default bullets and indent so
   the anchors carry the visual weight. Same :has() idiom as above. */
ul:has(> li > a:first-child) {
  margin: 0;
  padding: 0;
  list-style: none;
}

ul:has(> li > a:first-child) > li + li {
  margin-top: 0.4rem;
}
