{"id":2419,"date":"2026-05-20T01:56:00","date_gmt":"2026-05-20T01:56:00","guid":{"rendered":"https:\/\/marilynrecipes.com\/?p=2419"},"modified":"2026-05-19T18:24:01","modified_gmt":"2026-05-19T18:24:01","slug":"goat-cheese-and-beet-salad","status":"publish","type":"post","link":"https:\/\/marilynrecipes.com\/index.php\/2026\/05\/20\/goat-cheese-and-beet-salad\/","title":{"rendered":"Goat Cheese and Beet Salad A Beautiful, Fresh Salad Full of Comfort and Flavor"},"content":{"rendered":"\n<p>There\u2019s something so comforting about making a colorful salad that looks fancy but feels completely effortless once it comes together. This Goat Cheese and Beet Salad has become one of my favorite recipes whenever I want something fresh, nourishing, and beautiful on the table. The sweet roasted beets, creamy goat cheese, crunchy nuts, and crisp greens create the perfect balance of textures and flavors in every bite.<\/p>\n\n\n\n<p>Hi\ud83d\udc4b I\u2019m MARILYN, a 34-year-old from the United Kingdom. Cooking is my passion, and I love sharing delicious, easy-to-follow recipes. Join me on marilynrecipes.com to explore a world of culinary delights, from comforting classics to innovative creations. Let\u2019s make cooking fun and enjoyable for everyone! Cooking is about more than just food it\u2019s about sharing stories and making memories.<\/p>\n\n\n\n<p>I still remember the first time I made this Goat Cheese and Beet Salad for a family lunch at home. I wanted something light but still satisfying, and I had a few roasted beets sitting in my fridge waiting to be used. I tossed them together with creamy goat cheese and fresh greens, added a quick homemade dressing, and suddenly everyone at the table kept asking for seconds. Since then, this Goat Cheese and Beet Salad has become one of those recipes I make again and again because it always feels special without requiring much effort.<\/p>\n\n\n\n<p>I especially love serving Goat Cheese and Beet Salad during warmer months, but honestly, I make it year-round because the flavors are timeless. The earthy sweetness of the beets pairs beautifully with tangy goat cheese, and every forkful tastes bright, creamy, and refreshing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_5d117f88-8640-45bd-bd93-4beeff073d41.png\" alt=\"\" class=\"wp-image-2443\" srcset=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_5d117f88-8640-45bd-bd93-4beeff073d41.png 1024w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_5d117f88-8640-45bd-bd93-4beeff073d41-300x300.png 300w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_5d117f88-8640-45bd-bd93-4beeff073d41-150x150.png 150w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_5d117f88-8640-45bd-bd93-4beeff073d41-768x768.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Whenever I prepare Goat Cheese and Beet Salad, my kitchen instantly feels calmer and happier. The vibrant colors alone make me smile. It\u2019s the kind of dish that makes a simple dinner feel elegant and comforting at the same time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why I Love Making This Recipe<\/h2>\n\n\n\n<p>I adore this salad because it feels restaurant-worthy while remaining incredibly simple to prepare at home. I don\u2019t need complicated ingredients or advanced cooking skills to make something truly delicious.<\/p>\n\n\n\n<p>Here\u2019s why I keep coming back to this recipe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The sweet roasted beets taste rich and earthy<\/li>\n\n\n\n<li>Goat cheese adds creamy tanginess<\/li>\n\n\n\n<li>Mixed greens bring freshness and crunch<\/li>\n\n\n\n<li>Candied walnuts create a sweet, crispy texture<\/li>\n\n\n\n<li>The homemade vinaigrette ties everything together perfectly<\/li>\n\n\n\n<li>It works as a starter, lunch, or light dinner<\/li>\n<\/ul>\n\n\n\n<p>I also love how customizable this Goat Cheese and Beet Salad can be. Sometimes I add sliced pears or apples in the fall. Other times I sprinkle fresh herbs on top for extra brightness. It always turns out delicious.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ingredients &amp; Little Kitchen Secrets<\/h2>\n\n\n\n<p>The secret to making the best Goat Cheese and Beet Salad is using fresh ingredients and balancing flavors carefully.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fresh Ingredients You\u2019ll Need<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Roasted beets<\/li>\n\n\n\n<li>Soft goat cheese<\/li>\n\n\n\n<li>Mixed salad greens<\/li>\n\n\n\n<li>Red onion<\/li>\n\n\n\n<li>Candied walnuts<\/li>\n\n\n\n<li>Olive oil<\/li>\n\n\n\n<li>Balsamic vinegar<\/li>\n\n\n\n<li>Dijon mustard<\/li>\n\n\n\n<li>Honey<\/li>\n\n\n\n<li>Salt<\/li>\n\n\n\n<li>Black pepper<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">My Little Kitchen Secrets<\/h3>\n\n\n\n<p>I always roast my beets ahead of time because chilled roasted beets taste incredible in salads. I wrap them in foil and roast them until tender. Once cooled, the skins slide right off effortlessly.<\/p>\n\n\n\n<p>I also let the goat cheese sit at room temperature for a few minutes before serving. Softer goat cheese blends beautifully with the vinaigrette and creates creamy bites throughout the salad.<\/p>\n\n\n\n<p>Another trick I love is lightly toasting the walnuts before adding them. The warmth brings out their nutty flavor and makes the salad even more comforting.<\/p>\n\n\n\n<p>For the dressing, I whisk the balsamic vinegar slowly into the olive oil to create a silky vinaigrette that coats every ingredient perfectly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How I Make It, Step by Step<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Roast the Beets<\/h3>\n\n\n\n<p>I start by preheating my oven to 400\u00b0F. I wash the beets thoroughly and wrap each one in foil. Then I roast them for about 45 to 60 minutes until fork tender.<\/p>\n\n\n\n<p>After cooling slightly, I peel the skins off and slice the beets into wedges.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Prepare the Dressing<\/h3>\n\n\n\n<p>In a small bowl, I whisk together:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Olive oil<\/li>\n\n\n\n<li>Balsamic vinegar<\/li>\n\n\n\n<li>Dijon mustard<\/li>\n\n\n\n<li>Honey<\/li>\n\n\n\n<li>Salt<\/li>\n\n\n\n<li>Black pepper<\/li>\n<\/ul>\n\n\n\n<p>The dressing becomes smooth, glossy, and perfectly balanced between sweet and tangy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Assemble the Salad<\/h3>\n\n\n\n<p>I spread the mixed greens across a large serving platter. Then I layer the roasted beets evenly over the greens.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_32b524e2-7f1d-4e77-8e9e-5aa4e093f2fc.png\" alt=\"\" class=\"wp-image-2444\" srcset=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_32b524e2-7f1d-4e77-8e9e-5aa4e093f2fc.png 1024w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_32b524e2-7f1d-4e77-8e9e-5aa4e093f2fc-300x300.png 300w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_32b524e2-7f1d-4e77-8e9e-5aa4e093f2fc-150x150.png 150w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_32b524e2-7f1d-4e77-8e9e-5aa4e093f2fc-768x768.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Next, I crumble the goat cheese generously across the salad and scatter thin slices of red onion throughout.<\/p>\n\n\n\n<p>Finally, I sprinkle candied walnuts over everything for a beautiful crunchy finish.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Dress and Serve<\/h3>\n\n\n\n<p>Right before serving, I drizzle the balsamic vinaigrette over the salad. I toss lightly or leave it layered for a more elegant presentation.<\/p>\n\n\n\n<p>Every bite feels creamy, crisp, sweet, and refreshing all at once.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How I Serve It at Home<\/h2>\n\n\n\n<p>I serve this Goat Cheese and Beet Salad in so many ways depending on the occasion.<\/p>\n\n\n\n<p>Sometimes I pair it with roasted chicken for an easy family dinner. Other times I serve it beside grilled salmon for a healthy lunch.<\/p>\n\n\n\n<p>It also looks gorgeous on holiday tables because the colors feel vibrant and festive. During spring and summer gatherings, this salad always disappears quickly.<\/p>\n\n\n\n<p>When I want a cozy lunch for myself, I enjoy it with warm crusty bread and sparkling water. It feels simple but incredibly satisfying.<\/p>\n\n\n\n<p>For dinner parties, I arrange the salad on a large white platter because the deep ruby beets and creamy goat cheese look stunning together.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Storage, Reheating &amp; Make-Ahead Tips<\/h2>\n\n\n\n<p>This salad stores surprisingly well if prepared properly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Storage Tips<\/h3>\n\n\n\n<p>I keep the dressing separate until serving so the greens stay crisp.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Store roasted beets in the fridge for up to 4 days<\/li>\n\n\n\n<li>Keep vinaigrette refrigerated in a sealed jar<\/li>\n\n\n\n<li>Assemble the salad just before serving<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Make-Ahead Tips<\/h3>\n\n\n\n<p>I often roast the beets a day early to save time. Once the beets are cooked, the salad comes together in minutes.<\/p>\n\n\n\n<p>You can also prepare the dressing ahead and refrigerate it for several days.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reheating Tips<\/h3>\n\n\n\n<p>I usually serve this salad cold or slightly chilled, but sometimes I warm the roasted beets gently before adding them to the greens. Warm beets slightly soften the goat cheese and create an extra comforting texture.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_692fa1a2-5ca2-42a8-a5a7-cc1be8d6e6b4.png\" alt=\"\" class=\"wp-image-2445\" srcset=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_692fa1a2-5ca2-42a8-a5a7-cc1be8d6e6b4.png 1024w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_692fa1a2-5ca2-42a8-a5a7-cc1be8d6e6b4-300x300.png 300w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_692fa1a2-5ca2-42a8-a5a7-cc1be8d6e6b4-150x150.png 150w, https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_692fa1a2-5ca2-42a8-a5a7-cc1be8d6e6b4-768x768.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">100-Word Short Version<\/h2>\n\n\n\n<p>This Goat Cheese and Beet Salad combines sweet roasted beets, creamy goat cheese, crisp greens, crunchy candied walnuts, and a homemade balsamic vinaigrette for the perfect fresh and flavorful dish. I love making this salad because it feels elegant while staying incredibly simple to prepare. The earthy beets pair beautifully with tangy goat cheese, while the crunchy walnuts add delicious texture. It works perfectly as a light lunch, side dish, or dinner party starter. I often make the beets ahead of time so the salad comes together quickly whenever I need something colorful, healthy, and satisfying for my table.<\/p>\n\n\n<svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card\" href=\"https:\/\/marilynrecipes.com\/index.php\/2026\/05\/20\/goat-cheese-and-beet-salad\/print\/2420\/\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-2420-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><div id=\"tasty-recipes-2420\" data-tr-id=\"2420\" class=\"tasty-recipes tasty-recipes-2420 tasty-recipes-display tasty-recipes-has-image\">\n\n\n<h2 class=\"tasty-recipes-title\" data-tasty-recipes-customization=\"h2-color.color h2-transform.text-transform\">Goat Cheese and Beet Salad<\/h2>\n<div class=\"tasty-recipes-image-button-container\">\n\t\t\t<div class=\"tasty-recipes-image\">\n\t\t\t<img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/marilynrecipes.com\/wp-content\/uploads\/2026\/05\/RECIPES_Goat_cheese_and_beet_salad_on_a_rustic_ceramic_plate_ro_2c95dfef-3d46-4678-9a5a-2934d6934a6e-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Goat Cheese and Beet Salad\" data-pin-nopin=\"true\" \/>\t\t<\/div>\n\t\t<div class=\"tasty-recipes-buttons\">\n\t\t\t\t<div class=\"tasty-recipes-button-wrap\">\n\t\t\t\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print\" href=\"https:\/\/marilynrecipes.com\/index.php\/2026\/05\/20\/goat-cheese-and-beet-salad\/print\/2420\/\" target=\"_blank\" data-tasty-recipes-customization=\"\">\n\t\t\t<svg viewBox=\"0 0 24 24\" class=\"svg-print\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-print\"><\/use><\/svg>\n\t\tPrint Recipe<\/a>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n<\/div>\n\t<div class=\"tasty-recipes-rating\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t\t\t<p><svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<span class=\"tasty-recipes-ratings-buttons tasty-recipes-no-ratings-buttons\"\tdata-tr-default-rating=\"0\"\t>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"5\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t5 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"4\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t4 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"3\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t3 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"2\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t2 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"1\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t1 Star\t\t\t<\/span>\t\t<\/i>\t<\/span><\/span><\/p>\n\t\t\t\t\t\t\t<p><span data-tasty-recipes-customization=\"detail-label-color.color\" class=\"rating-label\">No reviews<\/span><\/p>\n\t\t\t<\/div>\n\n\n\t<div class=\"tasty-recipes-description\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t<p>This Goat Cheese and Beet Salad combines sweet roasted beets, creamy goat cheese, crunchy candied walnuts, and fresh mixed greens tossed with a homemade balsamic vinaigrette. I love serving this elegant yet easy salad for lunches, holiday dinners, and fresh family meals because every bite feels colorful, comforting, and full of flavor.<\/p>\n\t<\/div>\n\n\t<div class=\"tasty-recipes-details\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t<ul>\n\t\t\t\t\t\t\t<li class=\"author\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Author:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-author-name\">MARILYN<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"prep-time\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Prep Time:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-prep-time\">20 minutes<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"cook-time\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Cook Time:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-cook-time\">50 minutes<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"total-time\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Total Time:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-total-time\">1 hour 10 minutes<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"yield\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Yield:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-yield\"><span data-amount=\"4\">4<\/span> servings <span class=\"tasty-recipes-yield-scale\"><span data-amount=\"1\">1<\/span>x<\/span><\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"category\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Category:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-category\">Salad<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"method\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Method:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-method\">Roasting<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"cuisine\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Cuisine:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-cuisine\">American<\/span><\/li>\n\t\t\t\t\t\t\t<li class=\"diet\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Diet:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-diet\">Vegetarian<\/span><\/li>\n\t\t\t\t\t<\/ul>\n\t<\/div>\n\n\t<div class=\"tasty-recipes-ingredients\">\n\t\t<div class=\"tasty-recipes-ingredients-header\">\n\t\t\t<div class=\"tasty-recipes-ingredients-clipboard-container\">\n\t\t\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Ingredients<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"tasty-recipes-units-scale-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tasty-recipes-scale-container\">\n\t\t\t\t\t\t<span class=\"tasty-recipes-scale-label\">Scale<\/span>\n\t\t\t\t\t\t<button class=\"tasty-recipes-scale-button tasty-recipes-scale-button-active\" data-amount=\"1\" type=\"button\">1x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"2\" type=\"button\">2x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"3\" type=\"button\">3x<\/button>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"tasty-recipes-ingredients-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<ul>\n<li><span data-amount=\"4\">4<\/span> medium beets<\/li>\n<li><span data-amount=\"5\" data-unit=\"cup\">5 cups<\/span> mixed salad greens<\/li>\n<li><span data-amount=\"4\" data-unit=\"ounce\">4 ounces<\/span> goat cheese, crumbled<\/li>\n<li><span data-amount=\"0.25\">1\/4<\/span> red onion, thinly sliced<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"cup\">1\/2 cup<\/span> candied walnuts<\/li>\n<li><span data-amount=\"0.25\" data-unit=\"cup\">1\/4 cup<\/span> olive oil<\/li>\n<li><span data-amount=\"2\" data-unit=\"tablespoon\">2 tablespoons<\/span> balsamic vinegar<\/li>\n<li><span data-amount=\"1\" data-unit=\"teaspoon\">1 teaspoon<\/span> Dijon mustard<\/li>\n<li><span data-amount=\"1\" data-unit=\"teaspoon\">1 teaspoon<\/span> honey<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"teaspoon\">1\/2 teaspoon<\/span> salt<\/li>\n<li><span data-amount=\"0.25\" data-unit=\"teaspoon\">1\/4 teaspoon<\/span> black pepper<\/li>\n<\/ul>\n<!--INSIDE_INGREDIENTS-->\t\t<\/div>\n\t\t<div class=\"tasty-recipes-cook-mode\">\n\t<div class=\"tasty-recipes-cook-mode__container\">\n\t\t<label class=\"tasty-recipes-cook-mode__switch\">\n\t\t\t<input type=\"checkbox\" id=\"tasty_recipes_6a0d7eafec3bb_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__switch-slider tasty-recipes-cook-mode__switch-round\"\n\t\t\t\tdata-tasty-recipes-customization=\"button-color.background button-text-color.color\"><\/span>\n\t\t<\/label>\n\t\t<label for=\"tasty_recipes_6a0d7eafec3bb_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__label\">Cook Mode<\/span>\n\t\t\t<span class=\"tasty-recipes-cook-mode__helper\">\n\t\t\t\tPrevent your screen from going dark\t\t\t<\/span>\n\t\t<\/label>\n\t<\/div>\n<\/div>\n\t<\/div>\n\n\t<div class=\"tasty-recipe-instructions\">\n\t\t<div class=\"tasty-recipes-instructions-header\">\n\t\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Instructions<\/h3>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"tasty-recipes-instructions-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<ol>\n<li id=\"instruction-step-1\">Preheat the oven to 400\u00b0F.<\/li>\n<li id=\"instruction-step-2\">Wash and wrap each beet in foil.<\/li>\n<li id=\"instruction-step-3\">Roast the beets for 45 to 60 minutes until fork tender.<\/li>\n<li id=\"instruction-step-4\">Cool slightly, peel the skins, and slice the beets.<\/li>\n<li id=\"instruction-step-5\">Whisk olive oil, balsamic vinegar, Dijon mustard, honey, salt, and pepper together in a bowl.<\/li>\n<li id=\"instruction-step-6\">Arrange the mixed greens on a large serving platter.<\/li>\n<li id=\"instruction-step-7\">Add roasted beet slices evenly over the greens.<\/li>\n<li id=\"instruction-step-8\">Sprinkle goat cheese and red onion across the salad.<\/li>\n<li id=\"instruction-step-9\">Top with candied walnuts.<\/li>\n<li id=\"instruction-step-10\">Drizzle dressing over the salad just before serving.<\/li>\n<\/ol>\n\t\t<\/div>\n\t<\/div>\n\n\n\n\t<div class=\"tasty-recipes-notes\">\n\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Notes<\/h3>\n\t\t<div class=\"tasty-recipes-notes-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<p>Roast the beets ahead of time for easier preparation. Store the dressing separately until serving to keep the greens fresh and crisp. Add sliced pears or apples for extra sweetness. Toast the walnuts lightly for even deeper flavor.<\/p>\n\t\t<\/div>\n\t<\/div>\n\n\n\n\t<div class=\"tasty-recipes-nutrition\">\n\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Nutrition<\/h3>\n\t\t<ul>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Serving Size:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-serving-size\">1 serving<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Calories:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-calories\">280<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Sugar:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-sugar\">10g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Sodium:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-sodium\">320mg<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Fat:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-fat\">20g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Saturated Fat:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-saturated-fat\">6g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Unsaturated Fat:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-unsaturated-fat\">12g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Trans Fat:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-trans-fat\">0g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Carbohydrates:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-carbohydrates\">18g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Fiber:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-fiber\">5g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Protein:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-protein\">7g<\/span><\/li>\n\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" data-tasty-recipes-customization=\"body-color.color\">Cholesterol:<\/strong> <span data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-cholesterol\">15mg<\/span><\/li>\n\t\t\t\t\t<\/ul>\n\t<\/div>\n\n\n<footer class=\"tasty-recipes-entry-footer\">\n\t<h3 data-tasty-recipes-customization=\"footer-heading-color.color h3-transform.text-transform footer-heading.innerText\">Did you make this recipe?<\/h3>\n\t<div data-tasty-recipes-customization=\"footer-description-color.color footer-description.innerHTML\"><p>Share a photo and tag us \u2014 we can&#8217;t wait to see what you&#8217;ve made!<\/p><\/div>\n<\/footer>\n\n\n\n<script>\nwindow.trCommon={\"minRating\":6,\"ajaxurl\":\"https:\\\/\\\/marilynrecipes.com\\\/wp-admin\\\/admin-ajax.php\",\"ratingNonce\":\"\",\"postId\":2419};\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.smoothScroll = {\ninit() {\ndocument.addEventListener( 'click', ( e ) => {\nlet anchor = e.target;\nif ( anchor.tagName !== 'A' ) {\nanchor = anchor.closest( 'a.tasty-recipes-scrollto' );\n}\n\nif ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {\nreturn;\n}\n\nconst elementHref = anchor.getAttribute( 'href' );\nif ( ! elementHref ) {\nreturn;\n}\n\ne.preventDefault();\nthis.goToSelector( elementHref );\n});\n},\ngoToSelector( selector ) {\nconst element = document.querySelector( selector );\nif ( ! element ) {\nreturn;\n}\nelement.scrollIntoView( { behavior: 'smooth' } );\n}\n};\n\ndocument.addEventListener(\n'DOMContentLoaded',\n() => window.TastyRecipes.smoothScroll.init()\n);\n\n(function(){\n\n\nvar bothEquals = function( d1, d2, D ) {\nvar ret = 0;\nif (d1<=D) {\nret++;\n}\nif (d2<=D) {\nret++;\n}\nreturn ret === 2;\n};\n\nvar frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)\/(d1+d2);if(x===m){if(d1+d2<=D){d1+=d2;n1+=n2;d2=D+1}else if(d1>d2){d2=D+1;}else {d1=D+1;}break}else if(x<m){n2=n1+n2;d2=d1+d2}else{n1=n1+n2;d1=d1+d2}}}if(d1>D){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1\/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-A<5e-8){break;}B=1\/(B-A);P_2=P_1;P_1=P;Q_2=Q_1;Q_1=Q}if(Q>D){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P\/Q);return[q,sgn*P-q*Q,Q]};\n\n\nwindow.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(\"%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D\"));\n\nwindow.tastyRecipesFormatAmount = function(amount, el) {\nif ( parseFloat( amount ) === parseInt( amount ) ) {\nreturn amount;\n}\nvar roundType = 'frac';\nif (typeof el.dataset.amountShouldRound !== 'undefined') {\nif ('false' !== el.dataset.amountShouldRound) {\nif ( 'number' === el.dataset.amountShouldRound ) {\nroundType = 'number';\n} else if ('frac' === el.dataset.amountShouldRound) {\nroundType = 'frac';\n} else if ('vulgar' === el.dataset.amountShouldRound) {\nroundType = 'vulgar';\n} else {\nroundType = 'integer';\n}\n}\n}\nif ('number' === roundType) {\namount = Number.parseFloat(amount).toPrecision(2);\n} else if ('integer' === roundType) {\namount = Math.round(amount);\n} else if ('frac' === roundType || 'vulgar' === roundType) {\nvar denom = 8;\nif (typeof el.dataset.unit !== 'undefined') {\nvar unit = el.dataset.unit;\nif (['cups','cup','c'].includes(unit)) {\ndenom = 4;\nif (0.125 === amount) {\ndenom = 8;\n}\nif (\"0.1667\" === Number.parseFloat( amount ).toPrecision(4)) {\ndenom = 6;\n}\n}\nif (['tablespoons','tablespoon','tbsp'].includes(unit)) {\ndenom = 2;\n}\nif (['teaspoons','teaspoon','tsp'].includes(unit)) {\ndenom = 8;\n}\n}\nvar amountArray = frac.cont( amount, denom, true );\nvar newAmount = '';\nif ( amountArray[1] !== 0 ) {\nnewAmount = amountArray[1] + '\/' + amountArray[2];\nif ('vulgar' === roundType) {\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {\nnewAmount = vulgar;\n}\n});\n}\n}\nif ( newAmount ) {\nnewAmount = ' ' + newAmount;\n}\nif ( amountArray[0] ) {\nnewAmount = amountArray[0] + newAmount;\n}\namount = newAmount;\n}\nreturn amount;\n};\n\n\nwindow.tastyRecipesUpdatePrintLink = () => {\n\nconst printButton = document.querySelector( '.tasty-recipes-print-button' );\n\n\nif ( ! printButton ) {\nreturn;\n}\n\nconst printURL = new URL( printButton.href );\nconst searchParams = new URLSearchParams( printURL.search );\n\nconst unitButton = document.querySelector( '.tasty-recipes-convert-button-active' );\nconst scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );\n\nlet unit = '';\nlet scale = '';\n\nif ( unitButton ) {\nunit = unitButton.dataset.unitType;\nsearchParams.delete('unit');\nsearchParams.set( 'unit', unit );\n}\n\nif ( scaleButton ) {\nscale = scaleButton.dataset.amount;\nsearchParams.set( 'scale', scale );\n}\n\nconst paramString = searchParams.toString();\nconst newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString;\nconst printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );\n\nprintLinks.forEach( ( el ) => {\nel.href = newURL;\n});\n\nconst printButtons = document.querySelectorAll( '.tasty-recipes-print-button' );\nprintButtons.forEach( ( el ) => {\nel.href = newURL;\n});\n};\n\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\n\nif ( ! window.location.href.includes( '\/print\/' ) ) {\nreturn;\n}\n\nconst searchParams = new URLSearchParams( window.location.search );\n\nconst unit = searchParams.get( 'unit' );\nconst scale = searchParams.get( 'scale' );\n\nif ( unit && ( 'metric' === unit || 'usc' === unit ) ) {\ndocument.querySelector( '.tasty-recipes-convert-button[data-unit-type=\"' + unit + '\"]' ).click();\n}\n\nif ( scale && Number(scale) > 0 ) {\ndocument.querySelector( '.tasty-recipes-scale-button[data-amount=\"' + Number(scale) + '\"]' ).click();\n}\n});\n}());\n\n(function(){\nvar buttonClass = 'tasty-recipes-scale-button',\nbuttonActiveClass = 'tasty-recipes-scale-button-active',\nbuttons = document.querySelectorAll('.tasty-recipes-scale-button');\nif ( ! buttons ) {\nreturn;\n}\n\nbuttons.forEach(function(button){\nbutton.addEventListener('click', function(event){\nevent.preventDefault();\nvar recipe = event.target.closest('.tasty-recipes');\nif ( ! recipe ) {\nreturn;\n}\nvar otherButtons = recipe.querySelectorAll('.' + buttonClass);\notherButtons.forEach(function(bt){\nbt.classList.remove(buttonActiveClass);\n});\nbutton.classList.add(buttonActiveClass);\n\n\nvar scalables = recipe.querySelectorAll('span[data-amount]');\nvar buttonAmount = parseFloat( button.dataset.amount );\nscalables.forEach(function(scalable){\nif (typeof scalable.dataset.amountOriginalType === 'undefined'\n&& typeof scalable.dataset.nfOriginal === 'undefined') {\nif (-1 !== scalable.innerText.indexOf('\/')) {\nscalable.dataset.amountOriginalType = 'frac';\n}\nif (-1 !== scalable.innerText.indexOf('.')) {\nscalable.dataset.amountOriginalType = 'number';\n}\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (-1 !== scalable.innerText.indexOf(vulgar)) {\nscalable.dataset.amountOriginalType = 'vulgar';\n}\n});\nif (typeof scalable.dataset.amountOriginalType !== 'undefined') {\nscalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;\n}\n}\nvar amount = parseFloat( scalable.dataset.amount ) * buttonAmount;\namount = window.tastyRecipesFormatAmount(amount, scalable);\nif ( typeof scalable.dataset.unit !== 'undefined' ) {\nif ( ! scalable.classList.contains('nutrifox-quantity') ) {\nif ( ! scalable.classList.contains('nutrifox-second-quantity') ) {\namount += ' ' + scalable.dataset.unit;\n}\n}\n}\nscalable.innerText = amount;\n});\n\nvar nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]');\nnonNumerics.forEach(function(nonNumeric){\nvar indicator = nonNumeric.querySelector('span[data-non-numeric-label]');\nif ( indicator ) {\nnonNumeric.removeChild(indicator);\n}\nif ( 1 !== buttonAmount ) {\nindicator = document.createElement('span');\nindicator.setAttribute('data-non-numeric-label', true);\nvar text = document.createTextNode(' (x' + buttonAmount + ')');\nindicator.appendChild(text);\nnonNumeric.appendChild(indicator);\n}\n});\n\nwindow.tastyRecipesUpdatePrintLink();\n});\n});\n}());\n\nwindow.TastyRecipes = window.TastyRecipes || {};\nwindow.TastyRecipes.cookMode = {\nwakeLockApi: false,\nwakeLock: false,\ncookModeSelector: '.tasty-recipes-cook-mode',\ninit() {\nif (\"wakeLock\" in navigator && \"request\" in navigator.wakeLock) {\nthis.wakeLockApi = navigator.wakeLock;\n}\n\nconst cookModes = document.querySelectorAll(this.cookModeSelector);\n\nif (cookModes.length > 0) {\nfor (const cookMode of cookModes) {\nif (this.wakeLockApi) {\ncookMode.querySelector('input[type=\"checkbox\"]').addEventListener(\"change\", event => {\nthis.checkboxChange(event.target);\n}, false);\n} else {\ncookMode.style.display = \"none\";\n}\n}\n}\n},\ncheckboxChange(checkbox) {\nif (checkbox.checked) {\nthis.lock();\n} else {\nthis.unlock();\n}\n},\nsetCheckboxesState(state) {\nconst checkboxes = document.querySelectorAll(this.cookModeSelector + ' input[type=\"checkbox\"]');\nfor (const checkbox of checkboxes) {\ncheckbox.checked = state;\n}\n},\nasync lock() {\ntry {\nthis.wakeLock = await this.wakeLockApi.request(\"screen\");\nthis.wakeLock.addEventListener(\"release\", () => {\nthis.wakeLock = false;\nthis.setCheckboxesState(false);\n});\nthis.setCheckboxesState(true);\n} catch (error) {\nthis.setCheckboxesState(false);\n}\n},\nunlock() {\nif (this.wakeLock) {\nthis.wakeLock.release();\nthis.wakeLock = false;\n}\nthis.setCheckboxesState(false);\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\ndocument.addEventListener(\"DOMContentLoaded\", callback);\n}\n})(() => {\nwindow.TastyRecipes.cookMode.init();\n});\n\n\n\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.staticTooltip = {\nelement: null,\ntooltipElement: null,\ndeleting: false,\ninit( element ) {\nif ( this.deleting ) {\nreturn;\n}\nthis.element = element;\nthis.buildElements();\n},\ndestroy() {\nif ( ! this.tooltipElement || this.deleting ) {\nreturn;\n}\n\nthis.deleting = true;\nthis.tooltipElement.classList.remove( 'opened' );\n\nsetTimeout( () => {\nthis.tooltipElement.remove();\nthis.deleting = false;\n}, 500 );\n},\nbuildElements() {\nconst tooltipElement = document.createElement( 'div' );\ntooltipElement.classList.add( 'tasty-recipes-static-tooltip');\ntooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );\n\nconst currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\nif ( currentTooltipElement ) {\ndocument.body.replaceChild( tooltipElement, currentTooltipElement );\n} else {\ndocument.body.appendChild( tooltipElement );\n}\n\nthis.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\n},\nshow() {\nif ( ! this.tooltipElement ) {\nreturn;\n}\n\nconst tooltipTop = this.element.getBoundingClientRect().top\n+ window.scrollY\n- 10 \/\/ 10px offset.\n- this.tooltipElement.getBoundingClientRect().height;\nconst tooltipLeft = this.element.getBoundingClientRect().left\n- ( this.tooltipElement.getBoundingClientRect().width \/ 2 )\n+ ( this.element.getBoundingClientRect().width \/ 2 ) - 1;\nconst posLeft = Math.max( 10, tooltipLeft );\nthis.maybeRemoveTail( posLeft !== tooltipLeft );\n\nthis.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' );\nthis.tooltipElement.classList.add( 'opened' );\n\n},\nmaybeRemoveTail( removeTail ) {\nif ( removeTail ) {\nthis.tooltipElement.classList.add( 'tr-hide-tail' );\n} else {\nthis.tooltipElement.classList.remove( 'tr-hide-tail' );\n}\n},\nchangeMessage( message ) {\nif ( ! this.tooltipElement ) {\nreturn;\n}\nthis.tooltipElement.innerHTML = message;\n}\n};\n\nwindow.TastyRecipes.ajax = {\nsendPostRequest( url, data, success, failure ) {\nconst xhr = new XMLHttpRequest();\nxhr.open( 'POST', url, true );\nxhr.send( this.preparePostData( data ) );\n\nxhr.onreadystatechange = () => {\nif ( 4 !== xhr.readyState ) {\nreturn;\n}\nif ( xhr.status === 200 ) {\nsuccess( JSON.parse( xhr.responseText ) );\nreturn;\n}\n\nfailure( xhr );\n};\n\nxhr.onerror = () => {\nfailure( xhr );\n};\n},\npreparePostData( data ) {\nconst formData = new FormData();\n\nfor ( const key in data ) {\nformData.append( key, data[key] );\n}\nreturn formData;\n},\n};\n\nwindow.TastyRecipes.ratings = {\ndefaultRating: 0,\ncurrentRatingPercentage: 100,\nsavingRating: false,\ninit( minRating ) {\nthis.minRating = minRating;\n\nthis.formWatchRating();\nthis.closeTooltipWhenClickOutside();\nthis.addBodyClassBasedOnSelectedRating();\nthis.backwardCompFormRatingPosition();\n},\nformWatchRating() {\nconst ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');\nif ( ratings.length <= 0 ) {\nreturn;\n}\nfor ( const rating of ratings ) {\nrating.addEventListener( 'click', event => {\nevent.preventDefault();\nthis.defaultRating = event.target.closest( '.checked' ).dataset.rating;\nthis.setCheckedStar( event.target );\nthis.maybeSendRating( this.defaultRating, event.target );\nthis.setRatingInForm( this.defaultRating );\n} );\n}\n},\ncloseTooltipWhenClickOutside() {\nwindow.addEventListener( 'click', e => {\n\/\/ Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.\nif ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {\nreturn;\n}\n\nwindow.TastyRecipes.staticTooltip.destroy();\n} );\n},\n setRatingInForm( rating ) {\nconst ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value=\"' + rating + '\"]' );\nif ( ! ratingInput ) {\nreturn;\n}\nratingInput.click();\n},\naddBodyClassBasedOnSelectedRating() {\nconst ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );\nif ( ! ratingInputs ) {\nreturn;\n}\nfor ( const ratingInput of ratingInputs ) {\nratingInput.addEventListener( 'click', currentEvent => {\nconst selectedRating = currentEvent.target.getAttribute( 'value' );\nthis.handleBodyClassByRating( selectedRating );\nthis.toggleCommentTextareaRequired( selectedRating );\n} );\n}\n},\nhandleBodyClassByRating( rating ) {\nif ( rating < this.minRating ) {\ndocument.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );\nreturn;\n}\ndocument.body.classList.add( 'tasty-recipes-selected-minimum-rating' );\n},\ntoggleCommentTextareaRequired( rating ) {\nconst commentTextarea = document.getElementById( 'comment' );\nif ( ! commentTextarea ) {\nreturn;\n}\n\nif ( rating < this.minRating ) {\ncommentTextarea.setAttribute( 'required', '' );\nreturn;\n}\n\ncommentTextarea.removeAttribute( 'required' );\n},\nmaybeSendRating( rating, element ) {\nif ( this.savingRating === rating ) {\nreturn;\n}\n\nthis.savingRating = rating;\nwindow.TastyRecipes.staticTooltip.init( element );\n\nconst recipeCardElement = element.closest( '.tasty-recipes' );\nif ( ! recipeCardElement ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nreturn;\n}\n\nwindow.TastyRecipes.ajax.sendPostRequest(\nwindow.trCommon.ajaxurl,\n{\naction: 'tasty_recipes_save_rating',\nrating,\nnonce: window.trCommon.ratingNonce,\npost_id: window.trCommon.postId,\nrecipe_id: recipeCardElement.dataset.trId,\n},\n( response ) => {\nwindow.TastyRecipes.staticTooltip.changeMessage( response.data.message );\nwindow.TastyRecipes.staticTooltip.show();\nthis.updateAverageText( response.data, recipeCardElement );\nthis.maybeFillCommentForm( response.data );\n\n\/\/ Hide the tooltip after 5 seconds.\nsetTimeout( () => {\nthis.maybeResetTooltip( recipeCardElement, response.data, rating );\n}, 5000 );\n},\n() => {\nthis.resetTooltip( recipeCardElement );\n}\n);\n},\nupdateAverageText( data, recipeCardElement ) {\nif ( ! data.average ) {\nreturn;\n}\nthis.setRatingPercent( data );\n\nif ( ! data.count ) {\nreturn;\n}\n\nconst quickLink = document.querySelector( '.tasty-recipes-rating-link' );\nif ( quickLink ) {\nthis.setTextInContainer( quickLink, data );\nthis.setPartialStar( quickLink );\n}\n\nconst cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\ncardStars.dataset.trDefaultRating = data.average;\nthis.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );\n},\nsetTextInContainer( container, data ) {\nif ( ! container ) {\nreturn;\n}\n\nif ( data.label ) {\nconst ratingLabelElement = container.querySelector( '.rating-label' );\nif ( ratingLabelElement ) {\nratingLabelElement.innerHTML = data.label;\n}\nreturn;\n}\n\nconst averageElement = container.querySelector( '.average' );\nif ( averageElement ) {\naverageElement.textContent = data.average;\n}\n\nconst countElement = container.querySelector( '.count' );\nif ( countElement ) {\ncountElement.textContent = data.count;\n}\n},\nsetPartialStar( container ) {\nconst highestStar = container.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( highestStar ) {\nhighestStar.dataset.trClip = this.currentRatingPercentage;\n}\n},\nsetRatingPercent( data ) {\nthis.defaultRating = data.average.toFixed( 1 );\nconst parts = data.average.toFixed( 2 ).toString().split( '.' );\nthis.currentRatingPercentage = parts[1] ? parts[1] : 100;\nif ( this.currentRatingPercentage === '00' ) {\nthis.currentRatingPercentage = 100;\n}\n},\nsetCheckedStar( target ) {\nconst cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( selectedRatingElement ) {\ndelete selectedRatingElement.dataset.trChecked;\n}\n\nconst thisStar = target.closest( '.tasty-recipes-rating' );\nthisStar.dataset.trChecked = 1;\nthisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;\n},\nmaybeFillCommentForm( data ) {\nif ( ! data.comment || ! data.comment.content ) {\nreturn;\n}\n\nconst commentForm = document.querySelector( '#commentform' );\nif ( ! commentForm ) {\nreturn;\n}\n\nconst commentBox = commentForm.querySelector( '[name=comment]' );\nif ( ! commentBox || commentBox.value ) {\nreturn;\n}\n\n\/\/ Add comment details for editing.\ncommentBox.innerHTML = data.comment.content;\nif ( data.comment.name ) {\ncommentForm.querySelector( '[name=author]' ).value = data.comment.name;\ncommentForm.querySelector( '[name=email]' ).value = data.comment.email;\n}\n},\nmaybeResetTooltip( recipeCardElement, data, rating ) {\nif ( this.savingRating === rating ) {\nthis.resetTooltip( recipeCardElement, data );\n}\n},\nresetTooltip( recipeCardElement, data ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nthis.savingRating = false;\n\n\/\/ Reset the default rating.\nconst cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\nif ( cardRatingContainer ) {\nthis.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;\ncardRatingContainer.dataset.trDefaultRating = this.defaultRating;\n\nthis.resetSelectedStar( cardRatingContainer, data );\n}\n},\nresetSelectedStar( cardRatingContainer ) {\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( selectedRatingElement ) {\nselectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage;\nselectedRatingElement.parentNode.dataset.trChecked = 1;\n}\n\nconst previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( previousSelectedElement ) {\nconst currentSelectedRating = previousSelectedElement.querySelector('[data-rating]');\nif ( currentSelectedRating !== selectedRatingElement ) {\ndelete previousSelectedElement.dataset.trChecked;\n}\n}\n},\nbackwardCompFormRatingPosition() {\nconst ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );\nif ( ! ratingsButtons ) {\nreturn;\n}\nconst ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);\nif ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {\nratingsButtons.style.direction = 'rtl';\n}\n\nif ( typeof tastyRecipesRating !== 'undefined' ) {\n\/\/ Select the rating that was previously selected in admin.\nratingsButtons.querySelector( '.tasty-recipes-rating[value=\"' + tastyRecipesRating + '\"]' ).checked = true;\n}\n\nconst ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' );\nfor (const ratingSpan of ratingSpans) {\nratingSpan.addEventListener( 'click', event => {\nif ( ratingSpan === event.target ) {\nreturn;\n}\nratingSpan.previousElementSibling.click();\n} );\n}\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\nwindow.addEventListener( 'load', callback );\n}\n})(() => {\nwindow.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );\n});\n<\/script><\/div>\n\n\n<h1 class=\"wp-block-heading\">Recipe Card<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\u23f1\ufe0f Time<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prep Time: 20 minutes<\/li>\n\n\n\n<li>Cook Time: 50 minutes<\/li>\n\n\n\n<li>Total Time: 1 hour 10 minutes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\uded2 Ingredients<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>4 medium beets<\/li>\n\n\n\n<li>5 cups mixed salad greens<\/li>\n\n\n\n<li>4 ounces goat cheese, crumbled<\/li>\n\n\n\n<li>1\/4 red onion, thinly sliced<\/li>\n\n\n\n<li>1\/2 cup candied walnuts<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">For the Dressing<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1\/4 cup olive oil<\/li>\n\n\n\n<li>2 tablespoons balsamic vinegar<\/li>\n\n\n\n<li>1 teaspoon Dijon mustard<\/li>\n\n\n\n<li>1 teaspoon honey<\/li>\n\n\n\n<li>1\/2 teaspoon salt<\/li>\n\n\n\n<li>1\/4 teaspoon black pepper<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udc69\u200d\ud83c\udf73 Instructions<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Preheat the oven to 400\u00b0F.<\/li>\n\n\n\n<li>Wash the beets thoroughly and wrap them individually in foil.<\/li>\n\n\n\n<li>Roast the beets for 45 to 60 minutes until tender.<\/li>\n\n\n\n<li>Let the beets cool slightly, then peel and slice them.<\/li>\n\n\n\n<li>In a bowl, whisk together olive oil, balsamic vinegar, Dijon mustard, honey, salt, and pepper.<\/li>\n\n\n\n<li>Arrange mixed greens on a serving platter.<\/li>\n\n\n\n<li>Add sliced beets evenly across the greens.<\/li>\n\n\n\n<li>Sprinkle goat cheese and red onion over the salad.<\/li>\n\n\n\n<li>Top with candied walnuts.<\/li>\n\n\n\n<li>Drizzle the dressing over the salad before serving.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udcdd Notes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Roast the beets ahead of time for quicker preparation.<\/li>\n\n\n\n<li>Add sliced pears or apples for extra sweetness.<\/li>\n\n\n\n<li>Toast the walnuts lightly for deeper flavor.<\/li>\n\n\n\n<li>Store dressing separately until serving.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udf7d\ufe0f Nutrition<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Calories: 280 per serving<\/li>\n\n\n\n<li>Protein: 7g<\/li>\n\n\n\n<li>Carbohydrates: 18g<\/li>\n\n\n\n<li>Fat: 20g<\/li>\n\n\n\n<li>Fiber: 5g<\/li>\n\n\n\n<li>Sugar: 10g<\/li>\n\n\n\n<li>Sodium: 320mg<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>This Goat Cheese and Beet Salad always reminds me that simple ingredients can create something truly special. I love how colorful, fresh, and comforting it feels every single time I make it. The creamy goat cheese, sweet roasted beets, crunchy walnuts, and tangy dressing create a balance that never gets boring.<\/p>\n\n\n\n<p>Whenever I serve this salad, it brings everyone to the table with smiles and empty plates by the end of the meal. That\u2019s exactly the kind of recipe I love most \u2014 easy enough for everyday cooking but beautiful enough for special moments with family and friends.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There\u2019s something so comforting about making a colorful salad that looks fancy but feels completely effortless once it comes together. This Goat Cheese and Beet Salad has become one of &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Goat Cheese and Beet Salad A Beautiful, Fresh Salad Full of Comfort and Flavor\" class=\"read-more button\" href=\"https:\/\/marilynrecipes.com\/index.php\/2026\/05\/20\/goat-cheese-and-beet-salad\/#more-2419\" aria-label=\"Read more about Goat Cheese and Beet Salad A Beautiful, Fresh Salad Full of Comfort and Flavor\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":2446,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-2419","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends-recipes","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/posts\/2419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/comments?post=2419"}],"version-history":[{"count":1,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/posts\/2419\/revisions"}],"predecessor-version":[{"id":2447,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/posts\/2419\/revisions\/2447"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/media\/2446"}],"wp:attachment":[{"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/media?parent=2419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/categories?post=2419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marilynrecipes.com\/index.php\/wp-json\/wp\/v2\/tags?post=2419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}