{"id":4956,"date":"2026-03-24T07:20:57","date_gmt":"2026-03-24T07:20:57","guid":{"rendered":"https:\/\/saiweiglass.com\/?page_id=4956"},"modified":"2026-03-24T07:37:07","modified_gmt":"2026-03-24T07:37:07","slug":"glass-edge-finish-selector","status":"publish","type":"page","link":"https:\/\/saiweiglass.com\/es\/capabilities\/edge-grinding\/glass-edge-finish-selector\/","title":{"rendered":"Selector de acabado de borde de vidrio"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-c61573d\" data-block-id=\"c61573d\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-c61573d-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-3e55b26\" data-v=\"4\" data-block-id=\"3e55b26\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-3e55b26-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-3e55b26-inner-blocks\"><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-e6760cc\" data-block-id=\"e6760cc\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-e6760cc-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-4aff615\" data-v=\"4\" data-block-id=\"4aff615\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-4aff615-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-4aff615-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-0701ac0\" data-block-id=\"0701ac0\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-0701ac0-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-4f254f9\" data-v=\"4\" data-block-id=\"4f254f9\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-4f254f9-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-4f254f9-inner-blocks\">\n<section id=\"bx-edge-selector-v1\">\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap');\n#bx-edge-selector-v1 {\n  --c0: #304890;\n  --c1: #FFFFFF;\n  --c2: #1860A8;\n  --c3: #F6F5F3;\n  --c4: #E0E4EC;\n  --c5: #8A92A8;\n  --c6: #3048A8;\n  --accent: #1878C0;\n  --fM: 'IBM Plex Mono', 'Courier New', monospace;\n  max-width: 1120px;\n  margin: 0 auto;\n  padding: 40px 20px;\n  font-family: inherit;\n  color: #1a1a2e;\n  box-sizing: border-box;\n}\n#bx-edge-selector-v1 *, #bx-edge-selector-v1 *::before, #bx-edge-selector-v1 *::after {\n  box-sizing: border-box;\n}\n#bx-edge-selector-v1 h2 {\n  font-family: inherit !important;\n  font-weight: 700 !important;\n  line-height: 1.2 !important;\n  margin: 0 0 8px !important;\n  padding: 0 !important;\n  color: var(--c0) !important;\n}\n#bx-edge-selector-v1 h3 {\n  font-family: inherit !important;\n  font-weight: 700 !important;\n  font-size: 20px !important;\n  line-height: 1.2 !important;\n  margin: 0 0 8px !important;\n  padding: 0 !important;\n  color: var(--c0) !important;\n}\n#bx-edge-selector-v1 h4 {\n  font-family: var(--fM) !important;\n  font-weight: 600 !important;\n  font-size: 11px !important;\n  line-height: 1.3 !important;\n  letter-spacing: 1.5px !important;\n  text-transform: uppercase !important;\n  margin: 0 0 14px !important;\n  padding: 0 !important;\n  color: var(--c5) !important;\n}\n#bx-edge-selector-v1 .es-subtitle {\n  font-size: 15px;\n  color: #555;\n  margin: 0 0 32px;\n  line-height: 1.6;\n}\n#bx-edge-selector-v1 .es-progress {\n  display: flex;\n  gap: 6px;\n  margin-bottom: 28px;\n}\n#bx-edge-selector-v1 .es-progress-dot {\n  width: 100%;\n  height: 4px;\n  background: var(--c4);\n  transition: background 0.3s;\n}\n#bx-edge-selector-v1 .es-progress-dot.active {\n  background: var(--c0);\n}\n#bx-edge-selector-v1 .es-progress-dot.done {\n  background: var(--c2);\n}\n#bx-edge-selector-v1 .es-step {\n  display: none;\n  animation: esFadeIn 0.3s ease;\n}\n#bx-edge-selector-v1 .es-step.active {\n  display: block;\n}\n@keyframes esFadeIn {\n  from { opacity: 0; transform: translateY(10px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n#bx-edge-selector-v1 .es-question {\n  font-size: 18px;\n  font-weight: 600;\n  margin-bottom: 20px;\n  color: #1a1a2e;\n}\n#bx-edge-selector-v1 .es-options {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n  gap: 10px;\n  margin-bottom: 24px;\n}\n#bx-edge-selector-v1 .es-option {\n  position: relative;\n  border: 2px solid var(--c4);\n  background: var(--c1);\n  padding: 16px 18px;\n  cursor: pointer;\n  transition: all 0.18s;\n  text-align: center;\n  font-size: 14px;\n  font-weight: 500;\n  border-radius: 0;\n}\n#bx-edge-selector-v1 .es-option:hover {\n  border-color: var(--c2);\n  background: #f0f4fa;\n}\n#bx-edge-selector-v1 .es-option.selected {\n  border-color: var(--c0);\n  background: #e8edf8;\n  color: var(--c0);\n  font-weight: 600;\n}\n#bx-edge-selector-v1 .es-option input[type=\"radio\"] {\n  position: absolute !important;\n  opacity: 0 !important;\n  pointer-events: none !important;\n}\n#bx-edge-selector-v1 .es-slider-wrap {\n  margin-bottom: 24px;\n}\n#bx-edge-selector-v1 .es-slider-val {\n  font-family: var(--fM);\n  font-size: 28px;\n  font-weight: 600;\n  color: var(--c0);\n  margin-bottom: 12px;\n}\n#bx-edge-selector-v1 .es-slider {\n  width: 100%;\n  height: 6px;\n  -webkit-appearance: none;\n  appearance: none;\n  background: var(--c4);\n  outline: none;\n  border-radius: 0;\n}\n#bx-edge-selector-v1 .es-slider::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  width: 22px;\n  height: 22px;\n  background: var(--c0);\n  cursor: pointer;\n  border-radius: 0;\n  border: 2px solid var(--c1);\n  box-shadow: 0 1px 4px rgba(0,0,0,0.2);\n}\n#bx-edge-selector-v1 .es-slider::-moz-range-thumb {\n  width: 22px;\n  height: 22px;\n  background: var(--c0);\n  cursor: pointer;\n  border-radius: 0;\n  border: 2px solid var(--c1);\n  box-shadow: 0 1px 4px rgba(0,0,0,0.2);\n}\n#bx-edge-selector-v1 .es-slider-labels {\n  display: flex;\n  justify-content: space-between;\n  font-family: var(--fM);\n  font-size: 11px;\n  color: var(--c5);\n  margin-top: 6px;\n}\n#bx-edge-selector-v1 .es-nav {\n  display: flex;\n  gap: 10px;\n  margin-top: 20px;\n}\n#bx-edge-selector-v1 .es-btn {\n  height: 48px;\n  padding: 0 32px;\n  font-size: 14px;\n  font-weight: 600;\n  border: none;\n  cursor: pointer;\n  transition: all 0.18s;\n  border-radius: 0;\n  -webkit-appearance: none;\n  appearance: none;\n}\n#bx-edge-selector-v1 .es-btn-primary {\n  background: var(--c0);\n  color: var(--c1);\n}\n#bx-edge-selector-v1 .es-btn-primary:hover {\n  background: var(--c2);\n}\n#bx-edge-selector-v1 .es-btn-secondary {\n  background: var(--c3);\n  color: var(--c0);\n  border: 1px solid var(--c4);\n}\n#bx-edge-selector-v1 .es-btn-secondary:hover {\n  background: var(--c4);\n}\n#bx-edge-selector-v1 .es-btn:disabled {\n  opacity: 0.3;\n  cursor: not-allowed;\n}\n\/* Results *\/\n#bx-edge-selector-v1 .es-result {\n  display: none;\n}\n#bx-edge-selector-v1 .es-result.active {\n  display: block;\n  animation: esFadeIn 0.4s ease;\n}\n#bx-edge-selector-v1 .es-result-card {\n  background: var(--c3);\n  border-left: 4px solid var(--c0);\n  padding: 28px;\n  margin-bottom: 20px;\n}\n#bx-edge-selector-v1 .es-rec-title {\n  font-family: var(--fM);\n  font-size: 12px;\n  font-weight: 500;\n  color: var(--c5);\n  text-transform: uppercase;\n  letter-spacing: 1.5px;\n  margin-bottom: 8px;\n}\n#bx-edge-selector-v1 .es-rec-edge {\n  font-size: 26px;\n  font-weight: 700;\n  color: var(--c0);\n  margin-bottom: 6px;\n}\n#bx-edge-selector-v1 .es-rec-why {\n  font-size: 15px;\n  color: #444;\n  line-height: 1.6;\n  margin-bottom: 16px;\n}\n#bx-edge-selector-v1 .es-kpi-row {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 12px;\n  margin-bottom: 24px;\n}\n#bx-edge-selector-v1 .es-kpi {\n  background: var(--c1);\n  border: 1px solid var(--c4);\n  padding: 16px;\n  text-align: center;\n}\n#bx-edge-selector-v1 .es-kpi-label {\n  font-family: var(--fM);\n  font-size: 10px;\n  font-weight: 500;\n  color: var(--c5);\n  text-transform: uppercase;\n  letter-spacing: 1px;\n  margin-bottom: 6px;\n}\n#bx-edge-selector-v1 .es-kpi-value {\n  font-family: var(--fM);\n  font-size: 18px;\n  font-weight: 600;\n  color: var(--c0);\n}\n#bx-edge-selector-v1 .es-alt {\n  margin-top: 20px;\n}\n#bx-edge-selector-v1 .es-alt-title {\n  font-size: 14px;\n  font-weight: 600;\n  color: var(--c5);\n  margin-bottom: 10px;\n}\n#bx-edge-selector-v1 .es-alt-item {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 10px 14px;\n  background: var(--c1);\n  border: 1px solid var(--c4);\n  margin-bottom: 6px;\n  font-size: 14px;\n}\n#bx-edge-selector-v1 .es-alt-name {\n  font-weight: 600;\n  color: #1a1a2e;\n}\n#bx-edge-selector-v1 .es-alt-score {\n  font-family: var(--fM);\n  font-size: 12px;\n  color: var(--c5);\n}\n#bx-edge-selector-v1 .es-cta {\n  display: inline-block;\n  height: 48px;\n  line-height: 48px;\n  padding: 0 36px;\n  background: var(--c0);\n  color: var(--c1) !important;\n  font-size: 14px;\n  font-weight: 600;\n  text-decoration: none;\n  border-radius: 0;\n  transition: background 0.18s;\n  margin-top: 12px;\n}\n#bx-edge-selector-v1 .es-cta:hover {\n  background: var(--c2);\n}\n#bx-edge-selector-v1 .es-reset {\n  font-family: var(--fM);\n  font-size: 12px;\n  color: var(--c5);\n  cursor: pointer;\n  background: none;\n  border: none;\n  text-decoration: underline;\n  margin-top: 16px;\n  display: block;\n}\n@media (max-width: 860px) {\n  #bx-edge-selector-v1 .es-options {\n    grid-template-columns: 1fr 1fr;\n  }\n  #bx-edge-selector-v1 .es-kpi-row {\n    grid-template-columns: 1fr;\n  }\n  #bx-edge-selector-v1 .es-rec-edge {\n    font-size: 22px;\n  }\n}\n@media (max-width: 480px) {\n  #bx-edge-selector-v1 .es-options {\n    grid-template-columns: 1fr;\n  }\n}\n<\/style>\n\n<h2>Glass Edge Finish Selector<\/h2>\n<p class=\"es-subtitle\">Answer 5 quick questions about your project requirements. Our algorithm recommends the optimal edge grinding profile for your application.<\/p>\n\n<div class=\"es-progress\" id=\"esProgress\"><\/div>\n\n<!-- Step 1 -->\n<div class=\"es-step active\" data-step=\"1\">\n  <h4>Step 1 of 5<\/h4>\n  <p class=\"es-question\">Is your glass edge exposed or hidden in the final assembly?<\/p>\n  <div class=\"es-options\" data-name=\"exposure\">\n    <label class=\"es-option\"><input type=\"radio\" name=\"exposure\" value=\"exposed\">Exposed \u2014 Edge is visible<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"exposure\" value=\"hidden\">Hidden \u2014 Edge is concealed<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"exposure\" value=\"both\">Both \u2014 Some edges exposed<\/label>\n  <\/div>\n  <div class=\"es-nav\">\n    <button type=\"button\" class=\"es-btn es-btn-primary es-next\" disabled>Next Step<\/button>\n  <\/div>\n<\/div>\n\n<!-- Step 2 -->\n<div class=\"es-step\" data-step=\"2\">\n  <h4>Step 2 of 5<\/h4>\n  <p class=\"es-question\">What is your primary application?<\/p>\n  <div class=\"es-options\" data-name=\"application\">\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"touchscreen\">Touchscreen<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"industrial\">Industrial Panel<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"medical\">Medical Device<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"automotive\">Automotive<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"appliance\">Appliance<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"furniture\">Furniture<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"lighting\">Lighting<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"application\" value=\"other\">Other<\/label>\n  <\/div>\n  <div class=\"es-nav\">\n    <button type=\"button\" class=\"es-btn es-btn-secondary es-prev\">Back<\/button>\n    <button type=\"button\" class=\"es-btn es-btn-primary es-next\" disabled>Next Step<\/button>\n  <\/div>\n<\/div>\n\n<!-- Step 3 -->\n<div class=\"es-step\" data-step=\"3\">\n  <h4>Step 3 of 5<\/h4>\n  <p class=\"es-question\">What is your glass thickness?<\/p>\n  <div class=\"es-slider-wrap\">\n    <div class=\"es-slider-val\" id=\"esThicknessVal\">3.0 mm<\/div>\n    <input type=\"range\" class=\"es-slider\" id=\"esThickness\" min=\"0.4\" max=\"19\" step=\"0.1\" value=\"3.0\">\n    <div class=\"es-slider-labels\"><span>0.4 mm<\/span><span>5 mm<\/span><span>10 mm<\/span><span>15 mm<\/span><span>19 mm<\/span><\/div>\n  <\/div>\n  <div class=\"es-nav\">\n    <button type=\"button\" class=\"es-btn es-btn-secondary es-prev\">Back<\/button>\n    <button type=\"button\" class=\"es-btn es-btn-primary es-next\">Next Step<\/button>\n  <\/div>\n<\/div>\n\n<!-- Step 4 -->\n<div class=\"es-step\" data-step=\"4\">\n  <h4>Step 4 of 5<\/h4>\n  <p class=\"es-question\">What is your budget priority?<\/p>\n  <div class=\"es-options\" data-name=\"budget\">\n    <label class=\"es-option\"><input type=\"radio\" name=\"budget\" value=\"economy\">Economy \u2014 Lowest cost<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"budget\" value=\"standard\">Standard \u2014 Balanced<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"budget\" value=\"premium\">Premium \u2014 Best finish<\/label>\n  <\/div>\n  <div class=\"es-nav\">\n    <button type=\"button\" class=\"es-btn es-btn-secondary es-prev\">Back<\/button>\n    <button type=\"button\" class=\"es-btn es-btn-primary es-next\" disabled>Next Step<\/button>\n  <\/div>\n<\/div>\n\n<!-- Step 5 -->\n<div class=\"es-step\" data-step=\"5\">\n  <h4>Step 5 of 5<\/h4>\n  <p class=\"es-question\">Do you need tempered or chemically strengthened glass?<\/p>\n  <div class=\"es-options\" data-name=\"tempered\">\n    <label class=\"es-option\"><input type=\"radio\" name=\"tempered\" value=\"yes\">Yes \u2014 Tempered \/ Strengthened<\/label>\n    <label class=\"es-option\"><input type=\"radio\" name=\"tempered\" value=\"no\">No \u2014 Annealed glass is fine<\/label>\n  <\/div>\n  <div class=\"es-nav\">\n    <button type=\"button\" class=\"es-btn es-btn-secondary es-prev\">Back<\/button>\n    <button type=\"button\" class=\"es-btn es-btn-primary es-submit\" disabled>Get Recommendation<\/button>\n  <\/div>\n<\/div>\n\n<!-- Results -->\n<div class=\"es-result\" id=\"esResult\">\n  <h3>Your Recommended Edge Finish<\/h3>\n  <div class=\"es-result-card\">\n    <div class=\"es-rec-title\">Best Match<\/div>\n    <div class=\"es-rec-edge\" id=\"esRecEdge\"><\/div>\n    <div class=\"es-rec-why\" id=\"esRecWhy\"><\/div>\n    <div class=\"es-kpi-row\">\n      <div class=\"es-kpi\">\n        <div class=\"es-kpi-label\">Cost Tier<\/div>\n        <div class=\"es-kpi-value\" id=\"esRecCost\"><\/div>\n      <\/div>\n      <div class=\"es-kpi\">\n        <div class=\"es-kpi-label\">Surface Finish<\/div>\n        <div class=\"es-kpi-value\" id=\"esRecFinish\"><\/div>\n      <\/div>\n      <div class=\"es-kpi\">\n        <div class=\"es-kpi-label\">Lead Time<\/div>\n        <div class=\"es-kpi-value\" id=\"esRecLead\"><\/div>\n      <\/div>\n    <\/div>\n    <a href=\"#ct-popup-787\" class=\"es-cta\">Request a Quote for Edge Grinding &rarr;<\/a>\n  <\/div>\n  <div class=\"es-alt\" id=\"esAlt\">\n    <div class=\"es-alt-title\">Alternative Options<\/div>\n    <div id=\"esAltList\"><\/div>\n  <\/div>\n  <button type=\"button\" class=\"es-reset\" id=\"esReset\">Start Over<\/button>\n<\/div>\n\n<script>\n(function(){\n  var root = document.getElementById('bx-edge-selector-v1');\n  var steps = root.querySelectorAll('.es-step');\n  var dots = [];\n  var current = 1;\n  var totalSteps = 5;\n  var answers = { thickness: 3.0 };\n\n  \/\/ Build progress dots\n  var prog = root.querySelector('#esProgress');\n  for (var i = 0; i < totalSteps; i++) {\n    var d = document.createElement('div');\n    d.className = 'es-progress-dot' + (i === 0 ? ' active' : '');\n    prog.appendChild(d);\n    dots.push(d);\n  }\n\n  \/\/ Slider\n  var slider = root.querySelector('#esThickness');\n  var sliderVal = root.querySelector('#esThicknessVal');\n  slider.addEventListener('input', function() {\n    sliderVal.textContent = parseFloat(this.value).toFixed(1) + ' mm';\n    answers.thickness = parseFloat(this.value);\n  });\n\n  \/\/ Option clicks\n  root.querySelectorAll('.es-option').forEach(function(opt) {\n    opt.addEventListener('click', function() {\n      var radio = this.querySelector('input[type=\"radio\"]');\n      if (!radio) return;\n      radio.checked = true;\n      var name = radio.name;\n      answers[name] = radio.value;\n      this.parentElement.querySelectorAll('.es-option').forEach(function(o) { o.classList.remove('selected'); });\n      this.classList.add('selected');\n      \/\/ Enable next button\n      var step = this.closest('.es-step');\n      var nxt = step.querySelector('.es-next, .es-submit');\n      if (nxt) nxt.disabled = false;\n    });\n  });\n\n  function goStep(n) {\n    current = n;\n    steps.forEach(function(s) { s.classList.remove('active'); });\n    var target = root.querySelector('.es-step[data-step=\"' + n + '\"]');\n    if (target) target.classList.add('active');\n    dots.forEach(function(d, i) {\n      d.className = 'es-progress-dot';\n      if (i < n - 1) d.classList.add('done');\n      if (i === n - 1) d.classList.add('active');\n    });\n  }\n\n  root.querySelectorAll('.es-next').forEach(function(btn) {\n    btn.addEventListener('click', function() {\n      if (current < totalSteps) goStep(current + 1);\n    });\n  });\n  root.querySelectorAll('.es-prev').forEach(function(btn) {\n    btn.addEventListener('click', function() {\n      if (current > 1) goStep(current - 1);\n    });\n  });\n\n  \/\/ Edge type database\n  var edges = {\n    seamed: { name: 'Seamed Edge (Swiped)', finish: 'Rough', cost: '$', lead: 'Standard', desc: 'Minimal grinding to remove sharp edges. The most economical option for hidden edges where aesthetics are not a concern.' },\n    flatGround: { name: 'Flat Ground Edge', finish: 'Matte', cost: '$$', lead: 'Standard', desc: 'Flat grinding produces a smooth matte finish. Ideal for industrial panels and applications where the edge may be partially visible but a polished look is not required.' },\n    flatPolished: { name: 'Flat Polished Edge', finish: 'Polished', cost: '$$$', lead: 'Standard+', desc: 'Flat grinding followed by polishing for a transparent, glossy edge. Best for exposed edges in furniture, display, and premium consumer products.' },\n    pencilGround: { name: 'Pencil Ground Edge (C-Cut)', finish: 'Smooth', cost: '$$', lead: 'Standard', desc: 'Rounded\/C-shaped edge profile that eliminates sharp corners. Excellent for safety-critical applications like touchscreens and medical devices.' },\n    pencilPolished: { name: 'Pencil Polished Edge', finish: 'Polished', cost: '$$$', lead: 'Standard+', desc: 'C-shaped profile with polished finish. The premium choice for exposed edges on touchscreens, automotive glass, and high-end devices.' },\n    bevel: { name: 'Beveled Edge', finish: 'Polished', cost: '$$$$', lead: 'Extended', desc: 'Angled cut on the edge face, typically at 45 degrees. Creates a decorative, refractive edge effect ideal for furniture, mirrors, and premium lighting panels.' },\n    ogee: { name: 'OG (Ogee) Edge', finish: 'Polished', cost: '$$$$', lead: 'Extended', desc: 'Decorative S-curve profile. Used in high-end furniture and architectural glass where the edge is a design feature.' },\n    mitered: { name: 'Mitered Edge', finish: 'Polished', cost: '$$$$', lead: 'Extended', desc: 'Precision-angled edge for joining glass panels at corners. Used in showcases, display cases, and architectural applications.' }\n  };\n\n  function recommend() {\n    var scores = {};\n    var exp = answers.exposure;\n    var app = answers.application;\n    var th = answers.thickness;\n    var bud = answers.budget;\n    var temp = answers.tempered;\n\n    \/\/ Initialize scores\n    Object.keys(edges).forEach(function(k) { scores[k] = 0; });\n\n    \/\/ Exposure scoring\n    if (exp === 'hidden') {\n      scores.seamed += 30; scores.flatGround += 20;\n    } else if (exp === 'exposed') {\n      scores.flatPolished += 25; scores.pencilPolished += 25; scores.bevel += 20; scores.ogee += 15;\n    } else {\n      scores.flatGround += 10; scores.pencilGround += 15; scores.flatPolished += 15; scores.pencilPolished += 10;\n    }\n\n    \/\/ Application scoring\n    if (app === 'touchscreen') { scores.pencilGround += 25; scores.pencilPolished += 30; }\n    else if (app === 'industrial') { scores.seamed += 15; scores.flatGround += 25; scores.pencilGround += 15; }\n    else if (app === 'medical') { scores.pencilGround += 30; scores.pencilPolished += 20; scores.flatPolished += 10; }\n    else if (app === 'automotive') { scores.pencilGround += 20; scores.pencilPolished += 25; scores.flatGround += 10; }\n    else if (app === 'appliance') { scores.flatGround += 20; scores.flatPolished += 15; scores.seamed += 15; }\n    else if (app === 'furniture') { scores.flatPolished += 20; scores.bevel += 25; scores.ogee += 20; scores.pencilPolished += 10; }\n    else if (app === 'lighting') { scores.flatPolished += 20; scores.pencilPolished += 15; scores.bevel += 15; }\n    else { scores.flatGround += 15; scores.pencilGround += 15; }\n\n    \/\/ Thickness adjustments\n    if (th < 2) {\n      scores.bevel -= 20; scores.ogee -= 25; scores.mitered -= 20;\n      scores.pencilGround += 10; scores.seamed += 10;\n    } else if (th >= 6) {\n      scores.bevel += 10; scores.ogee += 10; scores.mitered += 10;\n    }\n\n    \/\/ Budget scoring\n    if (bud === 'economy') {\n      scores.seamed += 25; scores.flatGround += 15;\n      scores.bevel -= 15; scores.ogee -= 20; scores.flatPolished -= 5; scores.pencilPolished -= 5; scores.mitered -= 15;\n    } else if (bud === 'premium') {\n      scores.flatPolished += 15; scores.pencilPolished += 15; scores.bevel += 15; scores.ogee += 10;\n      scores.seamed -= 10;\n    } else {\n      scores.flatGround += 10; scores.pencilGround += 10; scores.flatPolished += 5;\n    }\n\n    \/\/ Tempered: must grind before tempering\n    if (temp === 'yes') {\n      scores.pencilGround += 10; scores.pencilPolished += 10;\n      scores.ogee -= 5;\n    }\n\n    \/\/ Sort\n    var sorted = Object.keys(scores).sort(function(a, b) { return scores[b] - scores[a]; });\n    return sorted;\n  }\n\n  \/\/ Submit\n  var submitBtn = root.querySelector('.es-submit');\n  submitBtn.addEventListener('click', function() {\n    var ranked = recommend();\n    var best = ranked[0];\n    var e = edges[best];\n\n    root.querySelector('#esRecEdge').textContent = e.name;\n    root.querySelector('#esRecWhy').textContent = e.desc;\n    root.querySelector('#esRecCost').textContent = e.cost;\n    root.querySelector('#esRecFinish').textContent = e.finish;\n    root.querySelector('#esRecLead').textContent = e.lead;\n\n    var altList = root.querySelector('#esAltList');\n    altList.innerHTML = '';\n    for (var i = 1; i < Math.min(4, ranked.length); i++) {\n      var alt = edges[ranked[i]];\n      var div = document.createElement('div');\n      div.className = 'es-alt-item';\n      div.innerHTML = '<span class=\"es-alt-name\">' + alt.name + '<\/span><span class=\"es-alt-score\">' + alt.cost + ' \/ ' + alt.finish + '<\/span>';\n      altList.appendChild(div);\n    }\n\n    steps.forEach(function(s) { s.classList.remove('active'); });\n    root.querySelector('#esResult').classList.add('active');\n    dots.forEach(function(d) { d.classList.add('done'); });\n  });\n\n  \/\/ Reset\n  root.querySelector('#esReset').addEventListener('click', function() {\n    root.querySelector('#esResult').classList.remove('active');\n    answers = { thickness: 3.0 };\n    slider.value = 3.0;\n    sliderVal.textContent = '3.0 mm';\n    root.querySelectorAll('.es-option').forEach(function(o) { o.classList.remove('selected'); });\n    root.querySelectorAll('input[type=\"radio\"]').forEach(function(r) { r.checked = false; });\n    root.querySelectorAll('.es-next, .es-submit').forEach(function(b) { b.disabled = true; });\n    \/\/ Step 3 next is always enabled (slider has default)\n    var step3next = root.querySelector('.es-step[data-step=\"3\"] .es-next');\n    if (step3next) step3next.disabled = false;\n    goStep(1);\n  });\n})();\n<\/script>\n<\/section>\n\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Glass Edge Finish Selector Answer 5 quick questions about your project requirements. Our algorithm recommends the optimal edge grinding profile for your application. Step 1 of 5 Is your glass edge exposed or hidden in the final assembly? Exposed \u2014 Edge is visible Hidden \u2014 Edge is concealed Both \u2014 Some edges exposed Next Step [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":4792,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-4956","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/4956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/comments?post=4956"}],"version-history":[{"count":0,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/4956\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/4792"}],"wp:attachment":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/media?parent=4956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}