How do you shift a square wave down?
There are several simple options.


Rail-to-rail op-amp

If you have a rail-to-rail op-amp, this can be done using four resistors as follows:



This will divide the signal down to 0-15V which is in the range of the supply of the op-amp, and then compares it with half of 15V (which should be the new midpoint). There is no negative feedback which means the output will be either of the supply rails. If you supply +/-15V to the op-amp, this will output a +/-15V signal.
Transistor Level Shifter

A second options is to use a PMOS transistor/resistor level shifter followed by a CMOS inverter to correct the inversion. You need to make sure the transistors are happy with 30V+ on the Vds, and also the Vgs. This is quite high for MOSFETs, but you can get 40V rated ones, so not impossible to find.


AC coupling

If your signal is a continuous waveform, you can use a simple AC couple and rebias circuit - which consists of just a capacitor and two resistors as follows:



The capacitor acts as a high pass filter which removes the DC bias. You have to be careful however that the capacitor is rated for at least 45V. Also if you use a polarised capacitor, make sure the positive terminal goes to the input signal as that will always be the higher potential.

The downside to this approach is that if your signal ever goes away, the output will float to the mid supply (0V) which may or may not be ok for whatever you are connecting it too.

Additionally, a 30V zener diode is required on the output to prevent it rising to 30V during the initial transient (while the capacitor effectively "measures" the DC offset of the input signal). You can see from the simulation waveforms how the initial transient looks with the zener diode in place (top trace) and without (bottom trace). Notice how without you get a 30V signal initially.