Bring a large pot of salted water to a rolling boil. Add the pasta shells and cook for 10-12 minutes until al dente, then drain and rinse with cold water to stop the cooking process.
While the pasta cooks, heat olive oil in a skillet over medium heat. Add the minced garlic and sauté for about 30 seconds until fragrant, then add the chopped spinach. Cook for 2-3 minutes until wilted, stirring frequently. Remove from heat and let cool slightly.
In a mixing bowl, combine the ricotta, cooked spinach, grated Parmesan, and season with salt and pepper. Mix until smooth and well incorporated, creating a creamy filling.
Preheat your oven to 180°C (350°F). Spread a thin layer of marinara sauce on the bottom of a baking dish to prevent sticking.
Using a spoon or piping bag, carefully stuff each shell with the spinach and ricotta mixture, then place seam side down in the prepared baking dish.
Once all shells are filled and arranged, spoon the remaining marinara sauce over the top, then sprinkle shredded mozzarella evenly over everything. Finish with a sprinkle of grated Parmesan.
Cover the dish tightly with aluminum foil and bake for 25-30 minutes, until the sauce is bubbling and the cheese is melted and golden in spots.
Remove the foil and broil for an additional 2-3 minutes if you desire a crispy, browned cheese topping. Keep a close eye to prevent burning.
Let the dish rest for about 5 minutes out of the oven to allow the filling to set. Serve hot, garnished with extra Parmesan or fresh basil if desired.