I am looking at the transversal logical gates for the Steane code.
I am having trouble trying to implement the $CNOT$ logical gate for this code.
I understand that we can transversally implement a logical $S$ gate by:
$$U = S \otimes S^{\dagger} \otimes S \otimes S^{\dagger} \otimes S \otimes S^{\dagger} \otimes S$$
We can confirm this is a logical gate for the code by first confirming that it sends stabilizers to stabilizers. The X stabilizers for this code are $X_{4}X_{5}X_{6}X_{7}, X_{2}X_{3}X_{6}X_{7}, X_{1}X_{3}X_{5}X_{7}$
$$UX_{i}X_{j}X_{k}X_{l}U^{\dagger} = (X_{i}X_{j}X_{k}X_{l})(Z_{i}Z_{j}Z_{k}Z_{l})$$ so $U$ sends stabilizers to stabilizers.
Then I checked its effect on logical operators and found that $UX_{L}U^{\dagger} = Y_{L}$ and $UZ_{L}U^{\dagger}=Z_{L}$, so I found that $U$ implements a logical $S_{L}$ gate.
However, I have read that you can also transversally implement the CNOT gate for any CSS code. However, I am having trouble doing this.
Does it mean that I can implement $U=CNOT \otimes CNOT \otimes CNOT \otimes CNOT \otimes CNOT \otimes CNOT \otimes CNOT$?
I am certain this is not the case as $CNOT$ is a $2-$ qubit gate. However, I don't understand how the $CNOT$ is physically implemented so that I can check if it sends stabilizers to stabilizers and so that I can check its effect on logical operators?
Any help appreciated.