Zosan headcanon (set either after Whole Cake Island or during one of the pre-timeskip arcs)
One night Sanji has a bad dream (about his childhood, his trauma, his fears...) and suddenly wakes up gasping and heavy breathing.
He doesn't want to wake up his crewmates, so he just gets up from the floor where he usually sleeps and leaves the room. But Zoro is on lookout that night and sees Sanji running into the kitchen (his comfort place). He knows that something isn't right by how panicked his breathing sounded and how confused he looked around, so he decides to check on him.
He finds Sanji in the darkness, sitting on the floor, with his back leaning on the counter, covering his head with his arms and sobbing like he never heard him do. (In his own mind, it that moment Sanji is still a child, left alone crying in the darkness by his father).
Sanji sees Zoro on the doorsteps, lit by the moonlight. Because of his pride and his rivalry with the swordsman, he doesn't want Zoro to see him while he is so vulnerable and tells him to go away, but of course Zoro is way too stubborn to do what he tells him to and wants to know why he's crying.
Sanji thinks that he wants to make fun of him, so he just stays silent, suffocating his sobs, waiting for an insult or a joke. But instead Zoro sits next to him and tells him that he envies him, because he's able to let all his emotions out and to cry freely without feeling judged (by his own self) or "less masculine".
Sanji is obviously surprised by that glimpse of Zoro's sincerity, but doesn't want to tell him why he's crying. He doesn't want to burden him with his story. In that moment, he just knows that Zoro's company is comforting. Their shoulders slightly brushing while sitting next to each other in the darkness, Zoro's slow breathing, the warmth of his body... Everything about that makes Sanji cry even more. He isn't alone anymore. He doesn't have to bear all his sufferings by himself in a loop of poisonous thoughts.
Without even realising it, he finds himself leaning his head on Zoro's shoulder, feeling the tears running down his cheeks and soaking Zoro's shirt. He quickly starts sobbing again, covering his face with his hand. Zoro wraps his arm around him and pulls him closer, letting Sanji bury his head on his chest.
Zoro patiently waits, while Sanji cries until he's too tired to even let out a single hiccup and they both fall asleep holding each other.