For the input in OP, we can also use RegionPlot3D
with the options MeshFunctions
and Mesh
:
cs = Circumsphere[{a, b, c, s}];
Show[RegionPlot3D[cs,
PlotStyle -> Opacity[.1, LightBlue],
MeshFunctions -> {#2 &, #3 &},
Mesh -> {{{0, Directive[Orange, Thick, Opacity[1]]}},
{{0, Directive[Blue, Thick, Opacity[1]]}}}],
Graphics3D[MapThread[{Black, PointSize[Large], Point@#2, Text[##, {1, -1}]} &,
{{"A", "B", "C", "S"}, {a, b, c, s}}]]]

Alternatively, we can get the two circles using RegionIntersection[cs, InfinitePlane[{a, b, c}]
and RegionIntersection[cs, InfinitePlane[{a, b, s}]
:
{c1, c2} = MeshPrimitives[DiscretizeRegion @
RegionIntersection[cs, InfinitePlane[{a, b, #}]], 1] & /@ {c, s};
Graphics3D[{Opacity[.25], cs,
Opacity[1], Thick, Blue, c1, Orange, c2,
Black, PointSize[Large], Point @ {a, b, c, s},
MapThread[Text[##, {1, -1}] &, {{"A", "B", "C", "S"}, {a, b, c, s}}]}]
