{"@context":"https:\/\/schema.org","@type":"WebPage","metadata":{"page_id":45185,"page_name":"catering","domain":"www.pasifikagrill.com","url":"https:\/\/www.pasifikagrill.com\/catering","generated_at":"2026-02-27T23:18:49-08:00","last_modified":"2026-02-27T23:18:48-08:00"},"content":{"complete_text":"\r\n    Pasifika Grill & Bar Catering\r\nPOWERED BY: CATER 4 YOU\r\n\r\nBring the vibrant flavors of the Pacific Islands and the Pacific Northwest to your next event with our catering services! Whether it\u2019s a lively luau, a corporate gathering, or an intimate celebration, our team is here to create an unforgettable experience tailored to your vision.\r\nLocated within Hotel 116, we also offer access to a beautiful banquet space, making it even easier to host your event in style. Simply fill out the form below to let us know about your event\u2019s location, style, size, and budget, and we\u2019ll handle the rest\u2014infusing each dish with a taste of aloha and a touch of Northwest flair.\r\n\n\n\r\n  .unique-hidden {\r\n    display: none;\r\n  }\r\n \r\n\r\n\t@charset \"utf-8\";\r\n\/* Reset *\/\r\n@font-face {\r\n    font-family: 'Abel';\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    src: local('Abel Regular'), local('Abel-Regular'), url(https:\/\/fonts.gstatic.com\/s\/abel\/v8\/MwQ5bhbm2POE2V9BPQ.woff2) format('woff2');\r\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\r\n}\r\n.estimate-con-input-sd {\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\/* Responsive Design *\/\r\n\/* Main *\/\r\n.estimate-con-input-sd {\r\n    box-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    width: 100%;\r\n    padding: 7px;\r\n    border-bottom: 2px solid rgba(93,162,154,0.12);\r\n    border-right: 2px solid rgba(93,162,154,0.12);\r\n    border-top: none;\r\n    border-left: none;\r\n    margin-bottom: 20px;\r\n    font-family: Abel;\r\n    height: 45px;\r\n    color: #18424d;\r\n    font-size: 20px;\r\n    background: rgba(93,162,154,0.04);\r\n\tmargin-right: 10px;\r\n\tmargin-left: 10px;\r\n}\r\n.estimate-textarea-sd {\r\n    font-family: Abel;\r\n    box-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    width: 100%;\r\n    padding: 7px;\r\n    border-bottom: 2px solid rgba(93,162,154,0.12);\r\n    border-right: 2px solid rgba(93,162,154,0.12);\r\n    border-top: none;\r\n    border-left: none;\r\n    margin-bottom: 20px;\r\n    color: #18424d;\r\n    background: rgba(93,162,154,0.04);\r\n    font-size: 20px;\r\n\tmin-height: 100px;\r\n\tresize: none;\r\n\toverflow: hidden;\r\n}\r\n#estimate-autoExpand2-sd {\r\n\tmin-height: 200px;\r\n}\r\n#estimate-visit-sd, #estimate-other-sd {\r\n\t\r\n}\r\n\r\n::placeholder { \/* Chrome, Firefox, Opera, Safari 10.1+ *\/\r\n color: #18424d;\r\n opacity: 1; \/* Firefox *\/\r\n}\r\n\r\n:-ms-input-placeholder { \/* Internet Explorer 10-11 *\/\r\n color: #18424d;\r\n}\r\n\r\n::-ms-input-placeholder { \/* Microsoft Edge *\/\r\n color: #18424d;\r\n}\r\n.estimate-img-sd {\r\n    width: 100%;\r\n}\r\n\r\n.estimate-bottom-space-sd{\r\n\tmargin-bottom: 20px;\r\n\t\r\n}\r\n\r\n.estimate-custom-check input{\r\n\tposition: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n.estimate-custom-radio input{\r\n\tposition: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n.estimate-custom-check {\r\n  display: block;\r\n  position: relative;\r\n  padding-left: 35px;\r\n  margin-bottom: 12px;\r\n  cursor: pointer;\r\n  font-size: 22px;\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n\/* Create a custom checkbox *\/\r\n.estimate-checkmark {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  height: 25px;\r\n  width: 25px;\r\n  background-color: #eee;\r\n}\r\n\r\n\/* On mouse-over, add a grey background color *\/\r\n.estimate-custom-check:hover input ~ .estimate-checkmark {\r\n  background-color: rgba(93,162,154,0.28);\r\n}\r\n\r\n\/* When the checkbox is checked, add a blue background *\/\r\n.estimate-custom-check input:checked ~ .estimate-checkmark {\r\n  background-color: rgba(93,162,154);\r\n}\r\n\r\n\/* Create the checkmark\/indicator (hidden when not checked) *\/\r\n.estimate-checkmark:after {\r\n  content: \"\";\r\n  position: absolute;\r\n  display: none;\r\n}\r\n\r\n\/* Show the checkmark when checked *\/\r\n.estimate-custom-check input:checked ~ .estimate-checkmark:after {\r\n  display: block;\r\n}\r\n\r\n\/* Style the checkmark\/indicator *\/\r\n.estimate-custom-check .estimate-checkmark:after {\r\n  left: 9px;\r\n  top: 5px;\r\n  width: 5px;\r\n  height: 10px;\r\n  border: solid white;\r\n  border-width: 0 3px 3px 0;\r\n  -webkit-transform: rotate(45deg);\r\n  -ms-transform: rotate(45deg);\r\n  transform: rotate(45deg);\r\n}\r\n\r\n.estimate-spacer-sd{\r\n\tpadding-left: 60px;\r\n}\r\n\r\n\/* Radio Button Style *\/\r\n\/* Customize the label (the container) *\/\r\n.estimate-custom-radio {\r\n  display: block;\r\n  position: relative;\r\n  padding-left: 35px;\r\n  margin-bottom: 12px;\r\n  cursor: pointer;\r\n  font-size: 22px;\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n\/* Hide the browser's default radio button *\/\r\n.estimate-custom-radio input {\r\n  position: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n\/* Create a custom radio button *\/\r\n.estimate-checkmark2 {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  height: 25px;\r\n  width: 25px;\r\n  background-color: #eee;\r\n  border-radius: 50%;\r\n}\r\n\r\n\/* On mouse-over, add a grey background color *\/\r\n.estimate-custom-radio:hover input ~ .estimate-checkmark2 {\r\n  background-color: rgba(93,162,154,0.28);\r\n}\r\n\r\n\/* When the radio button is checked, add a blue background *\/\r\n.estimate-custom-radio input:checked ~ .estimate-checkmark2 {\r\n  background-color: rgba(93,162,154);\r\n}\r\n\r\n\/* Create the indicator (the dot\/circle - hidden when not checked) *\/\r\n.estimate-checkmark2:after {\r\n  content: \"\";\r\n  position: absolute;\r\n  display: none;\r\n}\r\n\r\n\/* Show the indicator (dot\/circle) when checked *\/\r\n.estimate-custom-radio input:checked ~ .estimate-checkmark2:after {\r\n  display: block;\r\n}\r\n\r\n\/* Style the indicator (dot\/circle) *\/\r\n.estimate-custom-radio .estimate-checkmark2:after {\r\n  top: 9px;\r\n  left: 9px;\r\n  width: 8px;\r\n  height: 8px;\r\n  border-radius: 50%;\r\n  background: white;\r\n}\r\n\r\n.estimate-material-img-sd {\r\n    width: 136px;\r\n    margin: 10px;\r\n    text-align: center;\r\n\tfont-family: Abel;\r\n\tfont-size: 15px;\r\n\tcolor: #18424d;\r\n\tpadding-bottom: 10px;\r\n\tborder: 1px solid #6021;\r\n    padding: 8px;\r\n    vertical-align: top;\r\n    display: inline-block;\r\n}\r\n\r\n.estimate-material-img-sd:hover {\r\n    background-color: #909287;\r\n    color: white;\r\n}\r\n.estimate-project-img-sd {\r\n    width: 136px;\r\n    margin: 10px;\r\n    text-align: center;\r\n\tfont-family: Abel;\r\n\tfont-size: 20px;\r\n\tcolor: #18424d;\r\n\tpadding-bottom: 10px;\r\n\tpadding: 8px;\r\n\tborder: 1px solid #6021\r\n}\r\n.estimate-project-img-sd:hover {\r\n    background-color: rgba(58, 86, 90);\r\n    color: white;\r\n    \/* background-color: rgba(93,162,154,0.18); *\/\r\n\t\r\n}\r\n\r\n.estimate-project-img-selected-sd {\r\n    background-color: rgb(58, 86, 90);\r\n    border: 1px solid rgb(0, 0, 0);\r\n    color: white;\r\n}\r\n.estimate-material-img-selected-sd {\r\n    background-color: #99a36f;\r\n    border: 1px solid rgb(0, 0, 0);\r\n    color: white;\r\n}\r\n.estimate-sections-sd {\r\n    max-width: 960px;\r\n    margin: auto;\r\n    margin-bottom: 20px;\r\n}\r\n#estimate-contact-sd {\r\n    padding-top: 30px;\r\n    padding-bottom: 30px;\r\n    \r\n}\r\n\r\n#estimate-option-sd{\r\n\t\r\n    padding-bottom: 30px;\r\n}\r\n.estimate-form-row-sd {\r\n    padding: 0;\r\n    display: flex;\r\n}\r\n#estimate-completed-sd{\r\n\t\r\n    padding-bottom: 30px;\r\n}\r\n.estimate-form-row-sd input {\r\n    flex: 1;\r\n}\r\n.estimate-form-row-sd textarea {\r\n    flex: 1;\r\n\tpadding: 10px;\r\n}\r\n.estimate-options-row-sd{\r\n\tpadding-left: 60px;\r\n\tfont-family: Abel;\r\n\tfont-size: 20px;\r\n\tcolor: #18424d;\r\n\tmargin-bottom: 10px;\r\n}\r\n.estimate-form-img-sd {\r\n   \r\n    flex-wrap: wrap;\r\n    align-items: center;\r\n    box-sizing: border-box;\r\n}\r\n.estimate-spacing-sd {\r\n    justify-content:flex-start;\r\n}\r\n.estimate-section-header-sd {\r\n    text-align:left;\r\n\tmargin-left: 10px;\r\n    color: #18424d;\r\n    font-family: Abel;\r\n}\r\n\r\n.estimate-btn-sd {\r\n\twidth: 200px;\r\n\tmargin: auto;\r\n\tmargin-bottom: 60px;\r\n\tbox-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    padding: 7px;\r\n    border-bottom: 2px solid #18424d;\r\n    border-right: 2px solid #18424d;\r\n    border-top: none;\r\n    border-left: none;\r\n    font-family: Abel;\r\n    height: 45px;\r\n    font-size: 25px;\r\n\ttext-decoration: none;\r\n\ttext-align: center;\r\n\tvertical-align: middle;\r\n\tbackground-color: #18424d;\r\n\tcolor: white !important;\r\n\t\r\n}\r\n\r\n.estimate-btn-sd a {\r\n\tcolor: white !important;\r\n}\r\n\r\n.estimate-btn-sd:hover {\r\n\tbackground-color:rgb(255, 51, 204);\r\n\tcolor: white !important;\r\n\t\r\n}\r\n\r\n#estimate-thankYouText-sd {\r\n\tmax-width: 900px;\r\n\tmargin: auto;\r\n\tpadding: 60px;\r\n}\r\n@media screen and (max-width: 500px){\r\n\t.estimate-material-img-sd, .estimate-project-img-sd {\r\n\t\twidth: 100px;\r\n\t}\r\n}\r\n\r\n\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n    \r\n  \r\n  \r\n  \r\n  \r\n    \r\n      \r\n        \r\n        \r\n      \r\n       \r\n       \r\n        \r\n      \r\n     \r\n      \r\n        \r\n        \r\n      \r\n          \r\n\r\n    \r\n    \r\n     \r\n    \r\n\r\n      Date of Event:\r\n        \r\n         \r\n       \r\n      \r\n    \r\n    \r\n\r\n        \r\n    \t  \r\n      Where are you planning to have your event?\r\n      \r\n        \r\n         Your Location \r\n        \r\n                  Hotel 116 Banquet Space \r\n        \r\n        \r\n          A Conference Center \r\n        \r\n\r\n        \r\n        \r\n          Other Location\r\n        \r\n      \r\n            \r\n    \r\n\t  \r\n      What kind of event are you planning on catering?\r\n      \r\n        \r\n         Wedding \r\n        \r\n          Meeting \r\n        \r\n          Celebration \r\n        \r\n          Conference \r\n        \r\n          Other \r\n        \r\n      \r\n            \r\n    \r\n\t  \r\n      My event will have approximately __ guests:\r\n      \r\n          Under 10 \r\n          10 - 40 \r\n          40 - 100 \r\n          100 - 250 \r\n          250 + \r\n      \r\n    \r\n        \r\n\t  \r\n      What is your budget per person:\r\n      \r\n          $10 - $15 \r\n          $15 - $20 \r\n          $20 - $30 \r\n          $30 + \r\n      \r\n    \r\n    \r\n    \r\n    \r\n      At our event we would like catering to include:\r\n      \r\n              \r\n        \r\n          Appetizers \r\n        \r\n          Dessert Bar \r\n        \r\n          Hot Lunch \r\n        \r\n          Cold Lunch \r\n\r\n      \r\n          Breakfast \r\n        \r\n          Coffee Service \r\n        \r\n          Buffet \r\n        \r\n          Dinner Service \r\n        \r\n         \r\n            Open Bar \r\n          \r\n          Pay Bar \r\n        \r\n          Beverages \r\n         \r\n      \r\n    \r\n        \r\n    \r\n      Please tell us what level of staffing you\u2019ll need:\r\n      \r\n          Full Staff with set up & tear down \r\n        \r\n          Servers Only \r\n        \r\n          Bartender \r\n        \r\n          No Staff - Drop off only \r\n      \r\n    \r\n    \r\n    \r\n    \r\n      Let us know if there is anything else we should know about your event:\r\n      \r\n        \r\n      \r\n    \r\n      \r\n      Submit\r\n     \r\n     \r\n     \r\n\r\n\r\n  Thank You!\r\n  We appreciate that you took the time to let us know what you're interested in. We will contact you soon to confirm a time when we can discuss your special event in person.\r\n\r\n\r\n  var csrfToken = document.querySelector('meta[name=\"csrfToken\"]').getAttribute('content');\r\n          console.log(csrfToken);\r\n  \t\r\n\t\tfunction estimateSetValue(variableId,value,object){\r\n\t\t\tif (value == '1'){\r\n\t\t\t\tif(parseInt($('#'+variableId).val())==1){\r\n\t\t\t\t\t$('#'+variableId).val(0);\r\n\t\t\t\t\tif ($(object).hasClass('estimate-project-img-sd'))\r\n\t\t\t\t\t\t$(object).removeClass('estimate-project-img-selected-sd');\r\n\t\t\t\t\tif ($(object).hasClass('estimate-material-img-sd'))\r\n\t\t\t\t\t\t$(object).removeClass('estimate-material-img-selected-sd');\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse {\r\n\t\t\t\t\t$('#'+variableId).val(1);\r\n\t\t\t\t\tif ($(object).hasClass('estimate-project-img-sd'))\r\n\t\t\t\t\t\t$(object).addClass('estimate-project-img-selected-sd');\r\n\t\t\t\t\tif ($(object).hasClass('estimate-material-img-sd'))\r\n\t\t\t\t\t\t$(object).addClass('estimate-material-img-selected-sd');\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$('#'+variableId).val(value);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\tfunction estimateValidateEmail(email) {\r\n  \t\tvar re = \/^(([^()[\\]\\\\.,;:\\s@\\\"]+(\\.[^()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$\/;\r\n  \t\treturn re.test(email);\r\n\t}\r\n\tfunction estimateSendEmails(){\r\n\r\n\t\t$('input.error').removeClass('error');\r\n\t\tif($('#fname').val().trim().length == 0){\r\n\t\t\t$('#fname').addClass('error');\r\n\t\t}\r\n\t\tif($('#lname').val().trim().length == 0){\r\n\t\t\t$('#lname').addClass('error');\r\n\t\t}\r\n\t\tif(!estimateValidateEmail($('#email').val())){\r\n\t\t\t$('#email').addClass('error');\r\n\t\t}\r\n\t\t\r\n\t\tif($('#phone').val().trim().length == 0 && $('#consult:checked').length ){\r\n\t\t\t$('#phone').addClass('error');\r\n\t\t}\r\n\t\r\n\t\tif($('.error').length>0){\r\n\t\t\t$('.error:first').focus();\r\n\t\t} else {\r\n          \r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\tdata:$('#estimate-project-form input[value!=0], #estimate-project-form textarea').serialize(),\r\n\t\t\t\ttype:'post',\r\n                headers: {\r\n                    'X-CSRFToken': csrfToken\r\n                },\r\n\t\t\t\tdataType:'html',\r\n\t\t\t\turl:'\/_cater_4_you_entries\/send_email', \/\/Insert link value\r\n\t\t\t\tsuccess:function(resp){\r\n\t\t\t\t\t$('#estimate-mainform-sd').hide();\r\n\t\t\t\t\t$('#estimate-thankYouText-sd').show();\r\n                  $('body,html').animate({ 'scrollTop': $(\"#estimate-thankYouText-sd\").offset().top-300}, 1000);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t}\r\n\t$(\"#estimate-autoExpand1-sd\").on('input', function() {\r\n\tvar scroll_height = $(\"#estimate-autoExpand1-sd\").get(0).scrollHeight;\r\n\r\n\t$(\"#estimate-autoExpand1-sd\").css('height', scroll_height + 'px');\r\n});\r\n\t$(\"#estimate-autoExpand2-sd\").on('input', function() {\r\n\tvar scroll_height = $(\"#estimate-autoExpand2-sd\").get(0).scrollHeight;\r\n\r\n\t$(\"#estimate-autoExpand2-sd\").css('height', scroll_height + 'px');\r\n});\r\n  \r\n  \/\/ Find the input element\r\n    var inputElement = document.querySelector('input[name=\"other_text\"]');\r\n\r\n    if (inputElement) {\r\n        \/\/ Create a new textarea element\r\n        var textareaElement = document.createElement(\"textarea\");\r\n\r\n        \/\/ Copy attributes from the input element to the textarea element\r\n        textareaElement.name = inputElement.name;\r\n        textareaElement.className = inputElement.className;\r\n        textareaElement.required = inputElement.required;\r\n        textareaElement.value = inputElement.value; \/\/ Preserve the value if there's any\r\n\r\n        \/\/ Replace the input element with the textarea element\r\n        inputElement.parentNode.replaceChild(textareaElement, inputElement);\r\n    }\r\n\t\r\n    \r\n    \r\ndocument.getElementById('uniqueSingleStepForm').addEventListener('submit', function(event) {\r\n    event.preventDefault();\r\n    var form = document.getElementById('uniqueSingleStepForm');\r\n\r\n    var formData = new FormData(form);\r\n    console.log('submitting form');\r\n    var csrfToken = document.querySelector('meta[name=\"csrfToken\"]').getAttribute('content');\r\n    var xhr = new XMLHttpRequest();\r\n\t\r\n  \t$('input.error').removeClass('error');\r\n    if($('#fname').val().trim().length == 0){\r\n        $('#fname').addClass('error');\r\n    }\r\n    if($('#lname').val().trim().length == 0){\r\n        $('#lname').addClass('error');\r\n    }\r\n    if(!estimateValidateEmail($('#email').val())){\r\n        $('#email').addClass('error');\r\n    }\r\n\r\n    if($('#phone').val().trim().length == 0 && $('#consult:checked').length ){\r\n        $('#phone').addClass('error');\r\n    }\r\n\r\n\r\nif($('#EventDate').val().trim().length == 0){\r\n    $('#EventDate').addClass('error');\r\n}\r\n\r\n    if($('.error').length>0){\r\n        $('.error:first').focus();\r\n    } else {\r\n    \/\/ Specify the type of request, the URL, and whether it should be asynchronous\r\n    xhr.open('POST', \"\/generic-custom-forms\/save-generic-custom-forms-info\/5283\", true);\r\n\r\n    \/\/ Set the request header to tell the server to expect form data\r\n    xhr.setRequestHeader('X-CSRF-Token', csrfToken);\r\n\r\n    \/\/ Define what happens on successful data submission\r\n    xhr.onload = function() {\r\n        console.log('loaded result');\r\n        if (xhr.status >= 200 && xhr.status < 400) {\r\n            console.log('looks like success');\r\n            let form = document.getElementById('uniqueSingleStepForm');\r\n            let thankYouSection = document.getElementById('estimate-thankYouText-sd');\r\n\r\n            form.classList.add('unique-hidden');\r\n            thankYouSection.classList.remove('unique-hidden');\r\n        } else {\r\n            \/\/ We reached our target server, but it returned an error\r\n            console.error(\"Server reached, but it returned an error\");\r\n        }\r\n    };\r\n\r\n    \/\/ Define what happens in case of an error\r\n    xhr.onerror = function() {\r\n        \/\/ There was a connection error of some sort\r\n        console.error(\"Failed to connect to server\");\r\n    };\r\n\r\n    \/\/ Send the request with the data\r\n    xhr.send(formData);\r\n    }\r\n    return false;\r\n});\r\n\r\n","headings":[{"level":1,"text":"Pasifika Grill & Bar Catering POWERED BY: CATER 4 YOU","from_bloq":618011,"tag":"h1"},{"level":1,"text":"Thank You!","from_bloq":618034,"tag":"h1"}],"paragraphs":[{"text":"Bring the vibrant flavors of the Pacific Islands and the Pacific Northwest to your next event with our catering services! Whether it\u2019s a lively luau, a corporate gathering, or an intimate celebration, our team is here to create an unforgettable experience tailored to your vision.","source_bloq_id":618011,"position":0},{"text":"Located within Hotel 116, we also offer access to a beautiful banquet space, making it even easier to host your event in style. Simply fill out the form below to let us know about your event\u2019s location, style, size, and budget, and we\u2019ll handle the rest\u2014infusing each dish with a taste of aloha and a touch of Northwest flair.","source_bloq_id":618011,"position":0}],"sections":[{"section_id":"section_1","heading":"Pasifika Grill & Bar Catering POWERED BY: CATER 4 YOU","full_text":"Pasifika Grill & Bar Catering POWERED BY: CATER 4 YOU Bring the vibrant flavors of the Pacific Islands and the Pacific Northwest to your next event with our catering services! Whether it\u2019s a lively luau, a corporate gathering, or an intimate celebration, our team is here to create an unforgettable experience tailored to your vision. Located within Hotel 116, we also offer access to a beautiful banquet space, making it even easier to host your event in style. Simply fill out the form below to let us know about your event\u2019s location, style, size, and budget, and we\u2019ll handle the rest\u2014infusing each dish with a taste of aloha and a touch of Northwest flair.","source_bloq_id":618011,"bloq_type":"bloq-rich-text-editors","position":0,"word_count":115,"citeable":true},{"section_id":"section_2","heading":"Thank You!","full_text":".unique-hidden { display: none; } @charset \"utf-8\"; \/* Reset *\/ @font-face { font-family: 'Abel'; font-style: normal; font-weight: 400; src: local('Abel Regular'), local('Abel-Regular'), url(https:\/\/fonts.gstatic.com\/s\/abel\/v8\/MwQ5bhbm2POE2V9BPQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } .estimate-con-input-sd { margin: 0; padding: 0; } \/* Responsive Design *\/ \/* Main *\/ .estimate-con-input-sd { box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; outline: none; display: block; width: 100%; padding: 7px; border-bottom: 2px solid rgba(93,162,154,0.12); border-right: 2px solid rgba(93,162,154,0.12); border-top: none; border-left: none; margin-bottom: 20px; font-family: Abel; height: 45px; color: #18424d; font-size: 20px; background: rgba(93,162,154,0.04); margin-right: 10px; margin-left: 10px; } .estimate-textarea-sd { font-family: Abel; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; outline: none; display: block; width: 100%; padding: 7px; border-bottom: 2px solid rgba(93,162,154,0.12); border-right: 2px solid rgba(93,162,154,0.12); border-top: none; border-left: none; margin-bottom: 20px; color: #18424d; background: rgba(93,162,154,0.04); font-size: 20px; min-height: 100px; resize: none; overflow: hidden; } #estimate-autoExpand2-sd { min-height: 200px; } #estimate-visit-sd, #estimate-other-sd { } ::placeholder { \/* Chrome, Firefox, Opera, Safari 10.1+ *\/ color: #18424d; opacity: 1; \/* Firefox *\/ } :-ms-input-placeholder { \/* Internet Explorer 10-11 *\/ color: #18424d; } ::-ms-input-placeholder { \/* Microsoft Edge *\/ color: #18424d; } .estimate-img-sd { width: 100%; } .estimate-bottom-space-sd{ margin-bottom: 20px; } .estimate-custom-check input{ position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .estimate-custom-radio input{ position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .estimate-custom-check { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } \/* Create a custom checkbox *\/ .estimate-checkmark { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; } \/* On mouse-over, add a grey background color *\/ .estimate-custom-check:hover input ~ .estimate-checkmark { background-color: rgba(93,162,154,0.28); } \/* When the checkbox is checked, add a blue background *\/ .estimate-custom-check input:checked ~ .estimate-checkmark { background-color: rgba(93,162,154); } \/* Create the checkmark\/indicator (hidden when not checked) *\/ .estimate-checkmark:after { content: \"\"; position: absolute; display: none; } \/* Show the checkmark when checked *\/ .estimate-custom-check input:checked ~ .estimate-checkmark:after { display: block; } \/* Style the checkmark\/indicator *\/ .estimate-custom-check .estimate-checkmark:after { left: 9px; top: 5px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .estimate-spacer-sd{ padding-left: 60px; } \/* Radio Button Style *\/ \/* Customize the label (the container) *\/ .estimate-custom-radio { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } \/* Hide the browser's default radio button *\/ .estimate-custom-radio input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } \/* Create a custom radio button *\/ .estimate-checkmark2 { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; border-radius: 50%; } \/* On mouse-over, add a grey background color *\/ .estimate-custom-radio:hover input ~ .estimate-checkmark2 { background-color: rgba(93,162,154,0.28); } \/* When the radio button is checked, add a blue background *\/ .estimate-custom-radio input:checked ~ .estimate-checkmark2 { background-color: rgba(93,162,154); } \/* Create the indicator (the dot\/circle - hidden when not checked) *\/ .estimate-checkmark2:after { content: \"\"; position: absolute; display: none; } \/* Show the indicator (dot\/circle) when checked *\/ .estimate-custom-radio input:checked ~ .estimate-checkmark2:after { display: block; } \/* Style the indicator (dot\/circle) *\/ .estimate-custom-radio .estimate-checkmark2:after { top: 9px; left: 9px; width: 8px; height: 8px; border-radius: 50%; background: white; } .estimate-material-img-sd { width: 136px; margin: 10px; text-align: center; font-family: Abel; font-size: 15px; color: #18424d; padding-bottom: 10px; border: 1px solid #6021; padding: 8px; vertical-align: top; display: inline-block; } .estimate-material-img-sd:hover { background-color: #909287; color: white; } .estimate-project-img-sd { width: 136px; margin: 10px; text-align: center; font-family: Abel; font-size: 20px; color: #18424d; padding-bottom: 10px; padding: 8px; border: 1px solid #6021 } .estimate-project-img-sd:hover { background-color: rgba(58, 86, 90); color: white; \/* background-color: rgba(93,162,154,0.18); *\/ } .estimate-project-img-selected-sd { background-color: rgb(58, 86, 90); border: 1px solid rgb(0, 0, 0); color: white; } .estimate-material-img-selected-sd { background-color: #99a36f; border: 1px solid rgb(0, 0, 0); color: white; } .estimate-sections-sd { max-width: 960px; margin: auto; margin-bottom: 20px; } #estimate-contact-sd { padding-top: 30px; padding-bottom: 30px; } #estimate-option-sd{ padding-bottom: 30px; } .estimate-form-row-sd { padding: 0; display: flex; } #estimate-completed-sd{ padding-bottom: 30px; } .estimate-form-row-sd input { flex: 1; } .estimate-form-row-sd textarea { flex: 1; padding: 10px; } .estimate-options-row-sd{ padding-left: 60px; font-family: Abel; font-size: 20px; color: #18424d; margin-bottom: 10px; } .estimate-form-img-sd { flex-wrap: wrap; align-items: center; box-sizing: border-box; } .estimate-spacing-sd { justify-content:flex-start; } .estimate-section-header-sd { text-align:left; margin-left: 10px; color: #18424d; font-family: Abel; } .estimate-btn-sd { width: 200px; margin: auto; margin-bottom: 60px; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; outline: none; display: block; padding: 7px; border-bottom: 2px solid #18424d; border-right: 2px solid #18424d; border-top: none; border-left: none; font-family: Abel; height: 45px; font-size: 25px; text-decoration: none; text-align: center; vertical-align: middle; background-color: #18424d; color: white !important; } .estimate-btn-sd a { color: white !important; } .estimate-btn-sd:hover { background-color:rgb(255, 51, 204); color: white !important; } #estimate-thankYouText-sd { max-width: 900px; margin: auto; padding: 60px; } @media screen and (max-width: 500px){ .estimate-material-img-sd, .estimate-project-img-sd { width: 100px; } } Thank You! We appreciate that you took the time to let us know what you're interested in. We will contact you soon to confirm a time when we can discuss your special event in person.","source_bloq_id":618034,"bloq_type":"bloq-htmls","position":1,"word_count":717,"citeable":true}],"word_count":1489,"character_count":17036,"business_description":"Welcome to Pasifika Grill and Bar, where the vibrant cultures of Polynesia, Melanesia, and Micronesia meet the rustic flavors and spirit of the Pacific Northwest. Our menu bridges the oceanic gap, weaving together the tropical essence of the islands with the seasonal bounty of the Northwest, offering an experience that celebrates both regions\u2019 rich traditions and abundant landscapes.","schema_description":"\r\n  .unique-hidden {\r\n    display: none;\r\n  }\r\n \r\n\r\n\t@charset \"utf-8\";\r\n\/* Reset *\/\r\n@font-face {\r\n    font-family: 'Abel';\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    src: local('Abel Regula...","schema_enhanced":true,"last_schema_update":"2026-02-27 23:18:49 PST"},"media":{"images":[{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508234_YourMeetingSpace.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508235_confernececenter.jpg","alt":"meeting","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508235_confernececenter.jpg","alt":"meeting","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508237_otherlocation.jpg","alt":"Other Event","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504761_wedding.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504759_meeting.jpg","alt":"meeting","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504760_party.jpg","alt":"Celebration","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504762_corpmeeting.jpg","alt":"Conference","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504763_otherevent.jpg","alt":"Other Event","has_alt":true,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504704_people1.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504705_people3.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504703_people5.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504702_people7.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504701_peoplemany.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504713_money1.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504712_money2.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504711_money3.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504714_money4.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504463_appetizer.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504452_dessertbar.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504451_hotlunch.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504450_coldlunch.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504459_breakfast2.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504445_coffeeservice.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504457_buffet.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504458_dinnerhot.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504456_openbar.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504455_paybar.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504453_beverageservice.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504650_fullstaff.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504651_server.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504652_bartender.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1},{"url":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504653_delivery.jpg","alt":"","has_alt":false,"source_bloq_id":618034,"bloq_type":"bloq-htmls","position_in_page":1}],"videos":[],"galleries":[]},"links":{"internal":[],"external":[],"navigation":[]},"entities":{"people":[],"organizations":[],"products":["Pacifc Island"],"locations":["Bellevue","WA"],"landmarks":[],"businesses":["Your Location Hotel","Appetizers Dessert Bar Hot Lunch Cold Lunch Breakfast Coffee Service Buffet Dinner Service Open Bar Pay Bar","Pasifika Grill and Bar"],"events":[]},"schema_org":{"@context":"https:\/\/schema.org","@graph":{"0":{"@type":"Restaurant","@id":"https:\/\/www.pasifikagrill.com#organization","name":"Pasifika Grill and Bar","url":"https:\/\/www.pasifikagrill.com","description":"Welcome to Pasifika Grill and Bar, where the vibrant cultures of Polynesia, Melanesia, and Micronesia meet the rustic flavors and spirit of the Pacific Northwest. Our menu bridges the oceanic gap, weaving together the tropical essence of the islands with the seasonal bounty of the Northwest, offering an experience that celebrates both regions\u2019 rich traditions and abundant landscapes.","address":{"@type":"PostalAddress","streetAddress":"625 116th Ave NE","addressLocality":"Bellevue","addressRegion":"WA","postalCode":"98004","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":"47.6161391","longitude":"-122.1860072"},"additionalProperty":[],"telephone":"+1-425-285-7900","contactPoint":{"@type":"ContactPoint","telephone":"425-285-7900","contactType":"Reservations","areaServed":"Bellevue, Factoria, Renton, Issaquah, Redmond, Kirkland","availableLanguage":"English"},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":"Sunday","opens":"11:00","closes":"20:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"11:00","closes":"20:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"11:00","closes":"22:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"11:00","closes":"22:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"11:00","closes":"22:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"11:00","closes":"23:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"11:00","closes":"23:00"}],"priceRange":"$$","paymentAccepted":"credit card, cash","currenciesAccepted":"USD","acceptsReservations":true,"hasMenu":"https:\/\/www.pasifikagrill.com\/grill--bar-menu","servesCuisine":"Pacifc Island"},"telephone":"+1-425-285-7900","contactPoint":{"@type":"ContactPoint","telephone":"425-285-7900","contactType":"Reservations","areaServed":"Bellevue, Factoria, Renton, Issaquah, Redmond, Kirkland","availableLanguage":"English"},"1":{"@type":"WebSite","@id":"https:\/\/www.pasifikagrill.com#website","url":"https:\/\/www.pasifikagrill.com","name":"Pasifika Grill & Bar"},"2":{"@type":"WebPage","@id":"https:\/\/www.pasifikagrill.com\/catering#webpage","url":"https:\/\/www.pasifikagrill.com\/catering","name":"Catering","isPartOf":{"@id":"https:\/\/www.pasifikagrill.com#website"},"about":{"@id":"https:\/\/www.pasifikagrill.com#organization"},"datePublished":"2024-10-25T11:51:46-07:00","dateModified":"2026-02-27T23:18:48-08:00","description":"Experience vibrant Pacific flavors at your next event with Pasifika Grill & Bar Catering. Book now for unforgettable gatherings at Hotel 116.","breadcrumb":{"@id":"https:\/\/www.pasifikagrill.com\/catering#breadcrumb"}},"3":{"@type":"BreadcrumbList","@id":"https:\/\/www.pasifikagrill.com\/catering#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pasifikagrill.com"},{"@type":"ListItem","position":2,"name":"Catering","item":"https:\/\/www.pasifikagrill.com\/catering"}]},"4":{"text":"\r\n  .unique-hidden {\r\n    display: none;\r\n  }\r\n \r\n\r\n\t@charset \"utf-8\";\r\n\/* Reset *\/\r\n@font-face {\r\n    font-family: 'Abel';\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    src: local('Abel Regular'), local('Abel-Regular'), url(https:\/\/fonts.gstatic.com\/s\/abel\/v8\/MwQ5bhbm2POE2V9BPQ.woff2) format('woff2');\r\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\r\n}\r\n.estimate-con-input-sd {\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\/* Responsive Design *\/\r\n\/* Main *\/\r\n.estimate-con-input-sd {\r\n    box-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    width: 100%;\r\n    padding: 7px;\r\n    border-bottom: 2px solid rgba(93,162,154,0.12);\r\n    border-right: 2px solid rgba(93,162,154,0.12);\r\n    border-top: none;\r\n    border-left: none;\r\n    margin-bottom: 20px;\r\n    font-family: Abel;\r\n    height: 45px;\r\n    color: #18424d;\r\n    font-size: 20px;\r\n    background: rgba(93,162,154,0.04);\r\n\tmargin-right: 10px;\r\n\tmargin-left: 10px;\r\n}\r\n.estimate-textarea-sd {\r\n    font-family: Abel;\r\n    box-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    width: 100%;\r\n    padding: 7px;\r\n    border-bottom: 2px solid rgba(93,162,154,0.12);\r\n    border-right: 2px solid rgba(93,162,154,0.12);\r\n    border-top: none;\r\n    border-left: none;\r\n    margin-bottom: 20px;\r\n    color: #18424d;\r\n    background: rgba(93,162,154,0.04);\r\n    font-size: 20px;\r\n\tmin-height: 100px;\r\n\tresize: none;\r\n\toverflow: hidden;\r\n}\r\n#estimate-autoExpand2-sd {\r\n\tmin-height: 200px;\r\n}\r\n#estimate-visit-sd, #estimate-other-sd {\r\n\t\r\n}\r\n\r\n::placeholder { \/* Chrome, Firefox, Opera, Safari 10.1+ *\/\r\n color: #18424d;\r\n opacity: 1; \/* Firefox *\/\r\n}\r\n\r\n:-ms-input-placeholder { \/* Internet Explorer 10-11 *\/\r\n color: #18424d;\r\n}\r\n\r\n::-ms-input-placeholder { \/* Microsoft Edge *\/\r\n color: #18424d;\r\n}\r\n.estimate-img-sd {\r\n    width: 100%;\r\n}\r\n\r\n.estimate-bottom-space-sd{\r\n\tmargin-bottom: 20px;\r\n\t\r\n}\r\n\r\n.estimate-custom-check input{\r\n\tposition: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n.estimate-custom-radio input{\r\n\tposition: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n.estimate-custom-check {\r\n  display: block;\r\n  position: relative;\r\n  padding-left: 35px;\r\n  margin-bottom: 12px;\r\n  cursor: pointer;\r\n  font-size: 22px;\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n\/* Create a custom checkbox *\/\r\n.estimate-checkmark {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  height: 25px;\r\n  width: 25px;\r\n  background-color: #eee;\r\n}\r\n\r\n\/* On mouse-over, add a grey background color *\/\r\n.estimate-custom-check:hover input ~ .estimate-checkmark {\r\n  background-color: rgba(93,162,154,0.28);\r\n}\r\n\r\n\/* When the checkbox is checked, add a blue background *\/\r\n.estimate-custom-check input:checked ~ .estimate-checkmark {\r\n  background-color: rgba(93,162,154);\r\n}\r\n\r\n\/* Create the checkmark\/indicator (hidden when not checked) *\/\r\n.estimate-checkmark:after {\r\n  content: \"\";\r\n  position: absolute;\r\n  display: none;\r\n}\r\n\r\n\/* Show the checkmark when checked *\/\r\n.estimate-custom-check input:checked ~ .estimate-checkmark:after {\r\n  display: block;\r\n}\r\n\r\n\/* Style the checkmark\/indicator *\/\r\n.estimate-custom-check .estimate-checkmark:after {\r\n  left: 9px;\r\n  top: 5px;\r\n  width: 5px;\r\n  height: 10px;\r\n  border: solid white;\r\n  border-width: 0 3px 3px 0;\r\n  -webkit-transform: rotate(45deg);\r\n  -ms-transform: rotate(45deg);\r\n  transform: rotate(45deg);\r\n}\r\n\r\n.estimate-spacer-sd{\r\n\tpadding-left: 60px;\r\n}\r\n\r\n\/* Radio Button Style *\/\r\n\/* Customize the label (the container) *\/\r\n.estimate-custom-radio {\r\n  display: block;\r\n  position: relative;\r\n  padding-left: 35px;\r\n  margin-bottom: 12px;\r\n  cursor: pointer;\r\n  font-size: 22px;\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n\/* Hide the browser's default radio button *\/\r\n.estimate-custom-radio input {\r\n  position: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n\/* Create a custom radio button *\/\r\n.estimate-checkmark2 {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  height: 25px;\r\n  width: 25px;\r\n  background-color: #eee;\r\n  border-radius: 50%;\r\n}\r\n\r\n\/* On mouse-over, add a grey background color *\/\r\n.estimate-custom-radio:hover input ~ .estimate-checkmark2 {\r\n  background-color: rgba(93,162,154,0.28);\r\n}\r\n\r\n\/* When the radio button is checked, add a blue background *\/\r\n.estimate-custom-radio input:checked ~ .estimate-checkmark2 {\r\n  background-color: rgba(93,162,154);\r\n}\r\n\r\n\/* Create the indicator (the dot\/circle - hidden when not checked) *\/\r\n.estimate-checkmark2:after {\r\n  content: \"\";\r\n  position: absolute;\r\n  display: none;\r\n}\r\n\r\n\/* Show the indicator (dot\/circle) when checked *\/\r\n.estimate-custom-radio input:checked ~ .estimate-checkmark2:after {\r\n  display: block;\r\n}\r\n\r\n\/* Style the indicator (dot\/circle) *\/\r\n.estimate-custom-radio .estimate-checkmark2:after {\r\n  top: 9px;\r\n  left: 9px;\r\n  width: 8px;\r\n  height: 8px;\r\n  border-radius: 50%;\r\n  background: white;\r\n}\r\n\r\n.estimate-material-img-sd {\r\n    width: 136px;\r\n    margin: 10px;\r\n    text-align: center;\r\n\tfont-family: Abel;\r\n\tfont-size: 15px;\r\n\tcolor: #18424d;\r\n\tpadding-bottom: 10px;\r\n\tborder: 1px solid #6021;\r\n    padding: 8px;\r\n    vertical-align: top;\r\n    display: inline-block;\r\n}\r\n\r\n.estimate-material-img-sd:hover {\r\n    background-color: #909287;\r\n    color: white;\r\n}\r\n.estimate-project-img-sd {\r\n    width: 136px;\r\n    margin: 10px;\r\n    text-align: center;\r\n\tfont-family: Abel;\r\n\tfont-size: 20px;\r\n\tcolor: #18424d;\r\n\tpadding-bottom: 10px;\r\n\tpadding: 8px;\r\n\tborder: 1px solid #6021\r\n}\r\n.estimate-project-img-sd:hover {\r\n    background-color: rgba(58, 86, 90);\r\n    color: white;\r\n    \/* background-color: rgba(93,162,154,0.18); *\/\r\n\t\r\n}\r\n\r\n.estimate-project-img-selected-sd {\r\n    background-color: rgb(58, 86, 90);\r\n    border: 1px solid rgb(0, 0, 0);\r\n    color: white;\r\n}\r\n.estimate-material-img-selected-sd {\r\n    background-color: #99a36f;\r\n    border: 1px solid rgb(0, 0, 0);\r\n    color: white;\r\n}\r\n.estimate-sections-sd {\r\n    max-width: 960px;\r\n    margin: auto;\r\n    margin-bottom: 20px;\r\n}\r\n#estimate-contact-sd {\r\n    padding-top: 30px;\r\n    padding-bottom: 30px;\r\n    \r\n}\r\n\r\n#estimate-option-sd{\r\n\t\r\n    padding-bottom: 30px;\r\n}\r\n.estimate-form-row-sd {\r\n    padding: 0;\r\n    display: flex;\r\n}\r\n#estimate-completed-sd{\r\n\t\r\n    padding-bottom: 30px;\r\n}\r\n.estimate-form-row-sd input {\r\n    flex: 1;\r\n}\r\n.estimate-form-row-sd textarea {\r\n    flex: 1;\r\n\tpadding: 10px;\r\n}\r\n.estimate-options-row-sd{\r\n\tpadding-left: 60px;\r\n\tfont-family: Abel;\r\n\tfont-size: 20px;\r\n\tcolor: #18424d;\r\n\tmargin-bottom: 10px;\r\n}\r\n.estimate-form-img-sd {\r\n   \r\n    flex-wrap: wrap;\r\n    align-items: center;\r\n    box-sizing: border-box;\r\n}\r\n.estimate-spacing-sd {\r\n    justify-content:flex-start;\r\n}\r\n.estimate-section-header-sd {\r\n    text-align:left;\r\n\tmargin-left: 10px;\r\n    color: #18424d;\r\n    font-family: Abel;\r\n}\r\n\r\n.estimate-btn-sd {\r\n\twidth: 200px;\r\n\tmargin: auto;\r\n\tmargin-bottom: 60px;\r\n\tbox-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    padding: 7px;\r\n    border-bottom: 2px solid #18424d;\r\n    border-right: 2px solid #18424d;\r\n    border-top: none;\r\n    border-left: none;\r\n    font-family: Abel;\r\n    height: 45px;\r\n    font-size: 25px;\r\n\ttext-decoration: none;\r\n\ttext-align: center;\r\n\tvertical-align: middle;\r\n\tbackground-color: #18424d;\r\n\tcolor: white !important;\r\n\t\r\n}\r\n\r\n.estimate-btn-sd a {\r\n\tcolor: white !important;\r\n}\r\n\r\n.estimate-btn-sd:hover {\r\n\tbackground-color:rgb(255, 51, 204);\r\n\tcolor: white !important;\r\n\t\r\n}\r\n\r\n#estimate-thankYouText-sd {\r\n\tmax-width: 900px;\r\n\tmargin: auto;\r\n\tpadding: 60px;\r\n}\r\n@media screen and (max-width: 500px){\r\n\t.estimate-material-img-sd, .estimate-project-img-sd {\r\n\t\twidth: 100px;\r\n\t}\r\n}\r\n\r\n\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n    \r\n  \r\n  \r\n  \r\n  \r\n    \r\n      \r\n        \r\n        \r\n      \r\n       \r\n       \r\n        \r\n      \r\n     \r\n      \r\n        \r\n        \r\n      \r\n          \r\n\r\n    \r\n    \r\n     \r\n    \r\n\r\n      Date of Event:\r\n        \r\n         \r\n       \r\n      \r\n    \r\n    \r\n\r\n        \r\n    \t  \r\n      Where are you planning to have your event?\r\n      \r\n        \r\n         Your Location \r\n        \r\n                  Hotel 116 Banquet Space \r\n        \r\n        \r\n          A Conference Center \r\n        \r\n\r\n        \r\n        \r\n          Other Location\r\n        \r\n      \r\n            \r\n    \r\n\t  \r\n      What kind of event are you planning on catering?\r\n      \r\n        \r\n         Wedding \r\n        \r\n          Meeting \r\n        \r\n          Celebration \r\n        \r\n          Conference \r\n        \r\n          Other \r\n        \r\n      \r\n            \r\n    \r\n\t  \r\n      My event will have approximately __ guests:\r\n      \r\n          Under 10 \r\n          10 - 40 \r\n          40 - 100 \r\n          100 - 250 \r\n          250 + \r\n      \r\n    \r\n        \r\n\t  \r\n      What is your budget per person:\r\n      \r\n          $10 - $15 \r\n          $15 - $20 \r\n          $20 - $30 \r\n          $30 + \r\n      \r\n    \r\n    \r\n    \r\n    \r\n      At our event we would like catering to include:\r\n      \r\n              \r\n        \r\n          Appetizers \r\n        \r\n          Dessert Bar \r\n        \r\n          Hot Lunch \r\n        \r\n          Cold Lunch \r\n\r\n      \r\n          Breakfast \r\n        \r\n          Coffee Service \r\n        \r\n          Buffet \r\n        \r\n          Dinner Service \r\n        \r\n         \r\n            Open Bar \r\n          \r\n          Pay Bar \r\n        \r\n          Beverages \r\n         \r\n      \r\n    \r\n        \r\n    \r\n      Please tell us what level of staffing you\u2019ll need:\r\n      \r\n          Full Staff with set up & tear down \r\n        \r\n          Servers Only \r\n        \r\n          Bartender \r\n        \r\n          No Staff - Drop off only \r\n      \r\n    \r\n    \r\n    \r\n    \r\n      Let us know if there is anything else we should know about your event:\r\n      \r\n        \r\n      \r\n    \r\n      \r\n      Submit\r\n     \r\n     \r\n     \r\n\r\n\r\n  Thank You!\r\n  We appreciate that you took the time to let us know what you're interested in. We will contact you soon to confirm a time when we can discuss your special event in person.\r\n\r\n\r\n  var csrfToken = document.querySelector('meta[name=\"csrfToken\"]').getAttribute('content');\r\n          console.log(csrfToken);\r\n  \t\r\n\t\tfunction estimateSetValue(variableId,value,object){\r\n\t\t\tif (value == '1'){\r\n\t\t\t\tif(parseInt($('#'+variableId).val())==1){\r\n\t\t\t\t\t$('#'+variableId).val(0);\r\n\t\t\t\t\tif ($(object).hasClass('estimate-project-img-sd'))\r\n\t\t\t\t\t\t$(object).removeClass('estimate-project-img-selected-sd');\r\n\t\t\t\t\tif ($(object).hasClass('estimate-material-img-sd'))\r\n\t\t\t\t\t\t$(object).removeClass('estimate-material-img-selected-sd');\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse {\r\n\t\t\t\t\t$('#'+variableId).val(1);\r\n\t\t\t\t\tif ($(object).hasClass('estimate-project-img-sd'))\r\n\t\t\t\t\t\t$(object).addClass('estimate-project-img-selected-sd');\r\n\t\t\t\t\tif ($(object).hasClass('estimate-material-img-sd'))\r\n\t\t\t\t\t\t$(object).addClass('estimate-material-img-selected-sd');\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$('#'+variableId).val(value);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\tfunction estimateValidateEmail(email) {\r\n  \t\tvar re = \/^(([^()[\\]\\\\.,;:\\s@\\\"]+(\\.[^()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$\/;\r\n  \t\treturn re.test(email);\r\n\t}\r\n\tfunction estimateSendEmails(){\r\n\r\n\t\t$('input.error').removeClass('error');\r\n\t\tif($('#fname').val().trim().length == 0){\r\n\t\t\t$('#fname').addClass('error');\r\n\t\t}\r\n\t\tif($('#lname').val().trim().length == 0){\r\n\t\t\t$('#lname').addClass('error');\r\n\t\t}\r\n\t\tif(!estimateValidateEmail($('#email').val())){\r\n\t\t\t$('#email').addClass('error');\r\n\t\t}\r\n\t\t\r\n\t\tif($('#phone').val().trim().length == 0 && $('#consult:checked').length ){\r\n\t\t\t$('#phone').addClass('error');\r\n\t\t}\r\n\t\r\n\t\tif($('.error').length>0){\r\n\t\t\t$('.error:first').focus();\r\n\t\t} else {\r\n          \r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\tdata:$('#estimate-project-form input[value!=0], #estimate-project-form textarea').serialize(),\r\n\t\t\t\ttype:'post',\r\n                headers: {\r\n                    'X-CSRFToken': csrfToken\r\n                },\r\n\t\t\t\tdataType:'html',\r\n\t\t\t\turl:'\/_cater_4_you_entries\/send_email', \/\/Insert link value\r\n\t\t\t\tsuccess:function(resp){\r\n\t\t\t\t\t$('#estimate-mainform-sd').hide();\r\n\t\t\t\t\t$('#estimate-thankYouText-sd').show();\r\n                  $('body,html').animate({ 'scrollTop': $(\"#estimate-thankYouText-sd\").offset().top-300}, 1000);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t}\r\n\t$(\"#estimate-autoExpand1-sd\").on('input', function() {\r\n\tvar scroll_height = $(\"#estimate-autoExpand1-sd\").get(0).scrollHeight;\r\n\r\n\t$(\"#estimate-autoExpand1-sd\").css('height', scroll_height + 'px');\r\n});\r\n\t$(\"#estimate-autoExpand2-sd\").on('input', function() {\r\n\tvar scroll_height = $(\"#estimate-autoExpand2-sd\").get(0).scrollHeight;\r\n\r\n\t$(\"#estimate-autoExpand2-sd\").css('height', scroll_height + 'px');\r\n});\r\n  \r\n  \/\/ Find the input element\r\n    var inputElement = document.querySelector('input[name=\"other_text\"]');\r\n\r\n    if (inputElement) {\r\n        \/\/ Create a new textarea element\r\n        var textareaElement = document.createElement(\"textarea\");\r\n\r\n        \/\/ Copy attributes from the input element to the textarea element\r\n        textareaElement.name = inputElement.name;\r\n        textareaElement.className = inputElement.className;\r\n        textareaElement.required = inputElement.required;\r\n        textareaElement.value = inputElement.value; \/\/ Preserve the value if there's any\r\n\r\n        \/\/ Replace the input element with the textarea element\r\n        inputElement.parentNode.replaceChild(textareaElement, inputElement);\r\n    }\r\n\t\r\n    \r\n    \r\ndocument.getElementById('uniqueSingleStepForm').addEventListener('submit', function(event) {\r\n    event.preventDefault();\r\n    var form = document.getElementById('uniqueSingleStepForm');\r\n\r\n    var formData = new FormData(form);\r\n    console.log('submitting form');\r\n    var csrfToken = document.querySelector('meta[name=\"csrfToken\"]').getAttribute('content');\r\n    var xhr = new XMLHttpRequest();\r\n\t\r\n  \t$('input.error').removeClass('error');\r\n    if($('#fname').val().trim().length == 0){\r\n        $('#fname').addClass('error');\r\n    }\r\n    if($('#lname').val().trim().length == 0){\r\n        $('#lname').addClass('error');\r\n    }\r\n    if(!estimateValidateEmail($('#email').val())){\r\n        $('#email').addClass('error');\r\n    }\r\n\r\n    if($('#phone').val().trim().length == 0 && $('#consult:checked').length ){\r\n        $('#phone').addClass('error');\r\n    }\r\n\r\n\r\nif($('#EventDate').val().trim().length == 0){\r\n    $('#EventDate').addClass('error');\r\n}\r\n\r\n    if($('.error').length>0){\r\n        $('.error:first').focus();\r\n    } else {\r\n    \/\/ Specify the type of request, the URL, and whether it should be asynchronous\r\n    xhr.open('POST', \"\/generic-custom-forms\/save-generic-custom-forms-info\/5283\", true);\r\n\r\n    \/\/ Set the request header to tell the server to expect form data\r\n    xhr.setRequestHeader('X-CSRF-Token', csrfToken);\r\n\r\n    \/\/ Define what happens on successful data submission\r\n    xhr.onload = function() {\r\n        console.log('loaded result');\r\n        if (xhr.status >= 200 && xhr.status < 400) {\r\n            console.log('looks like success');\r\n            let form = document.getElementById('uniqueSingleStepForm');\r\n            let thankYouSection = document.getElementById('estimate-thankYouText-sd');\r\n\r\n            form.classList.add('unique-hidden');\r\n            thankYouSection.classList.remove('unique-hidden');\r\n        } else {\r\n            \/\/ We reached our target server, but it returned an error\r\n            console.error(\"Server reached, but it returned an error\");\r\n        }\r\n    };\r\n\r\n    \/\/ Define what happens in case of an error\r\n    xhr.onerror = function() {\r\n        \/\/ There was a connection error of some sort\r\n        console.error(\"Failed to connect to server\");\r\n    };\r\n\r\n    \/\/ Send the request with the data\r\n    xhr.send(formData);\r\n    }\r\n    return false;\r\n});\r\n\r\n","@type":"WebPage","@context":"https:\/\/schema.org","description":"\r\n  .unique-hidden {\r\n    display: none;\r\n  }\r\n \r\n\r\n\t@charset \"utf-8\";\r\n\/* Reset *\/\r\n@font-face {\r\n    font-family: 'Abel';\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    src: local('Abel Regula..."}},"generated":"2026-02-27 23:18:49 PST","generatedBy":"cp"},"bloqs":[{"bloq_item_id":618011,"bloq_type":"bloq-rich-text-editors","display_order":0,"data":{"bloq_type":"rich_text_content","description":"Rich text content with formatted HTML","content_type":"text","timestamp":"2026-02-27T23:18:48-08:00","statistics":{"word_count":115,"image_count":0,"link_count":0,"images_with_alt":0},"images":[],"links":[],"plain_text":"\r\n    Pasifika Grill & Bar Catering\r\nPOWERED BY: CATER 4 YOU\r\n\r\nBring the vibrant flavors of the Pacific Islands and the Pacific Northwest to your next event with our catering services! Whether it\u2019s a lively luau, a corporate gathering, or an intimate celebration, our team is here to create an unforgettable experience tailored to your vision.\r\nLocated within Hotel 116, we also offer access to a beautiful banquet space, making it even easier to host your event in style. Simply fill out the form below to let us know about your event\u2019s location, style, size, and budget, and we\u2019ll handle the rest\u2014infusing each dish with a taste of aloha and a touch of Northwest flair.\r\n","paragraphs":["Bring the vibrant flavors of the Pacific Islands and the Pacific Northwest to your next event with our catering services! Whether it\u2019s a lively luau, a corporate gathering, or an intimate celebration, our team is here to create an unforgettable experience tailored to your vision.","Located within Hotel 116, we also offer access to a beautiful banquet space, making it even easier to host your event in style. Simply fill out the form below to let us know about your event\u2019s location, style, size, and budget, and we\u2019ll handle the rest\u2014infusing each dish with a taste of aloha and a touch of Northwest flair."]}},{"bloq_item_id":618034,"bloq_type":"bloq-htmls","display_order":1,"data":{"bloq_type":"content","description":"Raw HTML content with embedded elements","content_type":"html","timestamp":"2026-02-27T23:18:48-08:00","statistics":{"word_count":1374,"element_count":158,"image_count":33,"link_count":0,"script_count":2,"style_count":2,"iframe_count":0,"images_with_alt":7},"content_analysis":{"has_scripts":true,"has_styles":true,"security_risk":"high"},"images":[{"position":1,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508234_YourMeetingSpace.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":2,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508235_confernececenter.jpg","alt":"meeting","has_alt":true,"width":"","height":""},{"position":3,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508235_confernececenter.jpg","alt":"meeting","has_alt":true,"width":"","height":""},{"position":4,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/508237_otherlocation.jpg","alt":"Other Event","has_alt":true,"width":"","height":""},{"position":5,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504761_wedding.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":6,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504759_meeting.jpg","alt":"meeting","has_alt":true,"width":"","height":""},{"position":7,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504760_party.jpg","alt":"Celebration","has_alt":true,"width":"","height":""},{"position":8,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504762_corpmeeting.jpg","alt":"Conference","has_alt":true,"width":"","height":""},{"position":9,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504763_otherevent.jpg","alt":"Other Event","has_alt":true,"width":"","height":""},{"position":10,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504704_people1.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":11,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504705_people3.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":12,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504703_people5.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":13,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504702_people7.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":14,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504701_peoplemany.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":15,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504713_money1.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":16,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504712_money2.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":17,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504711_money3.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":18,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504714_money4.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":19,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504463_appetizer.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":20,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504452_dessertbar.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":21,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504451_hotlunch.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":22,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504450_coldlunch.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":23,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504459_breakfast2.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":24,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504445_coffeeservice.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":25,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504457_buffet.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":26,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504458_dinnerhot.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":27,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504456_openbar.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":28,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504455_paybar.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":29,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504453_beverageservice.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":30,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504650_fullstaff.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":31,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504651_server.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":32,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504652_bartender.jpg","alt":"","has_alt":false,"width":"","height":""},{"position":33,"src":"https:\/\/bloqs.s3.amazonaws.com\/1832-3684\/504653_delivery.jpg","alt":"","has_alt":false,"width":"","height":""}],"links":[],"scripts":[{"position":1,"src":"","type":"","has_src":false,"has_content":true,"content_length":3405},{"position":2,"src":"","type":"","has_src":false,"has_content":true,"content_length":2321}],"styles":[{"position":1,"content_length":16327,"type":""},{"position":2,"content_length":8092,"type":"text\/css"}],"iframes":[],"plain_text":"\r\n  .unique-hidden {\r\n    display: none;\r\n  }\r\n \r\n\r\n\t@charset \"utf-8\";\r\n\/* Reset *\/\r\n@font-face {\r\n    font-family: 'Abel';\r\n    font-style: normal;\r\n    font-weight: 400;\r\n    src: local('Abel Regular'), local('Abel-Regular'), url(https:\/\/fonts.gstatic.com\/s\/abel\/v8\/MwQ5bhbm2POE2V9BPQ.woff2) format('woff2');\r\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\r\n}\r\n.estimate-con-input-sd {\r\n    margin: 0;\r\n    padding: 0;\r\n}\r\n\/* Responsive Design *\/\r\n\/* Main *\/\r\n.estimate-con-input-sd {\r\n    box-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    width: 100%;\r\n    padding: 7px;\r\n    border-bottom: 2px solid rgba(93,162,154,0.12);\r\n    border-right: 2px solid rgba(93,162,154,0.12);\r\n    border-top: none;\r\n    border-left: none;\r\n    margin-bottom: 20px;\r\n    font-family: Abel;\r\n    height: 45px;\r\n    color: #18424d;\r\n    font-size: 20px;\r\n    background: rgba(93,162,154,0.04);\r\n\tmargin-right: 10px;\r\n\tmargin-left: 10px;\r\n}\r\n.estimate-textarea-sd {\r\n    font-family: Abel;\r\n    box-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    width: 100%;\r\n    padding: 7px;\r\n    border-bottom: 2px solid rgba(93,162,154,0.12);\r\n    border-right: 2px solid rgba(93,162,154,0.12);\r\n    border-top: none;\r\n    border-left: none;\r\n    margin-bottom: 20px;\r\n    color: #18424d;\r\n    background: rgba(93,162,154,0.04);\r\n    font-size: 20px;\r\n\tmin-height: 100px;\r\n\tresize: none;\r\n\toverflow: hidden;\r\n}\r\n#estimate-autoExpand2-sd {\r\n\tmin-height: 200px;\r\n}\r\n#estimate-visit-sd, #estimate-other-sd {\r\n\t\r\n}\r\n\r\n::placeholder { \/* Chrome, Firefox, Opera, Safari 10.1+ *\/\r\n color: #18424d;\r\n opacity: 1; \/* Firefox *\/\r\n}\r\n\r\n:-ms-input-placeholder { \/* Internet Explorer 10-11 *\/\r\n color: #18424d;\r\n}\r\n\r\n::-ms-input-placeholder { \/* Microsoft Edge *\/\r\n color: #18424d;\r\n}\r\n.estimate-img-sd {\r\n    width: 100%;\r\n}\r\n\r\n.estimate-bottom-space-sd{\r\n\tmargin-bottom: 20px;\r\n\t\r\n}\r\n\r\n.estimate-custom-check input{\r\n\tposition: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n.estimate-custom-radio input{\r\n\tposition: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n.estimate-custom-check {\r\n  display: block;\r\n  position: relative;\r\n  padding-left: 35px;\r\n  margin-bottom: 12px;\r\n  cursor: pointer;\r\n  font-size: 22px;\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n\/* Create a custom checkbox *\/\r\n.estimate-checkmark {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  height: 25px;\r\n  width: 25px;\r\n  background-color: #eee;\r\n}\r\n\r\n\/* On mouse-over, add a grey background color *\/\r\n.estimate-custom-check:hover input ~ .estimate-checkmark {\r\n  background-color: rgba(93,162,154,0.28);\r\n}\r\n\r\n\/* When the checkbox is checked, add a blue background *\/\r\n.estimate-custom-check input:checked ~ .estimate-checkmark {\r\n  background-color: rgba(93,162,154);\r\n}\r\n\r\n\/* Create the checkmark\/indicator (hidden when not checked) *\/\r\n.estimate-checkmark:after {\r\n  content: \"\";\r\n  position: absolute;\r\n  display: none;\r\n}\r\n\r\n\/* Show the checkmark when checked *\/\r\n.estimate-custom-check input:checked ~ .estimate-checkmark:after {\r\n  display: block;\r\n}\r\n\r\n\/* Style the checkmark\/indicator *\/\r\n.estimate-custom-check .estimate-checkmark:after {\r\n  left: 9px;\r\n  top: 5px;\r\n  width: 5px;\r\n  height: 10px;\r\n  border: solid white;\r\n  border-width: 0 3px 3px 0;\r\n  -webkit-transform: rotate(45deg);\r\n  -ms-transform: rotate(45deg);\r\n  transform: rotate(45deg);\r\n}\r\n\r\n.estimate-spacer-sd{\r\n\tpadding-left: 60px;\r\n}\r\n\r\n\/* Radio Button Style *\/\r\n\/* Customize the label (the container) *\/\r\n.estimate-custom-radio {\r\n  display: block;\r\n  position: relative;\r\n  padding-left: 35px;\r\n  margin-bottom: 12px;\r\n  cursor: pointer;\r\n  font-size: 22px;\r\n  -webkit-user-select: none;\r\n  -moz-user-select: none;\r\n  -ms-user-select: none;\r\n  user-select: none;\r\n}\r\n\r\n\/* Hide the browser's default radio button *\/\r\n.estimate-custom-radio input {\r\n  position: absolute;\r\n  opacity: 0;\r\n  cursor: pointer;\r\n  height: 0;\r\n  width: 0;\r\n}\r\n\r\n\/* Create a custom radio button *\/\r\n.estimate-checkmark2 {\r\n  position: absolute;\r\n  top: 0;\r\n  left: 0;\r\n  height: 25px;\r\n  width: 25px;\r\n  background-color: #eee;\r\n  border-radius: 50%;\r\n}\r\n\r\n\/* On mouse-over, add a grey background color *\/\r\n.estimate-custom-radio:hover input ~ .estimate-checkmark2 {\r\n  background-color: rgba(93,162,154,0.28);\r\n}\r\n\r\n\/* When the radio button is checked, add a blue background *\/\r\n.estimate-custom-radio input:checked ~ .estimate-checkmark2 {\r\n  background-color: rgba(93,162,154);\r\n}\r\n\r\n\/* Create the indicator (the dot\/circle - hidden when not checked) *\/\r\n.estimate-checkmark2:after {\r\n  content: \"\";\r\n  position: absolute;\r\n  display: none;\r\n}\r\n\r\n\/* Show the indicator (dot\/circle) when checked *\/\r\n.estimate-custom-radio input:checked ~ .estimate-checkmark2:after {\r\n  display: block;\r\n}\r\n\r\n\/* Style the indicator (dot\/circle) *\/\r\n.estimate-custom-radio .estimate-checkmark2:after {\r\n  top: 9px;\r\n  left: 9px;\r\n  width: 8px;\r\n  height: 8px;\r\n  border-radius: 50%;\r\n  background: white;\r\n}\r\n\r\n.estimate-material-img-sd {\r\n    width: 136px;\r\n    margin: 10px;\r\n    text-align: center;\r\n\tfont-family: Abel;\r\n\tfont-size: 15px;\r\n\tcolor: #18424d;\r\n\tpadding-bottom: 10px;\r\n\tborder: 1px solid #6021;\r\n    padding: 8px;\r\n    vertical-align: top;\r\n    display: inline-block;\r\n}\r\n\r\n.estimate-material-img-sd:hover {\r\n    background-color: #909287;\r\n    color: white;\r\n}\r\n.estimate-project-img-sd {\r\n    width: 136px;\r\n    margin: 10px;\r\n    text-align: center;\r\n\tfont-family: Abel;\r\n\tfont-size: 20px;\r\n\tcolor: #18424d;\r\n\tpadding-bottom: 10px;\r\n\tpadding: 8px;\r\n\tborder: 1px solid #6021\r\n}\r\n.estimate-project-img-sd:hover {\r\n    background-color: rgba(58, 86, 90);\r\n    color: white;\r\n    \/* background-color: rgba(93,162,154,0.18); *\/\r\n\t\r\n}\r\n\r\n.estimate-project-img-selected-sd {\r\n    background-color: rgb(58, 86, 90);\r\n    border: 1px solid rgb(0, 0, 0);\r\n    color: white;\r\n}\r\n.estimate-material-img-selected-sd {\r\n    background-color: #99a36f;\r\n    border: 1px solid rgb(0, 0, 0);\r\n    color: white;\r\n}\r\n.estimate-sections-sd {\r\n    max-width: 960px;\r\n    margin: auto;\r\n    margin-bottom: 20px;\r\n}\r\n#estimate-contact-sd {\r\n    padding-top: 30px;\r\n    padding-bottom: 30px;\r\n    \r\n}\r\n\r\n#estimate-option-sd{\r\n\t\r\n    padding-bottom: 30px;\r\n}\r\n.estimate-form-row-sd {\r\n    padding: 0;\r\n    display: flex;\r\n}\r\n#estimate-completed-sd{\r\n\t\r\n    padding-bottom: 30px;\r\n}\r\n.estimate-form-row-sd input {\r\n    flex: 1;\r\n}\r\n.estimate-form-row-sd textarea {\r\n    flex: 1;\r\n\tpadding: 10px;\r\n}\r\n.estimate-options-row-sd{\r\n\tpadding-left: 60px;\r\n\tfont-family: Abel;\r\n\tfont-size: 20px;\r\n\tcolor: #18424d;\r\n\tmargin-bottom: 10px;\r\n}\r\n.estimate-form-img-sd {\r\n   \r\n    flex-wrap: wrap;\r\n    align-items: center;\r\n    box-sizing: border-box;\r\n}\r\n.estimate-spacing-sd {\r\n    justify-content:flex-start;\r\n}\r\n.estimate-section-header-sd {\r\n    text-align:left;\r\n\tmargin-left: 10px;\r\n    color: #18424d;\r\n    font-family: Abel;\r\n}\r\n\r\n.estimate-btn-sd {\r\n\twidth: 200px;\r\n\tmargin: auto;\r\n\tmargin-bottom: 60px;\r\n\tbox-sizing: border-box;\r\n    -webkit-box-sizing: border-box;\r\n    -moz-box-sizing: border-box;\r\n    outline: none;\r\n    display: block;\r\n    padding: 7px;\r\n    border-bottom: 2px solid #18424d;\r\n    border-right: 2px solid #18424d;\r\n    border-top: none;\r\n    border-left: none;\r\n    font-family: Abel;\r\n    height: 45px;\r\n    font-size: 25px;\r\n\ttext-decoration: none;\r\n\ttext-align: center;\r\n\tvertical-align: middle;\r\n\tbackground-color: #18424d;\r\n\tcolor: white !important;\r\n\t\r\n}\r\n\r\n.estimate-btn-sd a {\r\n\tcolor: white !important;\r\n}\r\n\r\n.estimate-btn-sd:hover {\r\n\tbackground-color:rgb(255, 51, 204);\r\n\tcolor: white !important;\r\n\t\r\n}\r\n\r\n#estimate-thankYouText-sd {\r\n\tmax-width: 900px;\r\n\tmargin: auto;\r\n\tpadding: 60px;\r\n}\r\n@media screen and (max-width: 500px){\r\n\t.estimate-material-img-sd, .estimate-project-img-sd {\r\n\t\twidth: 100px;\r\n\t}\r\n}\r\n\r\n\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n  \r\n  \r\n\t\r\n  \r\n  \r\n  \r\n    \r\n  \r\n  \r\n  \r\n  \r\n    \r\n      \r\n        \r\n        \r\n      \r\n       \r\n       \r\n        \r\n      \r\n     \r\n      \r\n        \r\n        \r\n      \r\n          \r\n\r\n    \r\n    \r\n     \r\n    \r\n\r\n      Date of Event:\r\n        \r\n         \r\n       \r\n      \r\n    \r\n    \r\n\r\n        \r\n    \t  \r\n      Where are you planning to have your event?\r\n      \r\n        \r\n         Your Location \r\n        \r\n                  Hotel 116 Banquet Space \r\n        \r\n        \r\n          A Conference Center \r\n        \r\n\r\n        \r\n        \r\n          Other Location\r\n        \r\n      \r\n            \r\n    \r\n\t  \r\n      What kind of event are you planning on catering?\r\n      \r\n        \r\n         Wedding \r\n        \r\n          Meeting \r\n        \r\n          Celebration \r\n        \r\n          Conference \r\n        \r\n          Other \r\n        \r\n      \r\n            \r\n    \r\n\t  \r\n      My event will have approximately __ guests:\r\n      \r\n          Under 10 \r\n          10 - 40 \r\n          40 - 100 \r\n          100 - 250 \r\n          250 + \r\n      \r\n    \r\n        \r\n\t  \r\n      What is your budget per person:\r\n      \r\n          $10 - $15 \r\n          $15 - $20 \r\n          $20 - $30 \r\n          $30 + \r\n      \r\n    \r\n    \r\n    \r\n    \r\n      At our event we would like catering to include:\r\n      \r\n              \r\n        \r\n          Appetizers \r\n        \r\n          Dessert Bar \r\n        \r\n          Hot Lunch \r\n        \r\n          Cold Lunch \r\n\r\n      \r\n          Breakfast \r\n        \r\n          Coffee Service \r\n        \r\n          Buffet \r\n        \r\n          Dinner Service \r\n        \r\n         \r\n            Open Bar \r\n          \r\n          Pay Bar \r\n        \r\n          Beverages \r\n         \r\n      \r\n    \r\n        \r\n    \r\n      Please tell us what level of staffing you\u2019ll need:\r\n      \r\n          Full Staff with set up & tear down \r\n        \r\n          Servers Only \r\n        \r\n          Bartender \r\n        \r\n          No Staff - Drop off only \r\n      \r\n    \r\n    \r\n    \r\n    \r\n      Let us know if there is anything else we should know about your event:\r\n      \r\n        \r\n      \r\n    \r\n      \r\n      Submit\r\n     \r\n     \r\n     \r\n\r\n\r\n  Thank You!\r\n  We appreciate that you took the time to let us know what you're interested in. We will contact you soon to confirm a time when we can discuss your special event in person.\r\n\r\n\r\n  var csrfToken = document.querySelector('meta[name=\"csrfToken\"]').getAttribute('content');\r\n          console.log(csrfToken);\r\n  \t\r\n\t\tfunction estimateSetValue(variableId,value,object){\r\n\t\t\tif (value == '1'){\r\n\t\t\t\tif(parseInt($('#'+variableId).val())==1){\r\n\t\t\t\t\t$('#'+variableId).val(0);\r\n\t\t\t\t\tif ($(object).hasClass('estimate-project-img-sd'))\r\n\t\t\t\t\t\t$(object).removeClass('estimate-project-img-selected-sd');\r\n\t\t\t\t\tif ($(object).hasClass('estimate-material-img-sd'))\r\n\t\t\t\t\t\t$(object).removeClass('estimate-material-img-selected-sd');\r\n\t\t\t\t}\r\n\r\n\t\t\t\telse {\r\n\t\t\t\t\t$('#'+variableId).val(1);\r\n\t\t\t\t\tif ($(object).hasClass('estimate-project-img-sd'))\r\n\t\t\t\t\t\t$(object).addClass('estimate-project-img-selected-sd');\r\n\t\t\t\t\tif ($(object).hasClass('estimate-material-img-sd'))\r\n\t\t\t\t\t\t$(object).addClass('estimate-material-img-selected-sd');\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$('#'+variableId).val(value);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\tfunction estimateValidateEmail(email) {\r\n  \t\tvar re = \/^(([^()[\\]\\\\.,;:\\s@\\\"]+(\\.[^()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$\/;\r\n  \t\treturn re.test(email);\r\n\t}\r\n\tfunction estimateSendEmails(){\r\n\r\n\t\t$('input.error').removeClass('error');\r\n\t\tif($('#fname').val().trim().length == 0){\r\n\t\t\t$('#fname').addClass('error');\r\n\t\t}\r\n\t\tif($('#lname').val().trim().length == 0){\r\n\t\t\t$('#lname').addClass('error');\r\n\t\t}\r\n\t\tif(!estimateValidateEmail($('#email').val())){\r\n\t\t\t$('#email').addClass('error');\r\n\t\t}\r\n\t\t\r\n\t\tif($('#phone').val().trim().length == 0 && $('#consult:checked').length ){\r\n\t\t\t$('#phone').addClass('error');\r\n\t\t}\r\n\t\r\n\t\tif($('.error').length>0){\r\n\t\t\t$('.error:first').focus();\r\n\t\t} else {\r\n          \r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\tdata:$('#estimate-project-form input[value!=0], #estimate-project-form textarea').serialize(),\r\n\t\t\t\ttype:'post',\r\n                headers: {\r\n                    'X-CSRFToken': csrfToken\r\n                },\r\n\t\t\t\tdataType:'html',\r\n\t\t\t\turl:'\/_cater_4_you_entries\/send_email', \/\/Insert link value\r\n\t\t\t\tsuccess:function(resp){\r\n\t\t\t\t\t$('#estimate-mainform-sd').hide();\r\n\t\t\t\t\t$('#estimate-thankYouText-sd').show();\r\n                  $('body,html').animate({ 'scrollTop': $(\"#estimate-thankYouText-sd\").offset().top-300}, 1000);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t}\r\n\t$(\"#estimate-autoExpand1-sd\").on('input', function() {\r\n\tvar scroll_height = $(\"#estimate-autoExpand1-sd\").get(0).scrollHeight;\r\n\r\n\t$(\"#estimate-autoExpand1-sd\").css('height', scroll_height + 'px');\r\n});\r\n\t$(\"#estimate-autoExpand2-sd\").on('input', function() {\r\n\tvar scroll_height = $(\"#estimate-autoExpand2-sd\").get(0).scrollHeight;\r\n\r\n\t$(\"#estimate-autoExpand2-sd\").css('height', scroll_height + 'px');\r\n});\r\n  \r\n  \/\/ Find the input element\r\n    var inputElement = document.querySelector('input[name=\"other_text\"]');\r\n\r\n    if (inputElement) {\r\n        \/\/ Create a new textarea element\r\n        var textareaElement = document.createElement(\"textarea\");\r\n\r\n        \/\/ Copy attributes from the input element to the textarea element\r\n        textareaElement.name = inputElement.name;\r\n        textareaElement.className = inputElement.className;\r\n        textareaElement.required = inputElement.required;\r\n        textareaElement.value = inputElement.value; \/\/ Preserve the value if there's any\r\n\r\n        \/\/ Replace the input element with the textarea element\r\n        inputElement.parentNode.replaceChild(textareaElement, inputElement);\r\n    }\r\n\t\r\n    \r\n    \r\ndocument.getElementById('uniqueSingleStepForm').addEventListener('submit', function(event) {\r\n    event.preventDefault();\r\n    var form = document.getElementById('uniqueSingleStepForm');\r\n\r\n    var formData = new FormData(form);\r\n    console.log('submitting form');\r\n    var csrfToken = document.querySelector('meta[name=\"csrfToken\"]').getAttribute('content');\r\n    var xhr = new XMLHttpRequest();\r\n\t\r\n  \t$('input.error').removeClass('error');\r\n    if($('#fname').val().trim().length == 0){\r\n        $('#fname').addClass('error');\r\n    }\r\n    if($('#lname').val().trim().length == 0){\r\n        $('#lname').addClass('error');\r\n    }\r\n    if(!estimateValidateEmail($('#email').val())){\r\n        $('#email').addClass('error');\r\n    }\r\n\r\n    if($('#phone').val().trim().length == 0 && $('#consult:checked').length ){\r\n        $('#phone').addClass('error');\r\n    }\r\n\r\n\r\nif($('#EventDate').val().trim().length == 0){\r\n    $('#EventDate').addClass('error');\r\n}\r\n\r\n    if($('.error').length>0){\r\n        $('.error:first').focus();\r\n    } else {\r\n    \/\/ Specify the type of request, the URL, and whether it should be asynchronous\r\n    xhr.open('POST', \"\/generic-custom-forms\/save-generic-custom-forms-info\/5283\", true);\r\n\r\n    \/\/ Set the request header to tell the server to expect form data\r\n    xhr.setRequestHeader('X-CSRF-Token', csrfToken);\r\n\r\n    \/\/ Define what happens on successful data submission\r\n    xhr.onload = function() {\r\n        console.log('loaded result');\r\n        if (xhr.status >= 200 && xhr.status < 400) {\r\n            console.log('looks like success');\r\n            let form = document.getElementById('uniqueSingleStepForm');\r\n            let thankYouSection = document.getElementById('estimate-thankYouText-sd');\r\n\r\n            form.classList.add('unique-hidden');\r\n            thankYouSection.classList.remove('unique-hidden');\r\n        } else {\r\n            \/\/ We reached our target server, but it returned an error\r\n            console.error(\"Server reached, but it returned an error\");\r\n        }\r\n    };\r\n\r\n    \/\/ Define what happens in case of an error\r\n    xhr.onerror = function() {\r\n        \/\/ There was a connection error of some sort\r\n        console.error(\"Failed to connect to server\");\r\n    };\r\n\r\n    \/\/ Send the request with the data\r\n    xhr.send(formData);\r\n    }\r\n    return false;\r\n});\r\n\r\n","html_structure":{"complexity":"high","interactive_elements":true,"styling_present":true,"multimedia_content":true}}}],"statistics":{"total_bloqs":2,"bloq_types":{"bloq-rich-text-editors":1,"bloq-htmls":1},"total_images":33,"total_links":0,"total_words":1489,"total_paragraphs":2,"schema_items":7,"business_fields":9,"media_items":33,"entity_count":6,"merged_schema_version":"3.0"},"citations":{"citeable_statements":[{"id":"stmt_1","statement":"Whether it\u2019s a lively luau, a corporate gathering, or an intimate celebration, our team is here to create an unforgettable experience tailored to your vision.","section_id":"section_1","bloq_id":618011,"type":"factual","word_count":26},{"id":"stmt_2","statement":"Located within Hotel 116, we also offer access to a beautiful banquet space, making it even easier to host your event in style.","section_id":"section_1","bloq_id":618011,"type":"factual","word_count":22},{"id":"stmt_3","statement":".unique-hidden { display: none; } @charset \"utf-8\"; \/* Reset *\/ @font-face { font-family: 'Abel'; font-style: normal; font-weight: 400; src: local('Abel Regular'), local('Abel-Regular'), url(https:\/\/fonts.gstatic.com\/s\/abel\/v8\/MwQ5bhbm2POE2V9BPQ.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } .estimate-con-input-sd { margin: 0; padding: 0; } \/* Responsive Design *\/ \/* Main *\/ .estimate-con-input-sd { box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; outline: none; display: block; width: 100%; padding: 7px; border-bottom: 2px solid rgba(93,162,154,0.12); border-right: 2px solid rgba(93,162,154,0.12); border-top: none; border-left: none; margin-bottom: 20px; font-family: Abel; height: 45px; color: #18424d; font-size: 20px; background: rgba(93,162,154,0.04); margin-right: 10px; margin-left: 10px; } .estimate-textarea-sd { font-family: Abel; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; outline: none; display: block; width: 100%; padding: 7px; border-bottom: 2px solid rgba(93,162,154,0.12); border-right: 2px solid rgba(93,162,154,0.12); border-top: none; border-left: none; margin-bottom: 20px; color: #18424d; background: rgba(93,162,154,0.04); font-size: 20px; min-height: 100px; resize: none; overflow: hidden; } #estimate-autoExpand2-sd { min-height: 200px; } #estimate-visit-sd, #estimate-other-sd { } ::placeholder { \/* Chrome, Firefox, Opera, Safari 10.1+ *\/ color: #18424d; opacity: 1; \/* Firefox *\/ } :-ms-input-placeholder { \/* Internet Explorer 10-11 *\/ color: #18424d; } ::-ms-input-placeholder { \/* Microsoft Edge *\/ color: #18424d; } .estimate-img-sd { width: 100%; } .estimate-bottom-space-sd{ margin-bottom: 20px; } .estimate-custom-check input{ position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .estimate-custom-radio input{ position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .estimate-custom-check { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } \/* Create a custom checkbox *\/ .estimate-checkmark { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; } \/* On mouse-over, add a grey background color *\/ .estimate-custom-check:hover input ~ .estimate-checkmark { background-color: rgba(93,162,154,0.28); } \/* When the checkbox is checked, add a blue background *\/ .estimate-custom-check input:checked ~ .estimate-checkmark { background-color: rgba(93,162,154); } \/* Create the checkmark\/indicator (hidden when not checked) *\/ .estimate-checkmark:after { content: \"\"; position: absolute; display: none; } \/* Show the checkmark when checked *\/ .estimate-custom-check input:checked ~ .estimate-checkmark:after { display: block; } \/* Style the checkmark\/indicator *\/ .estimate-custom-check .estimate-checkmark:after { left: 9px; top: 5px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } .estimate-spacer-sd{ padding-left: 60px; } \/* Radio Button Style *\/ \/* Customize the label (the container) *\/ .estimate-custom-radio { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } \/* Hide the browser's default radio button *\/ .estimate-custom-radio input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } \/* Create a custom radio button *\/ .estimate-checkmark2 { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; border-radius: 50%; } \/* On mouse-over, add a grey background color *\/ .estimate-custom-radio:hover input ~ .estimate-checkmark2 { background-color: rgba(93,162,154,0.28); } \/* When the radio button is checked, add a blue background *\/ .estimate-custom-radio input:checked ~ .estimate-checkmark2 { background-color: rgba(93,162,154); } \/* Create the indicator (the dot\/circle - hidden when not checked) *\/ .estimate-checkmark2:after { content: \"\"; position: absolute; display: none; } \/* Show the indicator (dot\/circle) when checked *\/ .estimate-custom-radio input:checked ~ .estimate-checkmark2:after { display: block; } \/* Style the indicator (dot\/circle) *\/ .estimate-custom-radio .estimate-checkmark2:after { top: 9px; left: 9px; width: 8px; height: 8px; border-radius: 50%; background: white; } .estimate-material-img-sd { width: 136px; margin: 10px; text-align: center; font-family: Abel; font-size: 15px; color: #18424d; padding-bottom: 10px; border: 1px solid #6021; padding: 8px; vertical-align: top; display: inline-block; } .estimate-material-img-sd:hover { background-color: #909287; color: white; } .estimate-project-img-sd { width: 136px; margin: 10px; text-align: center; font-family: Abel; font-size: 20px; color: #18424d; padding-bottom: 10px; padding: 8px; border: 1px solid #6021 } .estimate-project-img-sd:hover { background-color: rgba(58, 86, 90); color: white; \/* background-color: rgba(93,162,154,0.18); *\/ } .estimate-project-img-selected-sd { background-color: rgb(58, 86, 90); border: 1px solid rgb(0, 0, 0); color: white; } .estimate-material-img-selected-sd { background-color: #99a36f; border: 1px solid rgb(0, 0, 0); color: white; } .estimate-sections-sd { max-width: 960px; margin: auto; margin-bottom: 20px; } #estimate-contact-sd { padding-top: 30px; padding-bottom: 30px; } #estimate-option-sd{ padding-bottom: 30px; } .estimate-form-row-sd { padding: 0; display: flex; } #estimate-completed-sd{ padding-bottom: 30px; } .estimate-form-row-sd input { flex: 1; } .estimate-form-row-sd textarea { flex: 1; padding: 10px; } .estimate-options-row-sd{ padding-left: 60px; font-family: Abel; font-size: 20px; color: #18424d; margin-bottom: 10px; } .estimate-form-img-sd { flex-wrap: wrap; align-items: center; box-sizing: border-box; } .estimate-spacing-sd { justify-content:flex-start; } .estimate-section-header-sd { text-align:left; margin-left: 10px; color: #18424d; font-family: Abel; } .estimate-btn-sd { width: 200px; margin: auto; margin-bottom: 60px; box-sizing: border-box; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; outline: none; display: block; padding: 7px; border-bottom: 2px solid #18424d; border-right: 2px solid #18424d; border-top: none; border-left: none; font-family: Abel; height: 45px; font-size: 25px; text-decoration: none; text-align: center; vertical-align: middle; background-color: #18424d; color: white !important; } .estimate-btn-sd a { color: white !important; } .estimate-btn-sd:hover { background-color:rgb(255, 51, 204); color: white !important; } #estimate-thankYouText-sd { max-width: 900px; margin: auto; padding: 60px; } @media screen and (max-width: 500px){ .estimate-material-img-sd, .estimate-project-img-sd { width: 100px; } } Thank You!","section_id":"section_2","bloq_id":618034,"type":"factual","word_count":684}],"source_authority":{"domain":"www.pasifikagrill.com","last_verified":"2026-02-27","content_type":"webpage","url":"https:\/\/www.pasifikagrill.com\/catering"},"page_structure":{"render_order":[{"bloq_id":618011,"type":"bloq-rich-text-editors","position":0},{"bloq_id":618034,"type":"bloq-htmls","position":1}]}},"business_profile":{"organization_type":"Restaurant","name":"Pasifika Grill and Bar","description":"Welcome to Pasifika Grill and Bar, where the vibrant cultures of Polynesia, Melanesia, and Micronesia meet the rustic flavors and spirit of the Pacific Northwest. Our menu bridges the oceanic gap, weaving together the tropical essence of the islands with the seasonal bounty of the Northwest, offering an experience that celebrates both regions\u2019 rich traditions and abundant landscapes.","address":{"street":"625 116th Ave NE","city":"Bellevue","state":"WA","postal_code":"98004","country":"US"},"contact":{"telephone":"425-285-7900","url":"https:\/\/www.pasifikagrill.com","email":"","contact_type":"Reservations","area_served":"Bellevue, Factoria, Renton, Issaquah, Redmond, Kirkland","available_language":"English"},"operational_details":{"price_range":"$$","cuisine":["Pacifc Island"],"hours":[{"day":"Sunday","opens":"11:00","closes":"20:00"},{"day":"Monday","opens":"11:00","closes":"20:00"},{"day":"Tuesday","opens":"11:00","closes":"22:00"},{"day":"Wednesday","opens":"11:00","closes":"22:00"},{"day":"Thursday","opens":"11:00","closes":"22:00"},{"day":"Friday","opens":"11:00","closes":"23:00"},{"day":"Saturday","opens":"11:00","closes":"23:00"}],"payment_methods":[]},"ratings":{"aggregate_rating":null,"review_count":0,"reviews":[]},"amenities":[],"historical_branding":{"alternate_name":"","founding_date":"","founder":"","transition_note":""},"is_primary":true},"schema_metadata":{"schema_version":"3.0","schema_type":"merged_llm_schema","merge_date":"2026-02-27T23:18:49-08:00","source_types":["llm_json","page_schema"],"schema_generated":"2026-02-27 23:18:49 PST","schema_generated_by":"cp","graph_item_count":7,"validation_status":"complete"},"merged":true,"merge_version":"3.0","merge_timestamp":"2026-02-27T23:18:49-08:00","merge_status":"complete","validation":{"has_schema":true,"has_graph":true,"has_business_profile":true,"has_entities":true,"has_media":true,"schema_item_count":7}}