{"id":1438,"date":"2026-02-06T07:46:40","date_gmt":"2026-02-06T07:46:40","guid":{"rendered":"https:\/\/saiweiglass.com\/?page_id=1438"},"modified":"2026-02-07T02:26:19","modified_gmt":"2026-02-07T02:26:19","slug":"glass-specification-builder","status":"publish","type":"page","link":"https:\/\/saiweiglass.com\/es\/products\/ar-glass\/glass-specification-builder\/","title":{"rendered":"Constructor de especificaciones de vidrio"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-094119f\" data-block-id=\"094119f\"><style>.stk-094119f {margin-bottom:0px !important;}<\/style><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-094119f-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-990bb00\" data-v=\"4\" data-block-id=\"990bb00\"><style>.stk-990bb00-container{margin-top:var(--stk--preset--spacing--60, 2.25rem) !important;margin-right:var(--stk--preset--spacing--60, 2.25rem) !important;margin-bottom:var(--stk--preset--spacing--60, 2.25rem) !important;margin-left:var(--stk--preset--spacing--60, 2.25rem) !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-990bb00-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-990bb00-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-c617ed5\" data-block-id=\"c617ed5\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-c617ed5-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-e7be962\" data-v=\"4\" data-block-id=\"e7be962\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-e7be962-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-e7be962-inner-blocks\">\n<!-- \n  SAIWEI GLASS - Glass Specification Builder Tool\n  Standalone Custom HTML Module for WordPress Gutenberg\n  Compatible with Blocksy \/ Stackable \/ Astra \/ Elementor\n-->\n<section id=\"saiwei-spec-builder\">\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=Instrument+Serif:ital@0;1&display=swap');\n\n    #saiwei-spec-builder * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n    }\n\n    #saiwei-spec-builder {\n      font-family: 'DM Sans', sans-serif !important;\n      background: #f6f9fc;\n      padding: 40px 20px;\n      width: 100%;\n      color: #1a1f36 !important;\n      position: relative;\n      overflow: hidden;\n    }\n\n    #saiwei-spec-builder .sb-inner {\n      max-width: 1100px;\n      margin: 0 auto;\n      position: relative;\n      z-index: 1;\n    }\n\n    #saiwei-spec-builder .sb-header {\n      text-align: center;\n      margin-bottom: 36px;\n    }\n\n    #saiwei-spec-builder .sb-eyebrow {\n      font-size: 11px !important;\n      font-weight: 600 !important;\n      letter-spacing: 2.5px;\n      text-transform: uppercase;\n      color: #1860A8 !important;\n      margin-bottom: 12px;\n      display: block;\n    }\n\n    #saiwei-spec-builder h2,\n    #saiwei-spec-builder h3 {\n      margin: 0 !important;\n      padding: 0 !important;\n      border: none !important;\n      font-style: normal !important;\n      text-transform: none !important;\n      letter-spacing: normal !important;\n      -webkit-text-stroke: 0 !important;\n      background: none !important;\n    }\n\n    #saiwei-spec-builder h2.sb-title {\n      font-family: 'Instrument Serif', serif !important;\n      font-size: 32px !important;\n      font-weight: 400 !important;\n      color: #1a1f36 !important;\n      line-height: 1.2 !important;\n      margin-bottom: 10px !important;\n    }\n\n    #saiwei-spec-builder .sb-subtitle {\n      font-size: 15px !important;\n      color: #5a6178 !important;\n      line-height: 1.6;\n      max-width: 580px;\n      margin: 0 auto;\n    }\n\n    \/* Layout: 2 columns *\/\n    #saiwei-spec-builder .sb-layout {\n      display: grid;\n      grid-template-columns: 1fr 380px;\n      gap: 24px;\n      align-items: start;\n    }\n\n    \/* Left: Form *\/\n    #saiwei-spec-builder .sb-form-card {\n      background: #fff;\n      border: 1px solid #e2e5ef;\n      border-radius: 16px;\n      padding: 32px;\n      box-shadow: 0 1px 3px rgba(26,31,54,0.06), 0 8px 32px rgba(26,31,54,0.04);\n    }\n\n    #saiwei-spec-builder h3.sb-section-title {\n      font-family: 'DM Sans', sans-serif !important;\n      font-size: 13px !important;\n      font-weight: 700 !important;\n      letter-spacing: 1.5px !important;\n      text-transform: uppercase !important;\n      color: #304890 !important;\n      margin-bottom: 20px !important;\n      padding-bottom: 12px !important;\n      border-bottom: 1px solid #eef0f5 !important;\n      display: flex;\n      align-items: center;\n      gap: 8px;\n    }\n\n    #saiwei-spec-builder h3.sb-section-title svg {\n      width: 16px;\n      height: 16px;\n      stroke: #304890;\n      fill: none;\n      stroke-width: 2;\n    }\n\n    #saiwei-spec-builder .sb-field-group {\n      margin-bottom: 20px;\n    }\n\n    #saiwei-spec-builder .sb-label {\n      font-size: 13px !important;\n      font-weight: 600 !important;\n      color: #5a6178 !important;\n      margin-bottom: 8px;\n      display: block;\n    }\n\n    #saiwei-spec-builder .sb-select-wrap {\n      position: relative;\n    }\n\n    #saiwei-spec-builder .sb-select-wrap::after {\n      content: '';\n      position: absolute;\n      right: 14px;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 0;\n      height: 0;\n      border-left: 5px solid transparent;\n      border-right: 5px solid transparent;\n      border-top: 5px solid #304890;\n      pointer-events: none;\n    }\n\n    #saiwei-spec-builder select {\n      font-family: 'DM Sans', sans-serif !important;\n      width: 100%;\n      height: 46px;\n      padding: 0 36px 0 14px;\n      font-size: 14px !important;\n      color: #1a1f36 !important;\n      background: #f4f5f9 !important;\n      border: 1px solid #e2e5ef;\n      border-radius: 10px;\n      appearance: none;\n      -webkit-appearance: none;\n      -moz-appearance: none;\n      outline: none;\n      cursor: pointer;\n      transition: border-color 0.2s ease;\n      line-height: 46px;\n    }\n\n    #saiwei-spec-builder select:focus {\n      border-color: #304890;\n    }\n\n    #saiwei-spec-builder select option {\n      background: #fff !important;\n      color: #1a1f36 !important;\n      padding: 10px;\n      font-size: 14px !important;\n    }\n\n    \/* Dimension inputs *\/\n    #saiwei-spec-builder .sb-dim-row {\n      display: grid;\n      grid-template-columns: 1fr 12px 1fr 12px 1fr;\n      align-items: center;\n      gap: 0;\n    }\n\n    #saiwei-spec-builder .sb-dim-sep {\n      text-align: center;\n      color: #8b90a5 !important;\n      font-size: 14px !important;\n      font-weight: 600 !important;\n    }\n\n    #saiwei-spec-builder input[type=\"number\"] {\n      font-family: 'DM Sans', sans-serif !important;\n      width: 100%;\n      height: 46px;\n      padding: 0 10px;\n      font-size: 14px !important;\n      color: #1a1f36 !important;\n      background: #f4f5f9 !important;\n      border: 1px solid #e2e5ef;\n      border-radius: 10px;\n      outline: none;\n      transition: border-color 0.2s ease;\n      -moz-appearance: textfield;\n    }\n\n    #saiwei-spec-builder input[type=\"number\"]::-webkit-outer-spin-button,\n    #saiwei-spec-builder input[type=\"number\"]::-webkit-inner-spin-button {\n      -webkit-appearance: none;\n      margin: 0;\n    }\n\n    #saiwei-spec-builder input[type=\"number\"]:focus {\n      border-color: #304890;\n    }\n\n    #saiwei-spec-builder input[type=\"number\"]::placeholder {\n      color: #a0a8c0 !important;\n    }\n\n    \/* Quantity input *\/\n    #saiwei-spec-builder .sb-qty-row {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 12px;\n    }\n\n    \/* Checkbox coating options *\/\n    #saiwei-spec-builder .sb-coating-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 10px;\n    }\n\n    #saiwei-spec-builder .sb-coat-check {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      padding: 12px 14px;\n      background: #f8f9fc;\n      border: 1px solid #e2e5ef;\n      border-radius: 10px;\n      cursor: pointer;\n      transition: all 0.2s ease;\n      user-select: none;\n    }\n\n    #saiwei-spec-builder .sb-coat-check:hover {\n      border-color: #b8c4e0;\n    }\n\n    #saiwei-spec-builder .sb-coat-check.checked {\n      border-color: #304890;\n      background: #f0f3fa;\n    }\n\n    #saiwei-spec-builder .sb-coat-box {\n      width: 20px;\n      height: 20px;\n      border-radius: 5px;\n      border: 2px solid #d4d8e8;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      flex-shrink: 0;\n      transition: all 0.2s ease;\n    }\n\n    #saiwei-spec-builder .sb-coat-check.checked .sb-coat-box {\n      background: #304890;\n      border-color: #304890;\n    }\n\n    #saiwei-spec-builder .sb-coat-box svg {\n      width: 12px;\n      height: 12px;\n      stroke: #fff;\n      stroke-width: 3;\n      fill: none;\n      opacity: 0;\n      transition: opacity 0.2s ease;\n    }\n\n    #saiwei-spec-builder .sb-coat-check.checked .sb-coat-box svg {\n      opacity: 1;\n    }\n\n    #saiwei-spec-builder .sb-coat-label {\n      font-size: 13px !important;\n      font-weight: 500 !important;\n      color: #6b7194 !important;\n    }\n\n    #saiwei-spec-builder .sb-coat-check.checked .sb-coat-label {\n      color: #1a1f36 !important;\n    }\n\n    \/* Divider *\/\n    #saiwei-spec-builder .sb-divider {\n      height: 1px;\n      background: #eef0f5;\n      margin: 24px 0;\n    }\n\n    \/* Right: Live preview *\/\n    #saiwei-spec-builder .sb-preview-card {\n      background: #fff;\n      border: 1px solid #e2e5ef;\n      border-radius: 16px;\n      padding: 28px;\n      position: sticky;\n      top: 100px;\n      box-shadow: 0 1px 3px rgba(26,31,54,0.06), 0 8px 32px rgba(26,31,54,0.04);\n    }\n\n    #saiwei-spec-builder .sb-preview-header {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      margin-bottom: 24px;\n    }\n\n    #saiwei-spec-builder .sb-preview-title {\n      font-size: 14px !important;\n      font-weight: 700 !important;\n      letter-spacing: 1.5px;\n      text-transform: uppercase;\n      color: #304890 !important;\n    }\n\n    #saiwei-spec-builder .sb-preview-status {\n      font-size: 11px !important;\n      font-weight: 600 !important;\n      padding: 4px 12px;\n      border-radius: 20px;\n      background: #eef2fa;\n      color: #304890 !important;\n    }\n\n    #saiwei-spec-builder .sb-preview-status.complete {\n      background: #e8f7ef;\n      color: #1a8a5e !important;\n    }\n\n    \/* Preview rows *\/\n    #saiwei-spec-builder .sb-prow {\n      display: flex;\n      justify-content: space-between;\n      align-items: flex-start;\n      padding: 10px 0;\n      border-bottom: 1px solid #eef0f5;\n    }\n\n    #saiwei-spec-builder .sb-prow:last-child {\n      border-bottom: none;\n    }\n\n    #saiwei-spec-builder .sb-prow-label {\n      font-size: 12.5px !important;\n      color: #6b7194 !important;\n      flex-shrink: 0;\n      min-width: 110px;\n    }\n\n    #saiwei-spec-builder .sb-prow-val {\n      font-size: 13.5px !important;\n      font-weight: 600 !important;\n      color: #1a1f36 !important;\n      text-align: right;\n    }\n\n    #saiwei-spec-builder .sb-prow-val.empty {\n      color: #b0b8c8 !important;\n      font-weight: 400 !important;\n      font-style: italic;\n    }\n\n    \/* Weight estimate *\/\n    #saiwei-spec-builder .sb-weight-box {\n      background: #f0f3fa;\n      border: 1px solid #dde3f0;\n      border-radius: 10px;\n      padding: 16px;\n      margin-top: 16px;\n      text-align: center;\n    }\n\n    #saiwei-spec-builder .sb-weight-label {\n      font-size: 11px !important;\n      font-weight: 600 !important;\n      letter-spacing: 1px;\n      text-transform: uppercase;\n      color: #304890 !important;\n      margin-bottom: 4px;\n    }\n\n    #saiwei-spec-builder .sb-weight-val {\n      font-size: 24px !important;\n      font-weight: 700 !important;\n      color: #304890 !important;\n    }\n\n    #saiwei-spec-builder .sb-weight-unit {\n      font-size: 13px !important;\n      font-weight: 400 !important;\n      color: #5a6178 !important;\n    }\n\n    \/* Generate button *\/\n    #saiwei-spec-builder .sb-generate-btn {\n      font-family: 'DM Sans', sans-serif !important;\n      width: 100%;\n      padding: 14px;\n      margin-top: 20px;\n      background: linear-gradient(135deg, #304890, #1860A8);\n      color: #fff !important;\n      font-size: 14px !important;\n      font-weight: 600 !important;\n      border: none;\n      border-radius: 10px;\n      cursor: pointer;\n      transition: all 0.25s ease;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n    }\n\n    #saiwei-spec-builder .sb-generate-btn:hover {\n      box-shadow: 0 6px 24px rgba(48,72,144,0.4);\n      transform: translateY(-1px);\n    }\n\n    #saiwei-spec-builder .sb-generate-btn svg {\n      width: 16px;\n      height: 16px;\n      stroke: currentColor;\n      fill: none;\n      stroke-width: 2;\n    }\n\n    \/* Responsive *\/\n    @media (max-width: 860px) {\n      #saiwei-spec-builder .sb-layout {\n        grid-template-columns: 1fr;\n      }\n      #saiwei-spec-builder .sb-preview-card {\n        position: static;\n      }\n    }\n\n    @media (max-width: 480px) {\n      #saiwei-spec-builder .sb-form-card,\n      #saiwei-spec-builder .sb-preview-card {\n        padding: 20px 16px;\n      }\n      #saiwei-spec-builder .sb-coating-grid {\n        grid-template-columns: 1fr;\n      }\n      #saiwei-spec-builder h2.sb-title {\n        font-size: 26px !important;\n      }\n    }\n    #saiwei-spec-builder .sb-quote-btn {\n      font-family: 'DM Sans', sans-serif !important;\n      width: 100%;\n      padding: 13px;\n      margin-top: 12px;\n      background: transparent;\n      color: #304890 !important;\n      font-size: 14px !important;\n      font-weight: 600 !important;\n      border: 2px solid #304890;\n      border-radius: 10px;\n      cursor: pointer;\n      transition: all 0.25s ease;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 8px;\n      text-decoration: none !important;\n    }\n\n    #saiwei-spec-builder .sb-quote-btn:hover {\n      background: #304890;\n      color: #fff !important;\n      box-shadow: 0 4px 16px rgba(48,72,144,0.3);\n    }\n\n    #saiwei-spec-builder .sb-quote-btn svg {\n      width: 16px;\n      height: 16px;\n      stroke: currentColor;\n      fill: none;\n      stroke-width: 2;\n    }\n  <\/style>\n\n  <div class=\"sb-inner\">\n    <div class=\"sb-header\">\n      <span class=\"sb-eyebrow\">Product Configurator<\/span>\n      <h2 class=\"sb-title\">Glass Specification Builder<\/h2>\n      <div class=\"sb-subtitle\">Configure your custom glass specifications step by step. A live preview updates as you make selections.<\/div>\n    <\/div>\n\n    <div class=\"sb-layout\">\n      <!-- Form -->\n      <div class=\"sb-form-card\">\n        <h3 class=\"sb-section-title\">\n          <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"3\" y1=\"9\" x2=\"21\" y2=\"9\"\/><line x1=\"9\" y1=\"21\" x2=\"9\" y2=\"9\"\/><\/svg>\n          Glass Material &amp; Dimensions\n        <\/h3>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Glass Material<\/span>\n          <div class=\"sb-select-wrap\">\n            <select id=\"sbMaterial\" onchange=\"sbUpdate()\">\n              <option value=\"\">\u2014 Select material \u2014<\/option>\n              <option value=\"soda_lime\">Soda-Lime Glass (Standard, economical)<\/option>\n              <option value=\"borosilicate\">Borosilicate Glass (Heat resistant, Pyrex-type)<\/option>\n              <option value=\"aluminosilicate\">Aluminosilicate Glass (Gorilla \/ Dragontrail type)<\/option>\n              <option value=\"quartz\">Quartz Glass (UV transparent, ultra-high temp)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Dimensions \u2014 Length \u00d7 Width \u00d7 Thickness (mm)<\/span>\n          <div class=\"sb-dim-row\">\n            <input type=\"number\" id=\"sbLength\" placeholder=\"Length\" min=\"1\" max=\"3000\" onchange=\"sbUpdate()\" oninput=\"sbUpdate()\">\n            <span class=\"sb-dim-sep\">\u00d7<\/span>\n            <input type=\"number\" id=\"sbWidth\" placeholder=\"Width\" min=\"1\" max=\"3000\" onchange=\"sbUpdate()\" oninput=\"sbUpdate()\">\n            <span class=\"sb-dim-sep\">\u00d7<\/span>\n            <input type=\"number\" id=\"sbThick\" placeholder=\"Thk\" min=\"0.3\" max=\"25\" step=\"0.1\" onchange=\"sbUpdate()\" oninput=\"sbUpdate()\">\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Shape<\/span>\n          <div class=\"sb-select-wrap\">\n            <select id=\"sbShape\" onchange=\"sbUpdate()\">\n              <option value=\"\">\u2014 Select shape \u2014<\/option>\n              <option value=\"rectangle\">Rectangle \/ Square<\/option>\n              <option value=\"round\">Round \/ Circular<\/option>\n              <option value=\"custom\">Custom Shape (CNC cut)<\/option>\n              <option value=\"irregular\">Irregular \/ Complex Contour<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-divider\"><\/div>\n\n        <h3 class=\"sb-section-title\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M12 2L2 7l10 5 10-5-10-5z\"\/><path d=\"M2 17l10 5 10-5\"\/><path d=\"M2 12l10 5 10-5\"\/><\/svg>\n          Surface Treatment &amp; Coating\n        <\/h3>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Strengthening Method<\/span>\n          <div class=\"sb-select-wrap\">\n            <select id=\"sbStrength\" onchange=\"sbUpdate()\">\n              <option value=\"\">\u2014 Select method \u2014<\/option>\n              <option value=\"none\">None (Raw glass)<\/option>\n              <option value=\"thermal\">Thermal Tempering (\u22654mm thickness)<\/option>\n              <option value=\"chemical\">Chemical Strengthening (0.3\u20136mm, high strength)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Coatings (select all that apply)<\/span>\n          <div class=\"sb-coating-grid\">\n            <div class=\"sb-coat-check\" onclick=\"sbToggleCoat(this)\" data-coat=\"AR\">\n              <div class=\"sb-coat-box\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n              <span class=\"sb-coat-label\">AR (Anti-Reflective)<\/span>\n            <\/div>\n            <div class=\"sb-coat-check\" onclick=\"sbToggleCoat(this)\" data-coat=\"AG\">\n              <div class=\"sb-coat-box\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n              <span class=\"sb-coat-label\">AG (Anti-Glare)<\/span>\n            <\/div>\n            <div class=\"sb-coat-check\" onclick=\"sbToggleCoat(this)\" data-coat=\"AF\">\n              <div class=\"sb-coat-box\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n              <span class=\"sb-coat-label\">AF (Anti-Fingerprint)<\/span>\n            <\/div>\n            <div class=\"sb-coat-check\" onclick=\"sbToggleCoat(this)\" data-coat=\"ITO\">\n              <div class=\"sb-coat-box\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n              <span class=\"sb-coat-label\">ITO (Conductive)<\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-divider\"><\/div>\n\n        <h3 class=\"sb-section-title\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z\"\/><\/svg>\n          Additional Processing\n        <\/h3>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Edge Processing<\/span>\n          <div class=\"sb-select-wrap\">\n            <select id=\"sbEdge\" onchange=\"sbUpdate()\">\n              <option value=\"\">\u2014 Select edge type \u2014<\/option>\n              <option value=\"seamed\">Seamed Edge (basic, safe to handle)<\/option>\n              <option value=\"polished\">Polished Edge (smooth, transparent)<\/option>\n              <option value=\"beveled\">Beveled Edge (angled cut, premium)<\/option>\n              <option value=\"stepped\">Stepped Edge (precision, for assembly)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-field-group\">\n          <span class=\"sb-label\">Printing \/ Decoration<\/span>\n          <div class=\"sb-select-wrap\">\n            <select id=\"sbPrint\" onchange=\"sbUpdate()\">\n              <option value=\"\">\u2014 Select option \u2014<\/option>\n              <option value=\"none\">None<\/option>\n              <option value=\"silk_black\">Silk Screen \u2014 Black Border \/ Frame<\/option>\n              <option value=\"silk_color\">Silk Screen \u2014 Custom Color<\/option>\n              <option value=\"silk_logo\">Silk Screen \u2014 Logo \/ Icon<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"sb-qty-row\">\n          <div class=\"sb-field-group\">\n            <span class=\"sb-label\">Quantity (pcs)<\/span>\n            <input type=\"number\" id=\"sbQty\" placeholder=\"e.g. 500\" min=\"1\" onchange=\"sbUpdate()\" oninput=\"sbUpdate()\">\n          <\/div>\n          <div class=\"sb-field-group\">\n            <span class=\"sb-label\">Target Industry<\/span>\n            <div class=\"sb-select-wrap\">\n              <select id=\"sbIndustry\" onchange=\"sbUpdate()\">\n                <option value=\"\">\u2014 Select \u2014<\/option>\n                <option value=\"consumer\">Consumer Electronics<\/option>\n                <option value=\"medical\">Medical Devices<\/option>\n                <option value=\"industrial\">Industrial \/ HMI<\/option>\n                <option value=\"automotive\">Automotive<\/option>\n                <option value=\"smart_home\">Smart Home \/ IoT<\/option>\n                <option value=\"lighting\">LED Lighting<\/option>\n                <option value=\"pos\">POS \/ Kiosk<\/option>\n                <option value=\"other\">Other<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Live Preview -->\n      <div class=\"sb-preview-card\">\n        <div class=\"sb-preview-header\">\n          <span class=\"sb-preview-title\">Live Spec Preview<\/span>\n          <span class=\"sb-preview-status\" id=\"sbStatus\">Incomplete<\/span>\n        <\/div>\n\n        <div id=\"sbPreviewRows\">\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Material<\/span><span class=\"sb-prow-val empty\" id=\"pvMat\">Not selected<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Dimensions<\/span><span class=\"sb-prow-val empty\" id=\"pvDim\">\u2014 \u00d7 \u2014 \u00d7 \u2014 mm<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Shape<\/span><span class=\"sb-prow-val empty\" id=\"pvShape\">Not selected<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Strengthening<\/span><span class=\"sb-prow-val empty\" id=\"pvStr\">Not selected<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Coatings<\/span><span class=\"sb-prow-val empty\" id=\"pvCoat\">None<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Edge<\/span><span class=\"sb-prow-val empty\" id=\"pvEdge\">Not selected<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Printing<\/span><span class=\"sb-prow-val empty\" id=\"pvPrint\">Not selected<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Quantity<\/span><span class=\"sb-prow-val empty\" id=\"pvQty\">\u2014<\/span><\/div>\n          <div class=\"sb-prow\"><span class=\"sb-prow-label\">Industry<\/span><span class=\"sb-prow-val empty\" id=\"pvInd\">Not selected<\/span><\/div>\n        <\/div>\n\n        <div class=\"sb-weight-box\">\n          <div class=\"sb-weight-label\">Estimated Unit Weight<\/div>\n          <div><span class=\"sb-weight-val\" id=\"pvWeight\">\u2014<\/span> <span class=\"sb-weight-unit\">grams<\/span><\/div>\n        <\/div>\n\n        <button class=\"sb-generate-btn\" onclick=\"sbGenerate()\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><polyline points=\"10 9 9 9 8 9\"\/><\/svg>\n          Generate Spec Sheet\n        <\/button>\n\n        <a class=\"sb-quote-btn\" href=\"#ct-popup-787\" data-popup=\"ct-popup-787\" role=\"button\" aria-label=\"Get an instant quote for custom glass manufacturing\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n          Get Instant Quote\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- Spec Sheet Modal \u2014 self-contained outside section to avoid overflow:hidden clipping -->\n<style>\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Instrument+Serif&display=swap');\n\n  #sbSheetOverlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    background: rgba(12,18,37,0.6);\n    z-index: 99999;\n    justify-content: center;\n    align-items: center;\n    padding: 20px;\n    font-family: 'DM Sans', sans-serif !important;\n    box-sizing: border-box;\n  }\n  #sbSheetOverlay.open {\n    display: flex;\n  }\n  #sbSheetOverlay * {\n    box-sizing: border-box;\n  }\n  #sbSheetOverlay .sb-sheet-box {\n    background: #fff;\n    border-radius: 16px;\n    max-width: 700px;\n    width: 100%;\n    max-height: 90vh;\n    overflow-y: auto;\n    padding: 40px;\n    position: relative;\n    animation: sbSlideIn 0.35s cubic-bezier(0.22,1,0.36,1) forwards;\n  }\n  @keyframes sbSlideIn {\n    from { opacity: 0; transform: translateY(30px) scale(0.97); }\n    to { opacity: 1; transform: translateY(0) scale(1); }\n  }\n  #sbSheetOverlay .sb-sheet-close {\n    position: absolute;\n    top: 16px;\n    right: 16px;\n    width: 36px;\n    height: 36px;\n    border-radius: 50%;\n    background: #f0f2f7;\n    border: none;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 18px;\n    color: #5a6178 !important;\n    transition: background 0.2s ease;\n  }\n  #sbSheetOverlay .sb-sheet-close:hover {\n    background: #e0e3ec;\n  }\n  #sbSheetOverlay .sb-sheet-logo {\n    font-family: 'Instrument Serif', serif !important;\n    font-size: 20px !important;\n    color: #304890 !important;\n    margin-bottom: 4px;\n  }\n  #sbSheetOverlay .sb-sheet-subtitle {\n    font-size: 12px !important;\n    color: #8b90a5 !important;\n    margin-bottom: 24px;\n  }\n  #sbSheetOverlay .sb-sheet-stamp {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 14px 18px;\n    background: #f6f7fb;\n    border-radius: 10px;\n    margin-bottom: 20px;\n  }\n  #sbSheetOverlay .sb-sheet-stamp-text {\n    font-size: 12px !important;\n    color: #6b7194 !important;\n  }\n  #sbSheetOverlay .sb-sheet-stamp-date {\n    font-size: 12px !important;\n    font-weight: 600 !important;\n    color: #304890 !important;\n  }\n  #sbSheetOverlay .sb-sheet-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin-bottom: 24px;\n  }\n  #sbSheetOverlay .sb-sheet-table th {\n    text-align: left;\n    padding: 10px 14px;\n    background: #304890;\n    color: #fff !important;\n    font-size: 12px !important;\n    font-weight: 600 !important;\n    letter-spacing: 0.5px;\n  }\n  #sbSheetOverlay .sb-sheet-table th:first-child {\n    border-radius: 8px 0 0 0;\n  }\n  #sbSheetOverlay .sb-sheet-table th:last-child {\n    border-radius: 0 8px 0 0;\n  }\n  #sbSheetOverlay .sb-sheet-table td {\n    padding: 10px 14px;\n    font-size: 13.5px !important;\n    border-bottom: 1px solid #eef0f5;\n    color: #3a3f58 !important;\n  }\n  #sbSheetOverlay .sb-sheet-table td:first-child {\n    font-weight: 600 !important;\n    color: #1a1f36 !important;\n    width: 40%;\n  }\n  #sbSheetOverlay .sb-sheet-cta {\n    font-family: 'DM Sans', sans-serif !important;\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: #304890;\n    color: #fff !important;\n    font-size: 14px !important;\n    font-weight: 600 !important;\n    padding: 13px 28px;\n    border-radius: 10px;\n    text-decoration: none !important;\n    border: none;\n    cursor: pointer;\n    transition: all 0.25s ease;\n  }\n  #sbSheetOverlay .sb-sheet-cta:hover {\n    background: #1860A8;\n    box-shadow: 0 4px 16px rgba(48,72,144,0.3);\n  }\n  @media (max-width: 480px) {\n    #sbSheetOverlay .sb-sheet-box {\n      padding: 24px 16px;\n    }\n  }\n<\/style>\n<div class=\"sb-sheet-overlay\" id=\"sbSheetOverlay\" onclick=\"sbCloseSheet(event)\">\n  <div class=\"sb-sheet-box\" onclick=\"event.stopPropagation()\">\n    <button class=\"sb-sheet-close\" onclick=\"document.getElementById('sbSheetOverlay').classList.remove('open')\">\u2715<\/button>\n    <div class=\"sb-sheet-logo\">Saiwei Glass<\/div>\n    <div class=\"sb-sheet-subtitle\">Custom Glass Specification Sheet \u2014 Generated by Online Configurator<\/div>\n    \n    <div class=\"sb-sheet-stamp\">\n      <span class=\"sb-sheet-stamp-text\">Reference ID: <strong id=\"sbRefID\"><\/strong><\/span>\n      <span class=\"sb-sheet-stamp-date\" id=\"sbDate\"><\/span>\n    <\/div>\n\n    <table class=\"sb-sheet-table\" id=\"sbSheetTable\"><\/table>\n\n    <div style=\"text-align:center;\">\n      <a class=\"sb-sheet-cta\" href=\"#ct-popup-787\" data-popup=\"ct-popup-787\" role=\"button\" aria-label=\"Submit glass specification and request a quote\">\n        Submit This Spec &amp; Get a Quote \u2192\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n  (function(){\n    \/\/ Move modal overlay to body to escape any container overflow\/z-index issues\n    var overlay = document.getElementById('sbSheetOverlay');\n    if(overlay && overlay.parentNode !== document.body) {\n      document.body.appendChild(overlay);\n    }\n\n    var coatings = [];\n\n    var materialDensity = {\n      soda_lime: 2.5,\n      borosilicate: 2.23,\n      aluminosilicate: 2.54,\n      quartz: 2.2\n    };\n\n    var materialNames = {\n      soda_lime: 'Soda-Lime Glass',\n      borosilicate: 'Borosilicate Glass',\n      aluminosilicate: 'Aluminosilicate Glass',\n      quartz: 'Quartz Glass'\n    };\n\n    var shapeNames = {\n      rectangle: 'Rectangle \/ Square',\n      round: 'Round \/ Circular',\n      custom: 'Custom CNC Shape',\n      irregular: 'Irregular Contour'\n    };\n\n    var strengthNames = {\n      none: 'None (Raw)',\n      thermal: 'Thermal Tempering',\n      chemical: 'Chemical Strengthening'\n    };\n\n    var edgeNames = {\n      seamed: 'Seamed Edge',\n      polished: 'Polished Edge',\n      beveled: 'Beveled Edge',\n      stepped: 'Stepped Edge'\n    };\n\n    var printNames = {\n      none: 'None',\n      silk_black: 'Silk Screen \u2014 Black Border',\n      silk_color: 'Silk Screen \u2014 Custom Color',\n      silk_logo: 'Silk Screen \u2014 Logo \/ Icon'\n    };\n\n    var industryNames = {\n      consumer: 'Consumer Electronics',\n      medical: 'Medical Devices',\n      industrial: 'Industrial \/ HMI',\n      automotive: 'Automotive',\n      smart_home: 'Smart Home \/ IoT',\n      lighting: 'LED Lighting',\n      pos: 'POS \/ Kiosk',\n      other: 'Other'\n    };\n\n    window.sbToggleCoat = function(el) {\n      el.classList.toggle('checked');\n      var coat = el.getAttribute('data-coat');\n      var idx = coatings.indexOf(coat);\n      if(idx > -1) coatings.splice(idx, 1);\n      else coatings.push(coat);\n      sbUpdate();\n    };\n\n    function setVal(id, text, isEmpty) {\n      var el = document.getElementById(id);\n      el.textContent = text;\n      if(isEmpty) el.classList.add('empty');\n      else el.classList.remove('empty');\n    }\n\n    window.sbUpdate = function() {\n      var mat = document.getElementById('sbMaterial').value;\n      var len = parseFloat(document.getElementById('sbLength').value);\n      var wid = parseFloat(document.getElementById('sbWidth').value);\n      var thk = parseFloat(document.getElementById('sbThick').value);\n      var shape = document.getElementById('sbShape').value;\n      var str = document.getElementById('sbStrength').value;\n      var edge = document.getElementById('sbEdge').value;\n      var prn = document.getElementById('sbPrint').value;\n      var qty = document.getElementById('sbQty').value;\n      var ind = document.getElementById('sbIndustry').value;\n\n      setVal('pvMat', mat ? materialNames[mat] : 'Not selected', !mat);\n\n      if(len && wid && thk) {\n        setVal('pvDim', len + ' \u00d7 ' + wid + ' \u00d7 ' + thk + ' mm', false);\n      } else {\n        setVal('pvDim', '\u2014 \u00d7 \u2014 \u00d7 \u2014 mm', true);\n      }\n\n      setVal('pvShape', shape ? shapeNames[shape] : 'Not selected', !shape);\n      setVal('pvStr', str ? strengthNames[str] : 'Not selected', !str);\n      setVal('pvCoat', coatings.length ? coatings.join(' + ') : 'None', !coatings.length);\n      setVal('pvEdge', edge ? edgeNames[edge] : 'Not selected', !edge);\n      setVal('pvPrint', prn ? printNames[prn] : 'Not selected', !prn);\n      setVal('pvQty', qty ? parseInt(qty).toLocaleString() + ' pcs' : '\u2014', !qty);\n      setVal('pvInd', ind ? industryNames[ind] : 'Not selected', !ind);\n\n      \/\/ Weight calc\n      var weightEl = document.getElementById('pvWeight');\n      if(mat && len && wid && thk) {\n        var density = materialDensity[mat];\n        var vol;\n        if(shape === 'round') {\n          var radius = Math.min(len, wid) \/ 2;\n          vol = Math.PI * radius * radius * thk;\n        } else {\n          vol = len * wid * thk;\n        }\n        var weight = (vol \/ 1000) * density;\n        weightEl.textContent = weight.toFixed(1);\n      } else {\n        weightEl.textContent = '\u2014';\n      }\n\n      \/\/ Status\n      var filled = 0;\n      var total = 5;\n      if(mat) filled++;\n      if(len && wid && thk) filled++;\n      if(shape) filled++;\n      if(str) filled++;\n      if(edge) filled++;\n\n      var status = document.getElementById('sbStatus');\n      if(filled >= total) {\n        status.textContent = 'Complete';\n        status.classList.add('complete');\n      } else {\n        status.textContent = filled + '\/' + total + ' Required';\n        status.classList.remove('complete');\n      }\n    };\n\n    window.sbGenerate = function() {\n      var mat = document.getElementById('sbMaterial').value;\n      var len = document.getElementById('sbLength').value;\n      var wid = document.getElementById('sbWidth').value;\n      var thk = document.getElementById('sbThick').value;\n\n      if(!mat || !len || !wid || !thk) {\n        alert('Please fill in at least Material and Dimensions to generate a spec sheet.');\n        return;\n      }\n\n      var refID = 'SW-' + Date.now().toString(36).toUpperCase().slice(-6);\n      document.getElementById('sbRefID').textContent = refID;\n      document.getElementById('sbDate').textContent = new Date().toLocaleDateString('en-US', {year:'numeric',month:'long',day:'numeric'});\n\n      var shape = document.getElementById('sbShape').value;\n      var str = document.getElementById('sbStrength').value;\n      var edge = document.getElementById('sbEdge').value;\n      var prn = document.getElementById('sbPrint').value;\n      var qty = document.getElementById('sbQty').value;\n      var ind = document.getElementById('sbIndustry').value;\n\n      var density = materialDensity[mat];\n      var vol = (shape === 'round') ? Math.PI * Math.pow(Math.min(len,wid)\/2, 2) * thk : len * wid * thk;\n      var weight = ((vol \/ 1000) * density).toFixed(1);\n\n      var rows = [\n        ['Glass Material', materialNames[mat]],\n        ['Dimensions (L\u00d7W\u00d7T)', len + ' \u00d7 ' + wid + ' \u00d7 ' + thk + ' mm'],\n        ['Shape', shape ? shapeNames[shape] : 'Not specified'],\n        ['Strengthening', str ? strengthNames[str] : 'Not specified'],\n        ['Surface Coatings', coatings.length ? coatings.join(' + ') : 'None'],\n        ['Edge Processing', edge ? edgeNames[edge] : 'Not specified'],\n        ['Printing', prn ? printNames[prn] : 'None'],\n        ['Est. Unit Weight', weight + ' g'],\n        ['Order Quantity', qty ? parseInt(qty).toLocaleString() + ' pcs' : 'Not specified'],\n        ['Target Industry', ind ? industryNames[ind] : 'Not specified']\n      ];\n\n      \/\/ Material-specific specs\n      if(mat === 'soda_lime') {\n        rows.push(['Density', '2.50 g\/cm\u00b3']);\n        rows.push(['Thermal Expansion', '8.5 \u00d7 10\u207b\u2076 \/\u00b0C']);\n        rows.push(['Max Service Temp', '470\u00b0C (annealed)']);\n      } else if(mat === 'borosilicate') {\n        rows.push(['Density', '2.23 g\/cm\u00b3']);\n        rows.push(['Thermal Expansion', '3.3 \u00d7 10\u207b\u2076 \/\u00b0C']);\n        rows.push(['Max Service Temp', '500\u00b0C']);\n      } else if(mat === 'aluminosilicate') {\n        rows.push(['Density', '2.54 g\/cm\u00b3']);\n        rows.push(['Thermal Expansion', '7.5 \u00d7 10\u207b\u2076 \/\u00b0C']);\n        rows.push(['Surface Hardness', '\u2265700 HV (post-strengthening)']);\n      } else if(mat === 'quartz') {\n        rows.push(['Density', '2.20 g\/cm\u00b3']);\n        rows.push(['Thermal Expansion', '0.55 \u00d7 10\u207b\u2076 \/\u00b0C']);\n        rows.push(['UV Transmittance', '>90% at 200nm']);\n      }\n\n      if(coatings.indexOf('AR') > -1) {\n        rows.push(['AR Transmittance', '>97.5% (visible, multi-layer)']);\n        rows.push(['AR Reflectance', '<0.5% per surface']);\n      }\n      if(coatings.indexOf('AG') > -1) {\n        rows.push(['AG Haze', '2\u201350% (specify at order)']);\n        rows.push(['AG Gloss (60\u00b0)', '80\u2013120 GU']);\n      }\n      if(coatings.indexOf('AF') > -1) {\n        rows.push(['AF Contact Angle', '>110\u00b0']);\n        rows.push(['AF Abrasion', '>3000 cycles (steel wool)']);\n      }\n      if(coatings.indexOf('ITO') > -1) {\n        rows.push(['ITO Sheet Resistance', '7\u2013500 \u03a9\/sq (specify at order)']);\n        rows.push(['ITO Transmittance', '>85% (visible)']);\n      }\n\n      var html = '<thead><tr><th>Parameter<\/th><th>Value<\/th><\/tr><\/thead><tbody>';\n      for(var i = 0; i < rows.length; i++) {\n        html += '<tr><td>' + rows[i][0] + '<\/td><td>' + rows[i][1] + '<\/td><\/tr>';\n      }\n      html += '<\/tbody>';\n      document.getElementById('sbSheetTable').innerHTML = html;\n\n      document.getElementById('sbSheetOverlay').classList.add('open');\n    };\n\n    window.sbCloseSheet = function(e) {\n      if(e.target === document.getElementById('sbSheetOverlay')) {\n        document.getElementById('sbSheetOverlay').classList.remove('open');\n      }\n    };\n  })();\n  <\/script>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Product Configurator Glass Specification Builder Configure your custom glass specifications step by step. A live preview updates as you make selections. Glass Material &amp; Dimensions Glass Material \u2014 Select material \u2014Soda-Lime Glass (Standard, economical)Borosilicate Glass (Heat resistant, Pyrex-type)Aluminosilicate Glass (Gorilla \/ Dragontrail type)Quartz Glass (UV transparent, ultra-high temp) Dimensions \u2014 Length \u00d7 Width \u00d7 Thickness [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":931,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-1438","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/1438","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\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/comments?post=1438"}],"version-history":[{"count":0,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/1438\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/931"}],"wp:attachment":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/media?parent=1438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}