{"id":2,"date":"2018-10-02T19:28:27","date_gmt":"2018-10-02T19:28:27","guid":{"rendered":"http:\/\/thecaptainscottagebrixham.com\/?page_id=2"},"modified":"2025-05-10T09:05:30","modified_gmt":"2025-05-10T09:05:30","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/thecaptainscottagebrixham.com\/?page_id=2","title":{"rendered":"Recommended places to go for Food &#038; Drink in Brixham"},"content":{"rendered":"\n<p><span style=\"color: #666666; font-size: 1.125rem; font-style: italic;\">Don\u2019t tell Rick Stein, but we think that Brixham has started becoming a bit of a foodie destination on the quiet over the last few years. <\/span><\/p>\n\n\n\n<p><span style=\"color: #666666; font-size: 1.125rem; font-style: italic;\">If you are looking for a restaurant guide, or recommendations as to the best places to eat and drink in Brixham then the following list is by no means exhaustive, but it does cover most of our favourite eating and drinking places in the town! <\/span><\/p>\n\n\n\n<p><a href=\"https:\/\/therockfish.co.uk\/pages\/brixham-seafood-restaurant\"><strong>Rockfish<\/strong><\/a> \u2013 at end of harbour (and visible from our windows!) has to be near the top of any list, with fabulous fish and great views over the port so you can see tomorrows meal being unloaded as you eat. They also have a good take-away chippie, and (now) a fishmongers.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.facebook.com\/simplyfish1\"><strong>Simply Fish<\/strong> <\/a>has (we think) the best take-away fish and chips in town, and a proper sit-down restaurant with a mostly fish-based menu. It\u2019s our preferred takeaway , the restaurant just does walk-ups. As well as the usuals, their monkfish and prawn curry is great, and their curry sauce is our go-to \u2018side\u2019.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.shoalsbrixham.co.uk\/\"><strong>Shoals<\/strong> <\/a>(a 15 minute walk along the coast by the lido) is a tiny, but really high quality restaurant which also has tables outside for lunch or a drink and is owned by the Perkes family of legendary Brixham fisherfolk. Amazing views across Torbay as you eat, and amazing food too, as you can see from these photos from summer 2022.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><\/figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"822\" height=\"1024\" data-id=\"428\" src=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/shoals3-822x1024.jpg\" alt=\"Shoals view 2022\" class=\"wp-image-428\" style=\"width:322px;height:auto\" srcset=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/shoals3-822x1024.jpg 822w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/shoals3-241x300.jpg 241w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/shoals3-768x957.jpg 768w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/shoals3-1233x1536.jpg 1233w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/shoals3.jpg 1440w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"426\" src=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_5482-768x1024.jpeg\" alt=\"Torbay Sole\" class=\"wp-image-426\" style=\"width:357px;height:auto\" srcset=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_5482-768x1024.jpeg 768w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_5482-225x300.jpeg 225w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_5482-1152x1536.jpeg 1152w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_5482.jpeg 1536w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>You\u2019ll definitely need to book &#8211; but it&#8217;s absolutely worth doing so!<\/p>\n\n\n\n<p><strong>Breakwater Bistro<\/strong> (by the beach) is a venue which had a major refurb in spring 2023, and is a great place to have a cream tea with a view or to grab a drink and sit on the beach. Plans to massively redevelop the site (which were causing huge controversy among tourists and locals alike) have now been abandoned and the place has new (local) owners once again, menaing the beach should be able to continue to be enjoyed as it currently is for many years to come!&nbsp; &nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"156\" src=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_3255-1-e1663272957849-300x156.jpg\" alt=\"The Breakwater Cafe\" class=\"wp-image-431\" style=\"width:446px;height:auto\" srcset=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_3255-1-e1663272957849-300x156.jpg 300w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_3255-1-e1663272957849-1024x531.jpg 1024w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_3255-1-e1663272957849-768x398.jpg 768w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_3255-1-e1663272957849.jpg 1429w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/www.alberobrixham.co.uk\/\"><strong>Albero<\/strong><\/a> \u2013 One of our real favourites. Don&#8217;t make the mistake of thinking this is just a &#8220;pizza+&#8221; restaurant, they have great fish and lots of daily specials &#8211; so there is some real &#8220;cheffing&#8221; going on in their kitchen, not just &#8220;cooking&#8221; to a limited menu.  <\/p>\n\n\n\n<p>They also have absolutely nailed the &#8220;outdoor seating that&#8217;s warm&#8221; conundrum too, meaning you can sit outside even when the weather is not quite warm enough to do so elsewhere. They still do great pizzas as well, plus some tapas items too, but the star attraction is the top notch seafood and daily specials chalked on their menu board too.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.guardhousecafe.com\/\"><strong>The Guardhouse at Berry Head<\/strong><\/a> \u2013 This is \u2018<em><strong>the<\/strong><\/em>\u2019 morning brunch cafe for us up on Berry Head in the old fort. When you take a walk up there make sure you have left room for their bacon sandwiches and\/or cakes!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"225\" src=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2947-300x225.jpeg\" alt=\"Berry Head\" class=\"wp-image-432\" style=\"width:370px;height:auto\" srcset=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2947-300x225.jpeg 300w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2947-1024x768.jpeg 1024w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2947-768x576.jpeg 768w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2947-1536x1152.jpeg 1536w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2947.jpeg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n<\/div>\n\n\n<p><a href=\"https:\/\/theprincewilliam.co.uk\/\"><strong>The Prince William<\/strong> <\/a>\u2013 the big &#8220;outside&#8221; pub by the Marina is great on a sunny day, and has recently uipped its menu game too. It&#8217;s owned by the same group who also run Liberty, The Mermaid, Olive and the Bistro too &#8211; so if you visit a few of them on your holiday you might recognise some of the same staff over the course of the week.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.libertybrixham.co.uk\/\"><strong>Liberty<\/strong><\/a> \u2013 An eclectic mix of cocktail and drinks in the evening, speciality teas and cakes in the day \u2013 and very non-Devon interior decor to match. It has outside tables across the road under the market awning in the summer too.<\/p>\n\n\n\n<p><strong>La Petit Maison<\/strong> is their more than decent French-style caf\u00e9 and bistro that also does breakfasts, Liberty offers an eclectic mix of cocktail and drinks in the evening as well as speciality teas and cakes in the day \u2013 and very non-Devon interior decor to match with outside tables across the road under the market awning in the summer too. <\/p>\n\n\n\n<p><strong>Olive<\/strong> is the Mediterranean restaurant in the pack, but can be a bit hit-and-miss in our experience, and<strong> The Mermaid<\/strong> next door is a big modern bar overlooking the harbour&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/www.portespresso.com\/\"><strong>Port Expresso<\/strong><\/a> (on Middle Street) is an artisan coffee place that has branched out into brunches, home to our favourite bacon sandwiches in Brixham<\/p>\n\n\n\n<p><a href=\"https:\/\/oldmarkethousebrixham.co.uk\/\"><strong>The Market House<\/strong><\/a> \u2013 the large pub\/gastro pub on the harbour opposite the pirate ship, with plenty of outside space. Always a safe choice, even though it\u2019s got a hint of brewery-owned \u2018chain\u2019 pub about it \u2013 the other advantage is that you can see how busy it is from the front windows of our house !<\/p>\n\n\n\n<p><a href=\"https:\/\/www.themanorpub.com\/\"><strong>The Manor<\/strong><\/a> just up from Middle Street is a top choice pub in Brixham, deceptively large and with both inside and outside space to sit and have a drink or two.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.wineloftbrixham.co.uk\/s\/shop\"><strong>The Wine Loft<\/strong><\/a> is both a remarkably well-stocked independent wine shop and a contemporary bar for a lunchtime\/afternoon drink and a plate of tapas-style food \u2013 they close around 6pm each day.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.tripadvisor.co.uk\/Restaurant_Review-g551630-d19917883-Reviews-The_larder-Brixham_English_Riviera_Devon_England.html\"><strong>The Larder<\/strong><\/a> on Bolton Street (just past the &#8216;Spoons) is also good for brunch, and can go toe-to-toe with Port Expresso for top coffee any day of the week.<\/p>\n\n\n\n<p><a href=\"https:\/\/en-gb.facebook.com\/blueanchorbrixham\/\"><strong>The Blue Anchor<\/strong><\/a> is a good proper Devon pub, one of the most pirate-ey places in the town and has live music on most nights of the week as well.<\/p>\n\n\n\n<p><a href=\"http:\/\/www.newquayinnbrixham.co.uk\/\"><strong>The New Quay Inn<\/strong><\/a> is nice and cosy, and is usually one of the last pubs in Brixham to close, meaning you can pop in for a nightcap before braving Temperance Steps. up to the house.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.facebook.com\/fishcombecovecafe\/\"><strong>Fishcombe Cove Caf\u00e9<\/strong><\/a> on the (pebbly) each in Fishcombe cove is a great spot to make an (early) stop on a coastal walk towards Paignton. Over the summer make sure to check out their Facebook page for any special evening events when they are open until sunset as well.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.tripadvisor.com\/Restaurant_Review-g551630-d23393314-Reviews-At_Thai-Brixham_English_Riviera_Devon_England.html\" title=\"\"><strong>At Thai<\/strong><\/a> is an excellent Malaysian and Thai restaurant, so if you feel the need for a change from fish, chips and pasties during your stay we&#8217;d recommend booking here well in advance as it is always fully booked at weekends.<\/p>\n\n\n\n<p><a href=\"https:\/\/en-gb.facebook.com\/brixhammiddlestreet\/\"><strong>The Crafty Cwtch<\/strong><\/a> tea room on Middle Street does a nice line in scones, jam and clotted cream &#8211; and they do it as a takeaway too if you fancy tucking in back at the house while taking in the view.<\/p>\n\n\n\n<p>For Sunday Lunch you are looking at either the <strong>Berry Head Hotel<\/strong> carvery, the <strong>Golden Lion<\/strong> or the <strong>Bell Inn<\/strong> up in Higher Brixham &#8211; all three have excellent reputations and certainly do deliver on the traditional Sunday fare front.<\/p>\n\n\n\n<p>If you&#8217;re looking for other things to do, we also have <a href=\"https:\/\/thecaptainscottagebrixham.com\/?page_id=59\">a guide to the local area<\/a> as well on this site.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2999-1024x768.jpeg\" alt=\"\" class=\"wp-image-449\" srcset=\"https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2999-1024x768.jpeg 1024w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2999-300x225.jpeg 300w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2999-768x576.jpeg 768w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2999-1536x1152.jpeg 1536w, https:\/\/thecaptainscottagebrixham.com\/wp-content\/uploads\/2022\/09\/IMG_2999.jpeg 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">View of the Inner Harbour from just outside Albero and the Blue Anchor<\/figcaption><\/figure>\n\n\n\n<!--\n  Copyright 2023 Google LLC\n\n  Licensed under the Apache License, Version 2.0 (the \"License\");\n  you may not use this file except in compliance with the License.\n  You may obtain a copy of the License at\n\n      https:\/\/www.apache.org\/licenses\/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the License is distributed on an \"AS IS\" BASIS,\n  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  See the License for the specific language governing permissions and\n  limitations under the License.\n-->\n<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <title>Neighborhood Discovery<\/title>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n    <script src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/handlebars\/4.7.7\/handlebars.min.js\"><\/script>\n    <link href=\"https:\/\/fonts.googleapis.com\/css?family=Roboto\" rel=\"stylesheet\"\/>\n    <link href=\"https:\/\/fonts.googleapis.com\/icon?family=Material+Icons\" rel=\"stylesheet\"\/>\n    <style>\n      html, body {\n        height: 100%;\n        margin: 0;\n        padding: 0;\n      }\n\n      .neighborhood-discovery {\n        box-sizing: border-box;\n        font-family: \"Roboto\", sans-serif;\n        height: 900;\n        position: relative;\n        width: 900;\n      }\n\n      .neighborhood-discovery a {\n        color: #4285f4;\n        text-decoration: none;\n      }\n\n      .neighborhood-discovery button {\n        background: none;\n        border: none;\n        color: inherit;\n        cursor: pointer;\n        font: inherit;\n        font-size: inherit;\n        padding: 0;\n      }\n\n      .neighborhood-discovery .info {\n        color: #555;\n        font-size: 0.9em;\n        margin-top: 0.3em;\n      }\n\n      .neighborhood-discovery .panel {\n        background: white;\n        bottom: 0;\n        box-sizing: border-box;\n        left: 0;\n        overflow-y: auto;\n        position: absolute;\n        top: 0;\n        width: 20em;\n      }\n\n      .neighborhood-discovery .panel.no-scroll {\n        overflow-y: hidden;\n      }\n\n      .neighborhood-discovery .photo {\n        background-color: #dadce0;\n        background-position: center;\n        background-size: cover;\n        border-radius: 0.3em;\n        cursor: pointer;\n      }\n\n      .neighborhood-discovery .navbar {\n        background: white;\n        position: sticky;\n        top: 0;\n        z-index: 2;\n      }\n\n      .neighborhood-discovery .right {\n        float: right;\n      }\n\n      .neighborhood-discovery .star-icon {\n        filter: invert(88%) sepia(60%) saturate(2073%) hue-rotate(318deg) brightness(93%) contrast(104%);\n        height: 1.2em;\n        margin-right: -0.3em;\n        margin-top: -0.08em;\n        vertical-align: top;\n        width: 1.2em;\n      }\n\n      .neighborhood-discovery .star-icon:last-child {\n        margin-right: 0.2em;\n      }\n\n      .neighborhood-discovery .travel-icon {\n        height: 1.2em;\n        margin-top: -0.08em;\n        vertical-align: top;\n      }\n\n      .neighborhood-discovery .map {\n        bottom: 0;\n        left: 20em;\n        position: absolute;\n        right: 0;\n        top: 0;\n      }\n\n      @media only screen and (max-width: 640px) {\n        .neighborhood-discovery .panel {\n          right: 0;\n          top: 50%;\n          width: unset;\n        }\n\n        .neighborhood-discovery .map {\n          bottom: 50%;\n          left: 0;\n        }\n      }\n\n      \/* --------------------------- PLACES PANEL --------------------------- *\/\n\n      .neighborhood-discovery .places-panel {\n        box-shadow: 0 0 10px rgb(60 64 67 \/ 28%);\n        z-index: 1;\n      }\n\n      .neighborhood-discovery .places-panel header {\n        padding: 0.5em;\n      }\n\n      .neighborhood-discovery .search-input input {\n        border: 1px solid rgba(0, 0, 0, 0.2);\n        border-radius: 0.3em;\n        box-sizing: border-box;\n        font-size: 1em;\n        height: 2.2em;\n        padding: 0 2.5em 0 1em;\n        width: 100%;\n      }\n\n      .neighborhood-discovery .search-input button {\n        position: absolute;\n        right: 0.8em;\n        top: 0.8em;\n      }\n\n      .neighborhood-discovery .show-more-button {\n        bottom: 0.5em;\n        display: none;\n        left: 28%;\n        line-height: 1.5em;\n        padding: 0.6em;\n        position: relative;\n        width: 44%;\n      }\n\n      .neighborhood-discovery .show-more-button.sticky {\n        background: white;\n        border-radius: 1.5em;\n        box-shadow: 0 4px 10px rgb(60 64 67 \/ 28%);\n        position: sticky;\n        z-index: 2;\n      }\n\n      .neighborhood-discovery .show-more-button:disabled {\n        opacity: 0.5;\n      }\n\n      .neighborhood-discovery .place-results-list {\n        list-style-type: none;\n        margin: 0;\n        padding: 0;\n      }\n\n      .neighborhood-discovery .place-result {\n        border-top: 1px solid rgba(0, 0, 0, 0.12);\n        cursor: pointer;\n        display: flex;\n        padding: 0.8em;\n      }\n\n      .neighborhood-discovery .place-result .text {\n        flex-grow: 1;\n      }\n\n      .neighborhood-discovery .place-result .name {\n        font-size: 1em;\n        font-weight: 500;\n        text-align: left;\n      }\n\n      .neighborhood-discovery .place-result .photo {\n        flex: 0 0 4em;\n        height: 4em;\n        margin-left: 0.8em;\n      }\n\n      \/* -------------------------- DETAILS PANEL --------------------------- *\/\n\n      .neighborhood-discovery .details-panel {\n        display: none;\n        z-index: 20;\n      }\n\n      .neighborhood-discovery .details-panel .back-button {\n        color: #4285f4;\n        padding: 0.9em;\n      }\n\n      .neighborhood-discovery .details-panel .back-button .icon {\n        \/* Match link color #4285f4 *\/\n        filter: invert(47%) sepia(71%) saturate(2372%) hue-rotate(200deg) brightness(97%) contrast(98%);\n        height: 1.2em;\n        width: 1.2em;\n        vertical-align: bottom;\n      }\n\n      .neighborhood-discovery .details-panel header {\n        padding: 0.9em;\n      }\n\n      .neighborhood-discovery .details-panel h2 {\n        font-size: 1.4em;\n        font-weight: 400;\n        margin: 0;\n      }\n\n      .neighborhood-discovery .details-panel .section {\n        border-top: 1px solid rgba(0, 0, 0, 0.12);\n        padding: 0.9em;\n      }\n\n      .neighborhood-discovery .details-panel .contact {\n        align-items: center;\n        display: flex;\n        font-size: 0.9em;\n        margin: 0.8em 0;\n      }\n\n      .neighborhood-discovery .details-panel .contact .icon {\n        width: 1.5em;\n        height: 1.5em;\n      }\n\n      .neighborhood-discovery .details-panel .contact .text {\n        margin-left: 1em;\n      }\n\n      .neighborhood-discovery .details-panel .contact .weekday {\n        display: inline-block;\n        width: 5em;\n      }\n\n      .neighborhood-discovery .details-panel .photos {\n        text-align: center;\n      }\n\n      .neighborhood-discovery .details-panel .photo {\n        display: inline-block;\n        height: 5.5em;\n        width: 5.5em;\n      }\n\n      .neighborhood-discovery .details-panel .review {\n        margin-top: 1.2em;\n      }\n\n      .neighborhood-discovery .details-panel .review .reviewer-avatar {\n        background-repeat: no-repeat;\n        background-size: cover;\n        float: left;\n        height: 1.8em;\n        margin-right: 0.8em;\n        width: 1.8em;\n      }\n\n      .neighborhood-discovery .details-panel .review .reviewer-name {\n        color: #202124;\n        font-weight: 500;\n        line-height: 1.8em;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n      }\n\n      .neighborhood-discovery .details-panel .review .rating {\n        margin: 0.5em 0;\n      }\n\n      .neighborhood-discovery .details-panel .attribution {\n        color: #777;\n        margin: 0;\n        font-size: 0.8em;\n        font-style: italic;\n      }\n\n      \/* --------------------------- PHOTO MODAL ---------------------------- *\/\n\n      .neighborhood-discovery .photo-modal {\n        background: rgba(0, 0, 0, 0.8);\n        display: none;\n        height: 100%;\n        position: fixed;\n        width: 100%;\n        z-index: 100;\n      }\n\n      .neighborhood-discovery .photo-modal > img {\n        bottom: 0;\n        left: 0;\n        margin: auto;\n        max-height: 100%;\n        max-width: 100%;\n        position: absolute;\n        right: 0;\n        top: 0;\n      }\n\n      .neighborhood-discovery .photo-modal > div {\n        border-radius: 0.4em;\n        color: white;\n        background: rgba(0, 0, 0, 0.6);\n        margin: 1em;\n        padding: 0.9em;\n        position: absolute;\n      }\n\n      .neighborhood-discovery .photo-modal .back-button .icon {\n        filter: brightness(0) invert(1);\n        margin: 0.4em 0.6em 0 0;\n      }\n\n      .neighborhood-discovery .photo-modal .photo-text {\n        float: right;\n      }\n\n      .neighborhood-discovery .photo-modal .photo-attrs {\n        font-size: 0.8em;\n        margin-top: 0.3em;\n      }\n    <\/style>\n    <script>\n      'use strict';\n\n      \/** Hides a DOM element and optionally focuses on focusEl. *\/\n      function hideElement(el, focusEl) {\n        el.style.display = 'none';\n        if (focusEl) focusEl.focus();\n      }\n\n      \/** Shows a DOM element that has been hidden and optionally focuses on focusEl. *\/\n      function showElement(el, focusEl) {\n        el.style.display = 'block';\n        if (focusEl) focusEl.focus();\n      }\n\n      \/** Determines if a DOM element contains content that cannot be scrolled into view. *\/\n      function hasHiddenContent(el) {\n        const noscroll = window.getComputedStyle(el).overflowY.includes('hidden');\n        return noscroll && el.scrollHeight > el.clientHeight;\n      }\n\n      \/** Format a Place Type string by capitalizing and replacing underscores with spaces. *\/\n      function formatPlaceType(str) {\n        const capitalized = str.charAt(0).toUpperCase() + str.slice(1);\n        return capitalized.replace(\/_\/g, ' ');\n      }\n\n      \/** Initializes an array of zeros with the given size. *\/\n      function initArray(arraySize) {\n        const array = [];\n        while (array.length < arraySize) {\n          array.push(0);\n        }\n        return array;\n      }\n\n      \/** Assigns star icons to an object given its rating (out of 5). *\/\n      function addStarIcons(obj) {\n        if (!obj.rating) return;\n        const starsOutOfTen = Math.round(2 * obj.rating);\n        const fullStars = Math.floor(starsOutOfTen \/ 2);\n        const halfStars = fullStars !== starsOutOfTen \/ 2 ? 1 : 0;\n        const emptyStars = 5 - fullStars - halfStars;\n\n        \/\/ Express stars as arrays to make iterating in Handlebars easy.\n        obj.fullStarIcons = initArray(fullStars);\n        obj.halfStarIcons = initArray(halfStars);\n        obj.emptyStarIcons = initArray(emptyStars);\n      }\n\n      \/**\n       * Constructs an array of opening hours by day from a PlaceOpeningHours object,\n       * where adjacent days of week with the same hours are collapsed into one element.\n       *\/\n      function parseDaysHours(openingHours) {\n        const daysHours = openingHours.weekday_text.map((e) => e.split(\/\\:\\s+\/))\n                  .map((e) => ({'days': e[0].substr(0, 3), 'hours': e[1]}));\n\n        for (let i = 1; i < daysHours.length; i++) {\n          if (daysHours[i - 1].hours === daysHours[i].hours) {\n            if (daysHours[i - 1].days.indexOf('-') !== -1) {\n              daysHours[i - 1].days =\n                  daysHours[i - 1].days.replace(\/\\w+$\/, daysHours[i].days);\n            } else {\n              daysHours[i - 1].days += ' - ' + daysHours[i].days;\n            }\n            daysHours.splice(i--, 1);\n          }\n        }\n        return daysHours;\n      }\n\n      \/** Number of POIs to show on widget load. *\/\n      const ND_NUM_PLACES_INITIAL = 5;\n\n      \/** Number of additional POIs to show when 'Show More' button is clicked. *\/\n      const ND_NUM_PLACES_SHOW_MORE = 5;\n\n      \/** Maximum number of place photos to show on the details panel. *\/\n      const ND_NUM_PLACE_PHOTOS_MAX = 6;\n\n      \/** Minimum zoom level at which the default map POI pins will be shown. *\/\n      const ND_DEFAULT_POI_MIN_ZOOM = 18;\n\n      \/** Mapping of Place Types to Material Icons used to render custom map markers. *\/\n      const ND_MARKER_ICONS_BY_TYPE = {\n        \/\/ Full list of icons can be found at https:\/\/fonts.google.com\/icons\n        '_default': 'circle',\n        'restaurant': 'restaurant',\n        'cafe': 'local_cafe',\n        'bar': 'local_bar',\n        'museum': 'museum',\n        'tourist_attraction': 'local_see',\n      };\n\n      \/**\n       * Defines an instance of the Neighborhood Discovery widget, to be\n       * instantiated when the Maps library is loaded.\n       *\/\n      function NeighborhoodDiscovery(configuration) {\n        const widget = this;\n        const widgetEl = document.querySelector('.neighborhood-discovery');\n\n        widget.center = configuration.mapOptions.center;\n        widget.places = configuration.pois || [];\n\n        \/\/ Initialize core functionalities -------------------------------------\n\n        initializeMap();\n        initializePlaceDetails();\n        initializeSidePanel();\n\n        \/\/ Initialize additional capabilities ----------------------------------\n\n        initializeSearchInput();\n        initializeDistanceMatrix();\n        initializeDirections();\n\n        \/\/ Initializer function definitions ------------------------------------\n\n        \/** Initializes the interactive map and adds place markers. *\/\n        function initializeMap() {\n          const mapOptions = configuration.mapOptions;\n          widget.mapBounds = new google.maps.Circle(\n            {center: widget.center, radius: configuration.mapRadius}).getBounds();\n          mapOptions.restriction = {latLngBounds: widget.mapBounds};\n          mapOptions.mapTypeControlOptions = {position: google.maps.ControlPosition.TOP_RIGHT};\n          widget.map = new google.maps.Map(widgetEl.querySelector('.map'), mapOptions);\n          widget.map.fitBounds(widget.mapBounds, \/* padding= *\/ 0);\n          widget.map.addListener('click', (e) => {\n            \/\/ Check if user clicks on a POI pin from the base map.\n            if (e.placeId) {\n              e.stop();\n              widget.selectPlaceById(e.placeId);\n            }\n          });\n          widget.map.addListener('zoom_changed', () => {\n            \/\/ Customize map styling to show\/hide default POI pins or text based on zoom level.\n            const hideDefaultPoiPins = widget.map.getZoom() < ND_DEFAULT_POI_MIN_ZOOM;\n            widget.map.setOptions({\n              styles: [{\n                featureType: 'poi',\n                elementType: hideDefaultPoiPins ? 'labels' : 'labels.text',\n                stylers: [{visibility: 'off'}],\n              }],\n            });\n          });\n\n          const markerPath = widgetEl.querySelector('.marker-pin path').getAttribute('d');\n          const drawMarker = function(title, position, fillColor, strokeColor, labelText) {\n            return new google.maps.Marker({\n              title: title,\n              position: position,\n              map: widget.map,\n              icon: {\n                path: markerPath,\n                fillColor: fillColor,\n                fillOpacity: 1,\n                strokeColor: strokeColor,\n                anchor: new google.maps.Point(13, 35),\n                labelOrigin: new google.maps.Point(13, 13),\n              },\n              label: {\n                text: labelText,\n                color: 'white',\n                fontSize: '16px',\n                fontFamily: 'Material Icons',\n              },\n            });\n          };\n\n          \/\/ Add marker at the center location (if specified).\n          if (configuration.centerMarker &#038;&#038; configuration.centerMarker.icon) {\n            drawMarker('Home', widget.center,\n                       '#1A73E8', '#185ABC', configuration.centerMarker.icon);\n          }\n\n          \/\/ Add marker for the specified Place object.\n          widget.addPlaceMarker = function(place) {\n            place.marker = drawMarker(place.name, place.coords, '#EA4335', '#C5221F', place.icon);\n            place.marker.addListener('click', () => void widget.selectPlaceById(place.placeId));\n          };\n\n          \/\/ Fit map to bounds that contain all markers of the specified Place objects.\n          widget.updateBounds = function(places) {\n            const bounds = new google.maps.LatLngBounds();\n            bounds.extend(widget.center);\n            for (let place of places) {\n              bounds.extend(place.marker.getPosition());\n            }\n            widget.map.fitBounds(bounds, \/* padding= *\/ 100);\n          };\n\n          \/\/ Marker used to highlight a place from Autocomplete search.\n          widget.selectedPlaceMarker = new google.maps.Marker({title: 'Point of Interest'});\n        }\n\n        \/** Initializes Place Details service for the widget. *\/\n        function initializePlaceDetails() {\n          const detailsService = new google.maps.places.PlacesService(widget.map);\n          const placeIdsToDetails = new Map();  \/\/ Create object to hold Place results.\n\n          for (let place of widget.places) {\n            placeIdsToDetails.set(place.placeId, place);\n            place.fetchedFields = new Set(['place_id']);\n          }\n\n          widget.fetchPlaceDetails = function(placeId, fields, callback) {\n            if (!placeId || !fields) return;\n\n            \/\/ Check for field existence in Place object.\n            let place = placeIdsToDetails.get(placeId);\n            if (!place) {\n              place = {placeId: placeId, fetchedFields: new Set(['place_id'])};\n              placeIdsToDetails.set(placeId, place);\n            }\n            const missingFields = fields.filter((field) => !place.fetchedFields.has(field));\n            if (missingFields.length === 0) {\n              callback(place);\n              return;\n            }\n\n            const request = {placeId: placeId, fields: missingFields};\n            let retryCount = 0;\n            const processResult = function(result, status) {\n              if (status !== google.maps.places.PlacesServiceStatus.OK) {\n                \/\/ If query limit has been reached, wait before making another call;\n                \/\/ Increase wait time of each successive retry with exponential backoff\n                \/\/ and terminate after five failed attempts.\n                if (status === google.maps.places.PlacesServiceStatus.OVER_QUERY_LIMIT &&\n                    retryCount < 5) {\n                  const delay = (Math.pow(2, retryCount) + Math.random()) * 500;\n                  setTimeout(() => void detailsService.getDetails(request, processResult), delay);\n                  retryCount++;\n                }\n                return;\n              }\n\n              \/\/ Basic details.\n              if (result.name) place.name = result.name;\n              if (result.geometry) place.coords = result.geometry.location;\n              if (result.formatted_address) place.address = result.formatted_address;\n              if (result.photos) {\n                place.photos = result.photos.map((photo) => ({\n                  urlSmall: photo.getUrl({maxWidth: 200, maxHeight: 200}),\n                  urlLarge: photo.getUrl({maxWidth: 1200, maxHeight: 1200}),\n                  attrs: photo.html_attributions,\n                })).slice(0, ND_NUM_PLACE_PHOTOS_MAX);\n              }\n              if (result.types) {\n                place.type = formatPlaceType(result.types[0]);\n                place.icon = ND_MARKER_ICONS_BY_TYPE['_default'];\n                for (let type of result.types) {\n                  if (type in ND_MARKER_ICONS_BY_TYPE) {\n                    place.type = formatPlaceType(type);\n                    place.icon = ND_MARKER_ICONS_BY_TYPE[type];\n                    break;\n                  }\n                }\n              }\n              if (result.url) place.url = result.url;\n\n              \/\/ Contact details.\n              if (result.website) {\n                place.website = result.website;\n                const url = new URL(place.website);\n                place.websiteDomain = url.hostname;\n              }\n              if (result.formatted_phone_number) place.phoneNumber = result.formatted_phone_number;\n              if (result.opening_hours) place.openingHours = parseDaysHours(result.opening_hours);\n\n              \/\/ Review details.\n              if (result.rating) {\n                place.rating = result.rating;\n                addStarIcons(place);\n              }\n              if (result.user_ratings_total) place.numReviews = result.user_ratings_total;\n              if (result.price_level) {\n                place.priceLevel = result.price_level;\n                place.dollarSigns = initArray(result.price_level);\n              }\n              if (result.reviews) {\n                place.reviews = result.reviews;\n                for (let review of place.reviews) {\n                  addStarIcons(review);\n                }\n              }\n\n              for (let field of missingFields) {\n                place.fetchedFields.add(field);\n              }\n              callback(place);\n            };\n\n            \/\/ Use result from Place Autocomplete if available.\n            if (widget.placeIdsToAutocompleteResults) {\n              const autoCompleteResult = widget.placeIdsToAutocompleteResults.get(placeId);\n              if (autoCompleteResult) {\n                processResult(autoCompleteResult, google.maps.places.PlacesServiceStatus.OK);\n                return;\n              }\n            }\n            detailsService.getDetails(request, processResult);\n          };\n        }\n\n        \/** Initializes the side panel that holds curated POI results. *\/\n        function initializeSidePanel() {\n          const placesPanelEl = widgetEl.querySelector('.places-panel');\n          const detailsPanelEl = widgetEl.querySelector('.details-panel');\n          const placeResultsEl = widgetEl.querySelector('.place-results-list');\n          const showMoreButtonEl = widgetEl.querySelector('.show-more-button');\n          const photoModalEl = widgetEl.querySelector('.photo-modal');\n          const detailsTemplate = Handlebars.compile(\n              document.getElementById('nd-place-details-tmpl').innerHTML);\n          const resultsTemplate = Handlebars.compile(\n              document.getElementById('nd-place-results-tmpl').innerHTML);\n\n          \/\/ Show specified POI photo in a modal.\n          const showPhotoModal = function(photo, placeName) {\n            const prevFocusEl = document.activeElement;\n            const imgEl = photoModalEl.querySelector('img');\n            imgEl.src = photo.urlLarge;\n            const backButtonEl = photoModalEl.querySelector('.back-button');\n            backButtonEl.addEventListener('click', () => {\n              hideElement(photoModalEl, prevFocusEl);\n              imgEl.src = '';\n            });\n            photoModalEl.querySelector('.photo-place').innerHTML = placeName;\n            photoModalEl.querySelector('.photo-attrs span').innerHTML = photo.attrs;\n            const attributionEl = photoModalEl.querySelector('.photo-attrs a');\n            if (attributionEl) attributionEl.setAttribute('target', '_blank');\n            photoModalEl.addEventListener('click', (e) => {\n              if (e.target === photoModalEl) {\n                hideElement(photoModalEl, prevFocusEl);\n                imgEl.src = '';\n              }\n            });\n            showElement(photoModalEl, backButtonEl);\n          };\n\n          \/\/ Select a place by id and show details.\n          let selectedPlaceId;\n          widget.selectPlaceById = function(placeId, panToMarker) {\n            if (selectedPlaceId === placeId) return;\n            selectedPlaceId = placeId;\n            const prevFocusEl = document.activeElement;\n\n            const showDetailsPanel = function(place) {\n              detailsPanelEl.innerHTML = detailsTemplate(place);\n              const backButtonEl = detailsPanelEl.querySelector('.back-button');\n              backButtonEl.addEventListener('click', () => {\n                hideElement(detailsPanelEl, prevFocusEl);\n                selectedPlaceId = undefined;\n                widget.updateDirections();\n                widget.selectedPlaceMarker.setMap(null);\n              });\n              detailsPanelEl.querySelectorAll('.photo').forEach((photoEl, i) => {\n                photoEl.addEventListener('click', () => {\n                  showPhotoModal(place.photos[i], place.name);\n                });\n              });\n              showElement(detailsPanelEl, backButtonEl);\n              detailsPanelEl.scrollTop = 0;\n            };\n\n            const processResult = function(place) {\n              if (place.marker) {\n                widget.selectedPlaceMarker.setMap(null);\n              } else {\n                widget.selectedPlaceMarker.setPosition(place.coords);\n                widget.selectedPlaceMarker.setMap(widget.map);\n              }\n              if (panToMarker) {\n                widget.map.panTo(place.coords);\n              }\n              showDetailsPanel(place);\n              widget.fetchDuration(place, showDetailsPanel);\n              widget.updateDirections(place);\n            };\n\n            widget.fetchPlaceDetails(placeId, [\n              'name', 'types', 'geometry.location', 'formatted_address', 'photo', 'url',\n              'website', 'formatted_phone_number', 'opening_hours',\n              'rating', 'user_ratings_total', 'price_level', 'review',\n            ], processResult);\n          };\n\n          \/\/ Render the specified place objects and append them to the POI list.\n          const renderPlaceResults = function(places, startIndex) {\n            placeResultsEl.insertAdjacentHTML('beforeend', resultsTemplate({places: places}));\n            placeResultsEl.querySelectorAll('.place-result').forEach((resultEl, i) => {\n              const place = places[i - startIndex];\n              if (!place) return;\n              \/\/ Clicking anywhere on the item selects the place.\n              \/\/ Additionally, create a button element to make this behavior\n              \/\/ accessible under tab navigation.\n              resultEl.addEventListener('click', () => {\n                widget.selectPlaceById(place.placeId, \/* panToMarker= *\/ true);\n              });\n              resultEl.querySelector('.name').addEventListener('click', (e) => {\n                widget.selectPlaceById(place.placeId, \/* panToMarker= *\/ true);\n                e.stopPropagation();\n              });\n              resultEl.querySelector('.photo').addEventListener('click', (e) => {\n                showPhotoModal(place.photos[0], place.name);\n                e.stopPropagation();\n              });\n              widget.addPlaceMarker(place);\n            });\n          };\n\n          \/\/ Index of next Place object to show in the POI list.\n          let nextPlaceIndex = 0;\n\n          \/\/ Fetch and show basic info for the next N places.\n          const showNextPlaces = function(n) {\n            const nextPlaces = widget.places.slice(nextPlaceIndex, nextPlaceIndex + n);\n            if (nextPlaces.length < 1) {\n              hideElement(showMoreButtonEl);\n              return;\n            }\n            showMoreButtonEl.disabled = true;\n            \/\/ Keep track of the number of Places calls that have not finished.\n            let count = nextPlaces.length;\n            for (let place of nextPlaces) {\n              const processResult = function(place) {\n                count--;\n                if (count > 0) return;\n                renderPlaceResults(nextPlaces, nextPlaceIndex);\n                nextPlaceIndex += n;\n                widget.updateBounds(widget.places.slice(0, nextPlaceIndex));\n                const hasMorePlacesToShow = nextPlaceIndex < widget.places.length;\n                if (hasMorePlacesToShow || hasHiddenContent(placesPanelEl)) {\n                  showElement(showMoreButtonEl);\n                  showMoreButtonEl.disabled = false;\n                } else {\n                  hideElement(showMoreButtonEl);\n                }\n              };\n              widget.fetchPlaceDetails(place.placeId, [\n                'name', 'types', 'geometry.location',\n                'photo',\n                'rating', 'user_ratings_total', 'price_level',\n              ], processResult);\n            }\n          };\n          showNextPlaces(ND_NUM_PLACES_INITIAL);\n\n          showMoreButtonEl.addEventListener('click', () => {\n            placesPanelEl.classList.remove('no-scroll');\n            showMoreButtonEl.classList.remove('sticky');\n            showNextPlaces(ND_NUM_PLACES_SHOW_MORE);\n          });\n        }\n\n        \/** Initializes Search Input for the widget. *\/\n        function initializeSearchInput() {\n          const searchInputEl = widgetEl.querySelector('.place-search-input');\n          widget.placeIdsToAutocompleteResults = new Map();\n\n          \/\/ Set up Autocomplete on the search input.\n          const autocomplete = new google.maps.places.Autocomplete(searchInputEl, {\n            types: ['establishment'],\n            fields: [\n              'place_id', 'name', 'types', 'geometry.location', 'formatted_address', 'photo', 'url',\n              'website', 'formatted_phone_number', 'opening_hours',\n              'rating', 'user_ratings_total', 'price_level', 'review',\n            ],\n            bounds: widget.mapBounds,\n            strictBounds: true,\n          });\n          autocomplete.addListener('place_changed', () => {\n            const place = autocomplete.getPlace();\n            widget.placeIdsToAutocompleteResults.set(place.place_id, place);\n            widget.selectPlaceById(place.place_id, \/* panToMarker= *\/ true);\n            searchInputEl.value = '';\n          });\n        }\n\n        \/** Initializes Distance Matrix service for the widget. *\/\n        function initializeDistanceMatrix() {\n          const distanceMatrixService = new google.maps.DistanceMatrixService();\n\n          \/\/ Annotate travel times from the centered location to the specified place.\n          widget.fetchDuration = function(place, callback) {\n            if (!widget.center || !place || !place.coords || place.duration) return;\n            const request = {\n              origins: [widget.center],\n              destinations: [place.coords],\n              travelMode: google.maps.TravelMode.DRIVING,\n            };\n            distanceMatrixService.getDistanceMatrix(request, function(result, status) {\n              if (status === google.maps.DistanceMatrixStatus.OK) {\n                const trip = result.rows[0].elements[0];\n                if (trip.status === google.maps.DistanceMatrixElementStatus.OK) {\n                  place.duration = trip.duration;\n                  callback(place);\n                }\n              }\n            });\n          };\n        }\n\n        \/** Initializes Directions service for the widget. *\/\n        function initializeDirections() {\n          const directionsService = new google.maps.DirectionsService();\n          const directionsRenderer = new google.maps.DirectionsRenderer({\n            suppressMarkers: true,\n            preserveViewport: true,\n          });\n\n          \/\/ Update directions from the centered location to specified place.\n          widget.updateDirections = function(place) {\n            if (!widget.center || !place || !place.coords) {\n              directionsRenderer.setMap(null);\n              return;\n            }\n            \/\/ Use existing results if available.\n            if (place.directions) {\n              directionsRenderer.setMap(widget.map);\n              directionsRenderer.setDirections(place.directions);\n              return;\n            }\n            const request = {\n              origin: widget.center,\n              destination: place.coords,\n              travelMode: google.maps.TravelMode.DRIVING,\n            };\n            directionsService.route(request, function(result, status) {\n              if (status === google.maps.DirectionsStatus.OK) {\n                place.directions = result;\n                directionsRenderer.setMap(widget.map);\n                directionsRenderer.setDirections(result);\n              }\n            });\n          };\n        }\n      }\n    <\/script>\n    <script>\n      const CONFIGURATION = {\n        \"capabilities\": {\"search\":true,\"distances\":true,\"directions\":true,\"contacts\":true,\"atmospheres\":true,\"thumbnails\":true},\n        \"pois\": [\n          {\"placeId\": \"ChIJw5siXd4QbUgRsG33KKsygcI\"},\n          {\"placeId\": \"ChIJl9mKF94QbUgRCRbAeCjhGXY\"},\n          {\"placeId\": \"ChIJ6frLO94QbUgRoO1Vmspj4ng\"},\n          {\"placeId\": \"ChIJiUQvht4QbUgRYfSYTTk1c4k\"},\n          {\"placeId\": \"ChIJVyxWiN4QbUgRSiLu5jcahVA\"},\n          {\"placeId\": \"ChIJ66u5c94QbUgRwOz47D319NU\"},\n          {\"placeId\": \"ChIJsVypzN0QbUgR6bwjbzED6Jg\"},\n          {\"placeId\": \"ChIJTcibdN4QbUgRIZQuQznkgLA\"},\n          {\"placeId\": \"ChIJ_VMOdN4QbUgRfMPVeb3Vcrg\"},\n          {\"placeId\": \"ChIJ_0Sc8JERbUgRewC4zrnBNc8\"},\n          {\"placeId\": \"ChIJTaH9dt4QbUgRgad6-WLUkd8\"},\n          {\"placeId\": \"ChIJV8YQPKcRbUgRTuJjkmtpICI\"},\n          {\"placeId\": \"ChIJLbNpN34RbUgRhMg3o9B9vu8\"},\n          {\"placeId\": \"ChIJIQcqj94QbUgRBev3jwy_hvo\"},\n          {\"placeId\": \"ChIJl5vFYtwQbUgRxOeoV8wAxpM\"},\n          {\"placeId\": \"ChIJcS9MT9wQbUgRGneBtGvbDiU\"},\n          {\"placeId\": \"ChIJkZUoNFQRbUgRgUo-c2DGYuc\"},\n          {\"placeId\": \"ChIJV9NPGFq53kcRsEs_U2TTbac\"},\n          {\"placeId\": \"ChIJu-1SihgRbUgREgmd5M-HIm0\"}\n        ],\n        \"centerMarker\": {\"icon\":\"circle\"},\n        \"mapRadius\": 500,\n        \"mapOptions\": {\"center\":{\"lat\":50.3957413,\"lng\":-3.5107534},\"fullscreenControl\":true,\"mapTypeControl\":true,\"streetViewControl\":false,\"zoom\":16,\"zoomControl\":true,\"maxZoom\":20,\"mapId\":\"\"},\n        \"mapsApiKey\": \"AIzaSyDIUBG-mTfsGe88YECM98v5imODB3_HNnw\"\n      };\n\n      function initMap() {\n        new NeighborhoodDiscovery(CONFIGURATION);\n      }\n    <\/script>\n    <script id=\"nd-place-results-tmpl\" type=\"text\/x-handlebars-template\">\n      {{#each places}}\n        <li class=\"place-result\">\n          <div class=\"text\">\n            <button class=\"name\">{{name}}<\/button>\n            <div class=\"info\">\n              {{#if rating}}\n                <span>{{rating}}<\/span>\n                <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star\/v15\/24px.svg\" alt=\"rating\" class=\"star-icon\"\/>\n              {{\/if}}\n              {{#if numReviews}}\n                <span>&nbsp;({{numReviews}})<\/span>\n              {{\/if}}\n              {{#if priceLevel}}\n                &#183;&nbsp;<span>{{#each dollarSigns}}${{\/each}}&nbsp;<\/span>\n              {{\/if}}\n            <\/div>\n            <div class=\"info\">{{type}}<\/div>\n          <\/div>\n          <button class=\"photo\" style=\"background-image:url({{photos.0.urlSmall}})\" aria-label=\"show photo in viewer\"><\/button>\n        <\/li>\n      {{\/each}}\n    <\/script>\n    <script id=\"nd-place-details-tmpl\" type=\"text\/x-handlebars-template\">\n      <div class=\"navbar\">\n        <button class=\"back-button\">\n          <img decoding=\"async\" class=\"icon\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/arrow_back\/v11\/24px.svg\" alt=\"back\"\/>\n          Back\n        <\/button>\n      <\/div>\n      <header>\n        <h2>{{name}}<\/h2>\n        <div class=\"info\">\n          {{#if rating}}\n            <span class=\"star-rating-numeric\">{{rating}}<\/span>\n            <span>\n              {{#each fullStarIcons}}\n                <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star\/v15\/24px.svg\" alt=\"full star\" class=\"star-icon\"\/>\n              {{\/each}}\n              {{#each halfStarIcons}}\n                <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star_half\/v17\/24px.svg\" alt=\"half star\" class=\"star-icon\"\/>\n              {{\/each}}\n              {{#each emptyStarIcons}}\n                <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star_outline\/v9\/24px.svg\" alt=\"empty star\" class=\"star-icon\"\/>\n              {{\/each}}\n            <\/span>\n          {{\/if}}\n          {{#if numReviews}}\n            <a href=\"{{url}}\" target=\"_blank\">{{numReviews}} reviews<\/a>\n          {{else}}\n            <a href=\"{{url}}\" target=\"_blank\">See on Google Maps<\/a>\n          {{\/if}}\n          {{#if priceLevel}}\n            &#183;\n            <span class=\"price-dollars\">\n              {{#each dollarSigns}}${{\/each}}\n            <\/span>\n          {{\/if}}\n        <\/div>\n        {{#if type}}\n          <div class=\"info\">{{type}}<\/div>\n        {{\/if}}\n        {{#if duration}}\n          <div class=\"info\">\n            <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/directions_car\/v11\/24px.svg\" alt=\"car travel\" class=\"travel-icon\"\/>\n            <span>&nbsp;{{duration.text}}<\/span>\n          <\/div>\n        {{\/if}}\n      <\/header>\n      <div class=\"section\">\n        {{#if address}}\n          <div class=\"contact\">\n            <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/place\/v10\/24px.svg\" alt=\"Address\" class=\"icon\"\/>\n            <div class=\"text\">\n              {{address}}\n            <\/div>\n          <\/div>\n        {{\/if}}\n        {{#if website}}\n          <div class=\"contact\">\n            <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/public\/v10\/24px.svg\" alt=\"Website\" class=\"icon\"\/>\n            <div class=\"text\">\n              <a href=\"{{website}}\" target=\"_blank\">{{websiteDomain}}<\/a>\n            <\/div>\n          <\/div>\n        {{\/if}}\n        {{#if phoneNumber}}\n          <div class=\"contact\">\n            <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/phone\/v10\/24px.svg\" alt=\"Phone number\" class=\"icon\"\/>\n            <div class=\"text\">\n              {{phoneNumber}}\n            <\/div>\n          <\/div>\n        {{\/if}}\n        {{#if openingHours}}\n          <div class=\"contact\">\n            <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/schedule\/v12\/24px.svg\" alt=\"Opening hours\" class=\"icon\"\/>\n            <div class=\"text\">\n              {{#each openingHours}}\n                <div>\n                  <span class=\"weekday\">{{days}}<\/span>\n                  <span class=\"hours\">{{hours}}<\/span>\n                <\/div>\n              {{\/each}}\n            <\/div>\n          <\/div>\n        {{\/if}}\n      <\/div>\n      {{#if photos}}\n        <div class=\"photos section\">\n          {{#each photos}}\n            <button class=\"photo\" style=\"background-image:url({{urlSmall}})\" aria-label=\"show photo in viewer\"><\/button>\n          {{\/each}}\n        <\/div>\n      {{\/if}}\n      {{#if reviews}}\n        <div class=\"reviews section\">\n          <p class=\"attribution\">Reviews by Google users<\/p>\n          {{#each reviews}}\n            <div class=\"review\">\n              <a class=\"reviewer-identity\" href=\"{{author_url}}\" target=\"_blank\">\n                <div class=\"reviewer-avatar\" style=\"background-image:url({{profile_photo_url}})\"><\/div>\n                <div class=\"reviewer-name\">{{author_name}}<\/div>\n              <\/a>\n              <div class=\"rating info\">\n                <span>\n                  {{#each fullStarIcons}}\n                    <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star\/v15\/24px.svg\" alt=\"full star\" class=\"star-icon\"\/>\n                  {{\/each}}\n                  {{#each halfStarIcons}}\n                    <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star_half\/v17\/24px.svg\" alt=\"half star\" class=\"star-icon\"\/>\n                  {{\/each}}\n                  {{#each emptyStarIcons}}\n                    <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/star_outline\/v9\/24px.svg\" alt=\"empty star\" class=\"star-icon\"\/>\n                  {{\/each}}\n                <\/span>\n                <span class=\"review-time\">{{relative_time_description}}<\/span>\n              <\/div>\n              <div class=\"info\">{{text}}<\/div>\n            <\/div>\n          {{\/each}}\n        <\/div>\n      {{\/if}}\n      {{#if html_attributions}}\n        <div class=\"section\">\n          {{#each html_attributions}}\n            <p class=\"attribution\">{{{this}}}<\/p>\n          {{\/each}}\n        <\/div>\n      {{\/if}}\n    <\/script>\n  <\/head>\n  <body>\n    <div class=\"neighborhood-discovery\">\n      <div class=\"places-panel panel no-scroll\">\n        <header class=\"navbar\">\n          <div class=\"search-input\">\n            <input class=\"place-search-input\" placeholder=\"Search nearby places\">\n            <button class=\"place-search-button\">\n              <img decoding=\"async\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/search\/v11\/24px.svg\" alt=\"search\"\/>\n            <\/button>\n          <\/div>\n        <\/header>\n        <div class=\"results\">\n          <ul class=\"place-results-list\"><\/ul>\n        <\/div>\n        <button class=\"show-more-button sticky\">\n          <span>Show More<\/span>\n          <img decoding=\"async\" class=\"right\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/expand_more\/v11\/24px.svg\" alt=\"expand\"\/>\n        <\/button>\n      <\/div>\n      <div class=\"details-panel panel\"><\/div>\n      <div class=\"map\"><\/div>\n      <div class=\"photo-modal\">\n        <img alt=\"place photo\"\/>\n        <div>\n          <button class=\"back-button\">\n            <img decoding=\"async\" class=\"icon\" src=\"https:\/\/fonts.gstatic.com\/s\/i\/googlematerialicons\/arrow_back\/v11\/24px.svg\" alt=\"back\"\/>\n          <\/button>\n          <div class=\"photo-text\">\n            <div class=\"photo-place\"><\/div>\n            <div class=\"photo-attrs\">Photo by <span><\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <svg class=\"marker-pin\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"26\" height=\"38\" fill=\"none\">\n        <path d=\"M13 0C5.817 0 0 5.93 0 13.267c0 7.862 5.59 10.81 9.555 17.624C12.09 35.248 11.342 38 13 38c1.723 0 .975-2.817 3.445-7.043C20.085 24.503 26 21.162 26 13.267 26 5.93 20.183 0 13 0Z\"\/>\n      <\/svg>\n    <\/div>\n    <script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDIUBG-mTfsGe88YECM98v5imODB3_HNnw&#038;callback=initMap&#038;libraries=places,geometry&#038;solution_channel=GMP_QB_neighborhooddiscovery_v3_cABCDEF\" async defer><\/script>\n  <\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Don\u2019t tell Rick Stein, but we think that Brixham has started becoming a bit of a foodie destination on the quiet over the last few years. If you are looking for a restaurant guide, or recommendations as to the best places to eat and drink in Brixham then the following list is by no means &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/thecaptainscottagebrixham.com\/?page_id=2\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Recommended places to go for Food &#038; Drink in Brixham&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":93,"parent":56,"menu_order":1,"comment_status":"closed","ping_status":"open","template":"","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-2","page","type-page","status-publish","has-post-thumbnail","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2"}],"version-history":[{"count":31,"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":716,"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions\/716"}],"up":[{"embeddable":true,"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/pages\/56"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=\/wp\/v2\/media\/93"}],"wp:attachment":[{"href":"https:\/\/thecaptainscottagebrixham.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}