If you're OK with the output only swinging to within 150mV of each rail, you can try this IC-less circuit.
It's a current mirror where the input current flows through R4 and Q1 and is duplicated in R5 and Q2 which provides an output inverted with respect to input.
If the signal were connected directly to R4 the current through Q1 would crap out when its base reached 0.6V, so instead R1-R2-R3 attenuate the signal and center it around 2.5V such that the negative peak never turns off Q1. R5 being higher than R4 adds gain to compensate for the attenuation.

EDIT: answer to “how did you choose those odd values?”
There’s plenty of leeway in the selection of values.
I wanted the signal at the top of R4 (Vatten) to only go as low as 0.7V so that Q1 would never fully turn off and cause clipping. How high should Vatten go? Although not strictly necessary, for simplicity I opted to keep the Vatten swing centered around 2.5V, same as the input. This put Vatten max at 4.3V for a total pk-pk swing of 3.6V.
The required attenuation from Vin to Vatten was then 5.0 to 3.6, or 0.72.
This attenuation is achieved by the resistor divider R1 to the parallel combination of R2 and R3, that being the Thevenin equivalent resistance into 2.5V.
Arbitrarily choosing 1K for R1, this worked out to 2K6 for the Thevenin resistance (2.6K / (2.6K + 1K) = 0.72) so therefore R2 and R3 are both 5K2.
But 5K1 is a standard value and that’s just fine – I should have just used that.
Note that this calculation assumes the output impedance from your Vin source is essentially zero, as from an opamp output. If it is not zero, it needs to be added to the R1 in this analysis.
For R4 and R5 I just chose an arbitrary large value for R4 (100K) so that it didn’t affect the R1-R2-R3 equation and that dictated R5: the input gain was 0.72 so the output gain should be 1.39 to restore total to 1.00.
But again, 139K is not a standard value so I should have chosen 137K (140K starts showing distortion).
But it could be argued that R5 should ideally be made lower to decrease the output impedance. If we lower it (and R4) by a factor of 10 then the new value of 10K for R4 does start impinging on the R1-R2-R3 equation and we get a bit more attenuation. So we need a bit more gain: making R5 = 15K appears to solve it and we actually get a better Vout max because Q1 is closer to turning fully off.
Final answer:
R1 = 1K
R2 = R3 = 5K1
R4 = 10K
R5 = 15K
Vout max = 4.91V
Vout min = 0.16V
Caveats:
-R1 needs to include output impedance of Vin source
-real world transistor may be slightly different, requiring R tweaks to avoid Q1 cutoff
-the output impedance is R5 so any resistive load in the next stage will attenuate: either keep load’s impedance very high (e.g. non-inverting opamp input) or if necessary make R5 even lower (and adjust other resistors accordingly).
Good luck!