{"id":683,"date":"2026-03-29T10:38:05","date_gmt":"2026-03-29T10:38:05","guid":{"rendered":"https:\/\/ramstuga.se\/shop\/?page_id=683"},"modified":"2026-04-18T15:44:22","modified_gmt":"2026-04-18T15:44:22","slug":"custom-frame","status":"publish","type":"page","link":"https:\/\/ramstuga.se\/sv\/custom-frame\/","title":{"rendered":"Anpassad ram"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"683\" class=\"elementor elementor-683\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c6581d3 e-con-full elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"c6581d3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-582ebfe elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"582ebfe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"hero-typing\">\n  <h1 id=\"typing-text\"\n      data-texts=\"Build Your Custom Frame|Frames are handcrafted,| from reclaimed wood|Configure your frame\">\n  <\/h1>\n<\/div>\n\n<style>\n.hero-typing {\n  text-align: center;\n  padding: 0 20px;\n}\n\n\/* Desktop (kleiner en subtieler) *\/\n#typing-text {\n  color: #ffffff;\n  font-size: 64px;\n  letter-spacing: 2px;\n  font-family: \"Cormorant Garamond\", serif;\n  margin: 0;\n  line-height: 1.3;\n  word-break: break-word;\n  \/* \ud83d\udd25 zwarte outline *\/\n  -webkit-text-stroke: 1px #000;\n}\n\n\/* Cursor *\/\n#typing-text::after {\n  content: \"|\";\n  margin-left: 5px;\n  animation: blink 1s infinite;\n}\n\n@keyframes blink {\n  0%,100% {opacity:1;}\n  50% {opacity:0;}\n}\n\n\/* Tablet *\/\n@media (max-width: 1024px) {\n  #typing-text {\n    font-size: 40px;\n    letter-spacing: 1px;\n  }\n}\n\n\/* Mobiel *\/\n@media (max-width: 767px) {\n  #typing-text {\n    font-size: 16px;\n    letter-spacing: 0.5px;\n    line-height: 1.4;\n  }\n}\n<\/style>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  const element = document.getElementById(\"typing-text\");\n  const texts = element.getAttribute(\"data-texts\").split(\"|\");\n\n  let i = 0;\n  let j = 0;\n  let isDeleting = false;\n\n  function type() {\n    let current = texts[i];\n\n    if (isDeleting) {\n      j--;\n    } else {\n      j++;\n    }\n\n    element.innerHTML = current.substring(0, j);\n\n    if (!isDeleting && j === current.length) {\n      isDeleting = true;\n      setTimeout(type, 1500);\n      return;\n    }\n\n    if (isDeleting && j === 0) {\n      isDeleting = false;\n      i = (i + 1) % texts.length;\n    }\n\n    setTimeout(type, isDeleting ? 40 : 80);\n  }\n\n  type();\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-645a4ff e-con-full e-flex e-con e-parent\" data-id=\"645a4ff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-9f79e57 e-flex e-con-boxed e-con e-child\" data-id=\"9f79e57\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4236537 elementor-widget elementor-widget-heading\" data-id=\"4236537\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Build Your Custom Frame<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-241586f elementor-widget elementor-widget-text-editor\" data-id=\"241586f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Each frame is handcrafted from reclaimed wood.<br \/>Configure your frame below and request a custom made frame.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ce6509 elementor-widget elementor-widget-text-editor\" data-id=\"4ce6509\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Final price will always be confirmed before production.<br \/>No payment is required at this stage.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a454cc elementor-widget elementor-widget-heading\" data-id=\"8a454cc\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"product-title\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Your custom frame:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e84a711 elementor-widget elementor-widget-html\" data-id=\"e84a711\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"selected-product-image\" style=\"margin-bottom:15px;\"><\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    const params = new URLSearchParams(window.location.search);\n\n    const product = params.get(\"frame_product\");\n    const image = params.get(\"frame_image\");\n    const model = params.get(\"attribute_model_label\") || params.get(\"attribute_model\");\n\n    \/\/ Product naam invullen\n    if(product) {\n        const field =\n            document.querySelector('input[name=\"product_name\"]') ||\n            document.querySelector('input[name=\"product\"]');\n\n        if(field) field.value = decodeURIComponent(product);\n    }\n\n    \/\/ Afbeelding tonen\n    if(image) {\n        const imgContainer = document.getElementById(\"selected-product-image\");\n\n        if(imgContainer) {\n            imgContainer.innerHTML =\n                '<img decoding=\"async\" src=\"' + decodeURIComponent(image) + '\" style=\"max-width:200px; border-radius:8px;\">';\n        }\n    }\n\n    \/\/ \ud83d\udd25 MODEL invullen\n    if(model) {\n        const modelField =\n            document.querySelector('input[name=\"model\"]') ||\n            document.querySelector('select[name=\"model\"]');\n\n        if(modelField) {\n            modelField.value = decodeURIComponent(model);\n            modelField.dispatchEvent(new Event('change', { bubbles: true }));\n        }\n    }\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57743f8 elementor-widget elementor-widget-wpforms\" data-id=\"57743f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wpforms.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style id=\"wpforms-css-vars-elementor-widget-57743f8\">\n\t\t\t\t.elementor-widget-wpforms.elementor-element-57743f8 {\n\t\t\t\t--wpforms-button-border-radius: 8px;\n--wpforms-button-background-color: #54595F;\n\t\t\t}\n\t\t\t<\/style><div class=\"wpforms-container wpforms-container-full wpforms-render-modern\" id=\"wpforms-720\"><form id=\"wpforms-form-720\" class=\"wpforms-validate wpforms-form wpforms-ajax-form\" data-formid=\"720\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/sv\/wp-json\/wp\/v2\/pages\/683\" data-token=\"79cd7fd28ccfec07a5e6ab2501dcd731\" data-token-time=\"1778534883\"><noscript class=\"wpforms-error-noscript\">Aktivera JavaScript i din webbl\u00e4sare f\u00f6r att fylla i formul\u00e4ret.<\/noscript><div id=\"wpforms-error-noscript\" style=\"display: none;\">Aktivera JavaScript i din webbl\u00e4sare f\u00f6r att fylla i formul\u00e4ret.<\/div><div class=\"wpforms-field-container\"><div id=\"wpforms-720-field_1-container\" class=\"wpforms-field wpforms-field-name\" data-field-id=\"1\"><fieldset><legend class=\"wpforms-field-label\">Name <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"wpforms-field-row wpforms-field-medium\"><div class=\"wpforms-field-row-block wpforms-first wpforms-one-half\"><input type=\"text\" id=\"wpforms-720-field_1\" class=\"wpforms-field-name-first wpforms-field-required\" name=\"wpforms[fields][1][first]\" placeholder=\"First name\" aria-errormessage=\"wpforms-720-field_1-error\" required><label for=\"wpforms-720-field_1\" class=\"wpforms-field-sublabel after\">F\u00f6rst<\/label><\/div><div class=\"wpforms-field-row-block wpforms-one-half\"><input type=\"text\" id=\"wpforms-720-field_1-last\" class=\"wpforms-field-name-last wpforms-field-required\" name=\"wpforms[fields][1][last]\" placeholder=\"Last name\" aria-errormessage=\"wpforms-720-field_1-last-error\" required><label for=\"wpforms-720-field_1-last\" class=\"wpforms-field-sublabel after\">Sist<\/label><\/div><\/div><\/fieldset><\/div><div id=\"wpforms-720-field_2-container\" class=\"wpforms-field wpforms-field-email\" data-field-id=\"2\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_2\">Email <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"email\" id=\"wpforms-720-field_2\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][2]\" spellcheck=\"false\" aria-errormessage=\"wpforms-720-field_2-error\" required><\/div><div id=\"wpforms-720-field_12-container\" class=\"wpforms-field wpforms-field-text product-input\" data-field-id=\"12\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_12\">Product<\/label><input type=\"text\" id=\"wpforms-720-field_12\" class=\"wpforms-field-medium\" name=\"wpforms[fields][12]\" aria-errormessage=\"wpforms-720-field_12-error\" ><\/div><div id=\"wpforms-720-field_7-container\" class=\"wpforms-field wpforms-field-text calc-width\" data-field-id=\"7\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_7\">frame-width <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-720-field_7\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][7]\" placeholder=\"cm\" aria-errormessage=\"wpforms-720-field_7-error\" required><\/div><div id=\"wpforms-720-field_8-container\" class=\"wpforms-field wpforms-field-text calc-height\" data-field-id=\"8\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_8\">frame-height <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-720-field_8\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][8]\" placeholder=\"cm\" aria-errormessage=\"wpforms-720-field_8-error\" required><\/div><div id=\"wpforms-720-field_10-container\" class=\"wpforms-field wpforms-field-select calc-wood wpforms-field-select-style-classic\" data-field-id=\"10\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_10\">Wood Type <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><select id=\"wpforms-720-field_10\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][10]\" required=\"required\"><option value=\"\" class=\"placeholder\" disabled >--- Select Choice ---<\/option><option value=\"Reclaimed Standaard\"  selected='selected' class=\"choice-1 depth-1\"  >Reclaimed Standaard<\/option><option value=\"Reclaimed Plus (+15%)\"  class=\"choice-2 depth-1\"  >Reclaimed Plus (+15%)<\/option><option value=\"Reclaimed Premium (+25%)\"  class=\"choice-4 depth-1\"  >Reclaimed Premium (+25%)<\/option><\/select><\/div><div id=\"wpforms-720-field_18-container\" class=\"wpforms-field wpforms-field-select wpforms-field-select-style-classic\" data-field-id=\"18\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_18\">Color<\/label><select id=\"wpforms-720-field_18\" class=\"wpforms-field-medium\" name=\"wpforms[fields][18]\"><option value=\"Standard color\"  class=\"choice-1 depth-1\"  >Standard color<\/option><option value=\"My choice (+195 SEK, in specification)\"  class=\"choice-2 depth-1\"  >My choice (+195 SEK, in specification)<\/option><\/select><\/div><div id=\"wpforms-720-field_16-container\" class=\"wpforms-field wpforms-field-select calc-glass wpforms-field-select-style-classic\" data-field-id=\"16\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_16\">Glass \/ Mirror<\/label><select id=\"wpforms-720-field_16\" class=\"wpforms-field-medium\" name=\"wpforms[fields][16]\"><option value=\"No\"  class=\"choice-1 depth-1\"  >No<\/option><option value=\"Yes (+8%)\"  class=\"choice-2 depth-1\"  >Yes (+8%)<\/option><option value=\"Mirror (+20 %)\"  class=\"choice-3 depth-1\"  >Mirror (+20 %)<\/option><\/select><\/div>\t\t<div id=\"wpforms-720-field_4-container\"\n\t\t\tclass=\"wpforms-field wpforms-field-text\"\n\t\t\tdata-field-type=\"text\"\n\t\t\tdata-field-id=\"4\"\n\t\t\t>\n\t\t\t<label class=\"wpforms-field-label\" for=\"wpforms-720-field_4\" >\/ Color Estimated<\/label>\n\t\t\t<input type=\"text\" id=\"wpforms-720-field_4\" class=\"wpforms-field-medium\" name=\"wpforms[fields][4]\" >\n\t\t<\/div>\n\t\t<div id=\"wpforms-720-field_11-container\" class=\"wpforms-field wpforms-field-text price-input wpforms-field-readonly\" data-field-id=\"11\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_11\">Estimated Price<\/label><input type=\"text\" id=\"wpforms-720-field_11\" class=\"wpforms-field-medium\" name=\"wpforms[fields][11]\" aria-errormessage=\"wpforms-720-field_11-error\" ><\/div><div id=\"wpforms-720-field_3-container\" class=\"wpforms-field wpforms-field-textarea\" data-field-id=\"3\"><label class=\"wpforms-field-label\" for=\"wpforms-720-field_3\">Specifictions in detail:<\/label><textarea id=\"wpforms-720-field_3\" class=\"wpforms-field-medium\" name=\"wpforms[fields][3]\" aria-errormessage=\"wpforms-720-field_3-error\" ><\/textarea><\/div><script>\n\t\t\t\t( function() {\n\t\t\t\t\tconst style = document.createElement( 'style' );\n\t\t\t\t\tstyle.appendChild( document.createTextNode( '#wpforms-720-field_4-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-720-field_4-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-720-field_4-container label { counter-increment: none; }' ) );\n\t\t\t\t\tdocument.head.appendChild( style );\n\t\t\t\t\tdocument.currentScript?.remove();\n\t\t\t\t} )();\n\t\t\t<\/script><\/div><!-- .wpforms-field-container --><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"720\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/pages\/683\"><input type=\"hidden\" name=\"url_referer\" value=\"\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-720\" class=\"wpforms-submit\" data-alt-text=\"Sending...\" data-submit-text=\"Submit\" aria-live=\"assertive\" value=\"wpforms-submit\">Submit<\/button><img decoding=\"async\" src=\"https:\/\/ramstuga.se\/wp-content\/plugins\/wpforms-lite\/assets\/images\/submit-spin.svg\" class=\"wpforms-submit-spinner\" style=\"display: none;\" width=\"26\" height=\"26\" alt=\"Laddar\"><\/div><\/form><\/div>  <!-- .wpforms-container -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1b1c277 e-flex e-con-boxed e-con e-parent\" data-id=\"1b1c277\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-94e749c elementor-widget elementor-widget-html\" data-id=\"94e749c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n(function () {\n  const params = new URLSearchParams(window.location.search);\n  const product = params.get(\"frame_product\");\n\n  if (product) {\n    const decoded = decodeURIComponent(product);\n\n    \/\/ Zet tekst boven formulier\n    const titleEl = document.getElementById(\"product-title\");\n    if (titleEl) {\n      titleEl.innerText = \"Custom order for: \" + decoded;\n    }\n\n    \/\/ Zet ook in formulier (optioneel)\n    const input = document.querySelector(\".product-input input\");\n    if (input) {\n      input.value = decoded;\n    }\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a98cb1 e-flex e-con-boxed e-con e-parent\" data-id=\"7a98cb1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be3b0fe elementor-widget elementor-widget-html\" data-id=\"be3b0fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n(function () {\n  function getFieldInput(wrapperClass) {\n    const wrapper = document.querySelector(\".\" + wrapperClass);\n    if (!wrapper) return null;\n    return wrapper.querySelector(\"input, select, textarea\");\n  }\n\n  function ensurePriceNote(priceEl) {\n    if (!priceEl) return null;\n\n    var wrapper = priceEl.closest(\".price-input\") || priceEl.parentElement;\n    if (!wrapper) return null;\n\n    var nextEl = wrapper.nextElementSibling;\n    if (nextEl && nextEl.classList && nextEl.classList.contains(\"price-note\")) {\n      return nextEl;\n    }\n\n    var note = document.createElement(\"div\");\n    note.className = \"price-note\";\n    note.style.display = \"none\";\n    note.style.marginTop = \"12px\";\n    note.style.padding = \"10px 12px\";\n    note.style.fontSize = \"13px\";\n    note.style.lineHeight = \"1.6\";\n    note.style.color = \"#333\";\n    note.style.backgroundColor = \"#f5f3ef\";\n    note.style.border = \"1px solid #ddd\";\n    note.style.borderRadius = \"8px\";\n    note.textContent = \"This is an estimated price only. The final price may vary and will be confirmed in your quotation.\";\n\n    if (wrapper.insertAdjacentElement) {\n      wrapper.insertAdjacentElement(\"afterend\", note);\n    } else if (wrapper.parentNode) {\n      wrapper.parentNode.insertBefore(note, wrapper.nextSibling);\n    }\n\n    return note;\n  }\n\n  function getWoodFactor(text) {\n    const value = (text || \"\").toLowerCase();\n\n    const match = value.match(\/([+-]?\\d+)\\s*%\/);\n    if (match) {\n      const percent = parseFloat(match[1]) || 0;\n      return 1 + (percent \/ 100);\n    }\n\n    if (value.includes(\"reclaimed\")) return 1.2;\n    if (value.includes(\"premium\")) return 1.4;\n\n    return 1;\n  }\n\n  function getGlassFactor(text) {\n    const value = (text || \"\").toLowerCase();\n\n    if (value.includes(\"mirror\") || value.includes(\"spiegel\")) return 1.20;\n    if (value.includes(\"with glass\")) return 1.08;\n    if (value.includes(\"glass\")) return 1.08;\n    if (value.includes(\"yes\")) return 1.08;\n    if (value.includes(\"no glass\")) return 1.00;\n    if (value.includes(\"no\")) return 1.00;\n\n    return 1.00;\n  }\n\n  function getColorCost(text) {\n    const value = (text || \"\").toLowerCase();\n\n    if (value.includes(\"my choice\")) return 149;\n    if (value.includes(\"custom color\")) return 149;\n    if (value.includes(\"own color\")) return 149;\n    if (value.includes(\"standard color\")) return 0;\n    if (value.includes(\"standard\")) return 0;\n\n    return 0;\n  }\n\n  function getStandardBasePrice(w, h) {\n    const standards = {\n      \"70x25\": 799,\n      \"80x25\": 849,\n      \"90x30\": 899,\n      \"100x30\": 949,\n      \"120x35\": 999\n    };\n\n    const key = w + \"x\" + h;\n    return standards[key] || null;\n  }\n\n  function roundPrice(price) {\n    return Math.round(price \/ 5) * 5;\n  }\n\n  function calc() {\n    const widthEl = getFieldInput(\"calc-width\");\n    const heightEl = getFieldInput(\"calc-height\");\n    const woodEl = getFieldInput(\"calc-wood\");\n    const glassEl = getFieldInput(\"calc-glass\");\n    const colorEl = getFieldInput(\"calc-color\");\n    const priceEl = getFieldInput(\"price-input\");\n\n    if (!widthEl || !heightEl || !woodEl || !glassEl || !priceEl) return;\n\n    const noteEl = ensurePriceNote(priceEl);\n\n    const widthRaw = String(widthEl.value || \"\").trim();\n    const heightRaw = String(heightEl.value || \"\").trim();\n\n    if (!widthRaw || !heightRaw) {\n      priceEl.value = \"\";\n      if (noteEl) noteEl.style.display = \"none\";\n      return;\n    }\n\n    const w = Number(widthRaw);\n    const h = Number(heightRaw);\n\n    if (!w || !h) {\n      priceEl.value = \"\";\n      if (noteEl) noteEl.style.display = \"none\";\n      return;\n    }\n\n    const woodText = woodEl.options ? woodEl.options[woodEl.selectedIndex]?.text : woodEl.value;\n    const glassText = glassEl.options ? glassEl.options[glassEl.selectedIndex]?.text : glassEl.value;\n    const colorText = colorEl\n      ? (colorEl.options ? colorEl.options[colorEl.selectedIndex]?.text : colorEl.value)\n      : \"\";\n\n    const woodFactor = getWoodFactor(woodText);\n    const glassFactor = getGlassFactor(glassText);\n    const colorCost = getColorCost(colorText);\n\n    let base;\n    const standardBase = getStandardBasePrice(w, h);\n\n    if (standardBase !== null) {\n      base = standardBase;\n    } else {\n      base = 550 + ((w + h) * 6) + ((w * h) * 0.05);\n    }\n\n    const total = roundPrice((base * woodFactor * glassFactor) + colorCost);\n\n    priceEl.value = \"Estimated price: \" + total + \" SEK\";\n    if (noteEl) noteEl.style.display = \"block\";\n  }\n\n  function bindEvents() {\n    const fields = [\n      getFieldInput(\"calc-width\"),\n      getFieldInput(\"calc-height\"),\n      getFieldInput(\"calc-wood\"),\n      getFieldInput(\"calc-glass\"),\n      getFieldInput(\"calc-color\")\n    ].filter(Boolean);\n\n    fields.forEach(function(field) {\n      field.addEventListener(\"input\", calc);\n      field.addEventListener(\"change\", calc);\n    });\n\n    calc();\n  }\n\n  setTimeout(bindEvents, 500);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Build Your Custom Frame Each frame is handcrafted from reclaimed wood.Configure your frame below and request a custom made frame. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-683","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/pages\/683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/comments?post=683"}],"version-history":[{"count":237,"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/pages\/683\/revisions"}],"predecessor-version":[{"id":1328,"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/pages\/683\/revisions\/1328"}],"wp:attachment":[{"href":"https:\/\/ramstuga.se\/sv\/wp-json\/wp\/v2\/media?parent=683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}