{"id":427876,"date":"2026-06-03T07:40:34","date_gmt":"2026-06-03T12:40:34","guid":{"rendered":"https:\/\/www.globaloring.com\/?page_id=427876"},"modified":"2026-06-09T11:27:07","modified_gmt":"2026-06-09T16:27:07","slug":"groove-design-calculator","status":"publish","type":"page","link":"https:\/\/www.globaloring.com\/groove-design-calculator\/","title":{"rendered":"O-Ring Groove Design Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"427876\" class=\"elementor elementor-427876\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f2b950b e-flex e-con-boxed e-con e-parent\" data-id=\"f2b950b\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f5b708 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"8f5b708\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- O-Ring Groove tool (v2) \u2014 PASTE-ONLY, inner tool only (no header\/nav\/footer). Draft. -->\r\n<div class=\"gor-groove-tool\">\r\n<style>\r\n:root{\r\n    --gor-blue:#0093D0; --gor-blue-hover:#006ba3; --gor-blue-light:#e6f4fa;\r\n    --gor-green:#00B259; --gor-green-hover:#008a43; --gor-green-light:#e6f9f0;\r\n    --text-primary:#1f2937; --text-secondary:#4b5563; --text-muted:#6b7280;\r\n    --bg-primary:#fff; --bg-secondary:#f8f9fa; --bg-tertiary:#f3f4f6; --border:#e5e7eb;\r\n    --warn-bg:#fffbeb; --warn-border:#f59e0b; --warn-text:#92400e;\r\n  }\r\n.lede{font-size:16px;color:var(--text-secondary);margin:0 0 22px 0}\r\n\/* ===== shared calculator shell (matches approved engineer tool) ===== *\/\r\n  .gor-gcalc{font-family:inherit;color:#1f2937;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.04);padding:0;margin:0 0 28px 0;overflow:hidden}\r\n.gor-gcalc *{box-sizing:border-box}\r\n.gor-gcalc .gc-head{background:#fff;color:#1f2937;padding:18px 22px 0 22px}\r\n.gor-gcalc .gc-head h2{margin:0;font-size:21px;font-weight:700;color:#1f2937;line-height:1.25;border:none;padding:0}\r\n.gor-gcalc .gc-head .gc-sub{font-size:13px;color:#4b5563;margin-top:4px;font-weight:400}\r\n.gor-gcalc .gc-body{padding:20px 22px 24px 22px}\r\n.gor-gcalc label{display:block;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#4b5563;margin-bottom:6px}\r\n.gor-gcalc select{width:100%;padding:10px 12px;font-size:15px;border:1px solid #d1d5db;border-radius:5px;background:#fff;color:#1f2937;font-family:inherit;font-weight:500;-webkit-appearance:none;appearance:none;background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%230093D0' d='M6 8L0 0h12z'\/><\/svg>\");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}\r\n.gor-gcalc select:focus{outline:0;border-color:#0093D0;box-shadow:0 0 0 3px rgba(0,147,208,.18)}\r\n.gor-gcalc .gc-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}\r\n@media(max-width:640px){.gor-gcalc .gc-row{grid-template-columns:1fr}}\r\n\/* segmented toggles *\/\r\n  .gc-seg{display:flex;gap:6px;flex-wrap:wrap}\r\n.gc-seg button{appearance:none;border:1px solid #d1d5db;background:#fff;color:#4b5563;font-size:13px;font-weight:600;padding:8px 14px;border-radius:18px;cursor:pointer;font-family:inherit}\r\n.gc-seg button.is-active{background:#0093D0;border-color:#0093D0;color:#fff}\r\n.gc-seg.small button{font-size:12px;padding:6px 11px}\r\n\/* dimension inputs *\/\r\n  .gc-dims{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:4px}\r\n@media(max-width:640px){.gc-dims{grid-template-columns:1fr 1fr}}\r\n.gc-dim .gc-inputrow{display:flex;align-items:center;gap:6px}\r\n.gc-dim input{flex:1;min-width:0;padding:10px 10px;font-size:16px;border:1px solid #d1d5db;border-radius:5px;font-family:inherit;font-variant-numeric:tabular-nums;color:#1f2937;background:#fff}\r\n.gc-dim input:focus{outline:0;border-color:#0093D0;box-shadow:0 0 0 3px rgba(0,147,208,.18)}\r\n.gc-dim .gc-unit{font-size:13px;color:#6b7280;font-weight:600}\r\n.gc-hint{font-size:11px;color:#6b7280;margin-top:4px;line-height:1.45}\r\n.gor-gcalc .gc-dim input:disabled{background:#eef0f3;color:#9ca3af;cursor:not-allowed;border-style:dashed}\r\n.gc-dim.is-locked .gc-hint::after{content:\" \u00b7 auto-calculated\";color:#9ca3af;font-weight:600}\r\n.gc-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}\r\n.gc-btn{appearance:none;border:0;border-radius:5px;font-weight:700;font-size:14px;padding:12px 20px;cursor:pointer;font-family:inherit}\r\n.gc-btn.primary{background:#00B259;color:#fff}\r\n.gc-btn.primary:hover{background:#008a43}\r\n.gc-btn.ghost{background:#fff;border:1px solid #d1d5db;color:#4b5563}\r\n\/* result cards *\/\r\n  .gc-scenarios{margin-top:22px;display:grid;gap:14px}\r\n.gc-scn{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;border-left:5px solid #9ca3af}\r\n.gc-scn.is-best{border-left-color:#00B259}\r\n.gc-scn.is-alt{border-left-color:#0093D0}\r\n.gc-scn.is-near{border-left-color:#f59e0b}\r\n.gc-scn .scn-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 16px 8px 16px;flex-wrap:wrap}\r\n.gc-scn .scn-size{font-size:22px;font-weight:800;color:#1f2937;letter-spacing:.3px}\r\n.gc-scn .scn-size small{font-size:13px;font-weight:600;color:#6b7280}\r\n.gc-scn .scn-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;padding:4px 10px;border-radius:12px}\r\n.scn-tag.best{background:#e6f9f0;color:#008a43}\r\n.scn-tag.alt{background:#e6f4fa;color:#006ba3}\r\n.scn-tag.near{background:#fef3c7;color:#92400e}\r\n.gc-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e5e7eb;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}\r\n@media(max-width:520px){.gc-metrics{grid-template-columns:1fr}}\r\n.gc-metric{background:#fff;padding:10px 14px}\r\n.gc-metric .mk{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#6b7280;display:block}\r\n.gc-metric .mv{font-size:16px;font-weight:700;color:#1f2937;font-variant-numeric:tabular-nums}\r\n.gc-metric .mc{font-size:11px;font-weight:700;margin-left:6px}\r\n.mc.ok{color:#008a43}\r\n.mc.warn{color:#b45309}\r\n.mc.bad{color:#b91c1c}\r\n.gc-scn .scn-foot{display:flex;gap:10px;align-items:center;padding:12px 16px;flex-wrap:wrap}\r\n.gc-scn .scn-foot .why{font-size:12px;color:#4b5563;flex:1;min-width:160px;line-height:1.5}\r\n.scn-cta{font-size:13px;font-weight:700;padding:9px 14px;border-radius:5px;white-space:nowrap}\r\n.scn-cta.shop{background:#0093D0;color:#fff}\r\n.scn-cta.shop:hover{background:#006ba3;text-decoration:none;color:#fff}\r\n.scn-cta.quote{background:#fff;border:1px solid #00B259;color:#008a43}\r\n.scn-cta.quote:hover{background:#e6f9f0;text-decoration:none}\r\n.gc-custom{margin-top:18px;background:#fffbeb;border:1px solid #f59e0b;border-left:4px solid #f59e0b;border-radius:6px;padding:16px 18px}\r\n.gc-custom h4{margin:0 0 6px 0;font-size:15px;color:#92400e}\r\n.gc-custom p{font-size:13px;color:#1f2937;margin:0 0 10px 0}\r\n.gc-custom .gc-specbox{background:#fff;border:1px dashed #d1d5db;border-radius:5px;padding:10px 12px;font-size:13px;font-variant-numeric:tabular-nums;color:#1f2937;margin:8px 0}\r\n.gc-custom .gc-actions{margin-top:6px}\r\n.gc-empty{margin-top:18px;padding:16px;background:#f8f9fa;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;font-size:14px;text-align:center}\r\n.gc-foot{margin-top:16px;font-size:12px;color:#6b7280;border-top:1px solid #e5e7eb;padding-top:12px;line-height:1.55}\r\n.gc-foot a{color:#006ba3;font-weight:600}\r\n\/* advanced disclosure *\/\r\n  .gc-adv{margin:28px 0}\r\n.gor-gcalc .gc-row3{grid-template-columns:1fr 1fr 1fr}\r\n@media(max-width:760px){.gor-gcalc .gc-row3{grid-template-columns:1fr}}\r\n.gc-idcol>label{display:block;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#4b5563;margin-bottom:6px}\r\n.gc-idcol .gc-inputrow{display:flex;align-items:center;gap:6px;border:1px solid #d1d5db;border-radius:5px;padding:0 10px;background:#fff;margin-bottom:8px}\r\n.gc-idcol .gc-inputrow input{flex:1;min-width:0;padding:9px 0;font-size:16px;border:0;outline:0;background:transparent;font-variant-numeric:tabular-nums}\r\n.gc-idcol .gc-inputrow input:focus{box-shadow:none}\r\n.gc-idcol .gc-btn{width:100%}\r\n.gc-idrec{margin-top:6px;margin-bottom:4px;background:#f8f9fa;border:1px solid #e5e7eb;border-left:4px solid #0093D0;border-radius:6px;padding:14px 16px}\r\n.gc-idrec>label{display:block;font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#4b5563;margin-bottom:8px}\r\n.gc-idrec-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}\r\n.gc-idrec-row .gc-inputrow{flex:1;min-width:150px;display:flex;align-items:center;gap:6px;border:1px solid #d1d5db;border-radius:5px;padding:0 10px;background:#fff}\r\n.gc-idrec-row .gc-inputrow input{flex:1;min-width:0;padding:10px 0;font-size:16px;border:0;outline:0;font-variant-numeric:tabular-nums;background:transparent}\r\n.gc-idrec-row .gc-btn{white-space:nowrap}\r\n.gc-idrec .gc-hint{margin-top:8px}\r\n.gc-rec-card{background:#fff;border:1px solid #e5e7eb;border-left:5px solid #00B259;border-radius:6px;padding:12px 14px;margin-top:10px}\r\n.gc-rec-card.is-adjust{border-left-color:#f59e0b}\r\n.gc-rec-card h5{margin:0 0 5px 0;font-size:16px;color:#1f2937;font-weight:800;border:none;padding:0}\r\n.gc-rec-card p{margin:0 0 8px 0;font-size:13px;color:#4b5563;line-height:1.55}\r\n.gc-rec-card .gc-rec-cta{display:inline-block;margin-top:2px;margin-right:8px;font-size:13px;font-weight:700;padding:8px 13px;border-radius:5px;background:#0093D0;color:#fff;text-decoration:none}\r\n.gc-rec-card .gc-rec-cta:hover{background:#006ba3}\r\n.gc-rec-card .gc-rec-cta.quote{background:#fff;border:1px solid #00B259;color:#008a43}\r\n.gc-rec-card .gc-rec-cta.quote:hover{background:#e6f9f0}\r\n\/* ===== mode tabs (Finder vs Engineer) ===== *\/\r\n  .mode-switch{display:flex;gap:14px;margin:6px 0 26px}\r\n@media(max-width:560px){.mode-switch{flex-direction:column}}\r\n.mode-switch button{flex:1;appearance:none;cursor:pointer;font-family:inherit;text-align:center;border:2px solid var(--border);background:#fff;color:var(--text-secondary);font-weight:800;font-size:18px;padding:18px 18px;border-radius:11px;line-height:1.25;transition:transform .12s,box-shadow .15s,border-color .15s,background .15s,color .15s}\r\n.mode-switch button .ms-sub{display:block;font-size:12.5px;font-weight:600;color:var(--text-muted);margin-top:6px;text-transform:none;letter-spacing:0}\r\n.mode-switch button:hover{border-color:var(--gor-blue);color:var(--gor-blue);box-shadow:0 3px 10px rgba(0,147,208,.14)}\r\n.mode-switch button.is-active{background:linear-gradient(135deg,#0093D0 0%,#006ba3 100%);border-color:#0093D0;color:#fff;box-shadow:0 6px 18px rgba(0,147,208,.38);transform:translateY(-1px)}\r\n.mode-switch button.is-active:hover{color:#fff}\r\n.mode-switch button.is-active .ms-sub{color:rgba(255,255,255,.92)}\r\n.mode-pane{display:none}\r\n.mode-pane.is-active{display:block}\r\n\/* ===== interactive diagrams ===== *\/\r\n  .gd-wrap{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:14px 14px 10px;margin:4px 0 18px}\r\n.gd-svg{display:block;width:100%;height:auto;max-width:520px;margin:0 auto}\r\n.gd-fig{display:none}\r\n.gd-fig.on{display:block}\r\n.gd-part{fill:#d1d5db;stroke:#9ca3af;stroke-width:1.5}\r\n.gd-bore{fill:#9ca3af}\r\n.gd-oring{fill:#0093D0;opacity:.88;stroke:#006ba3;stroke-width:1.5}\r\n.gd-axis{stroke:#9ca3af;stroke-width:1;stroke-dasharray:7 3 2 3}\r\n.gd-dim{color:#0093D0;transition:color .12s}\r\n.gd-dim line{stroke:currentColor;stroke-width:1.4}\r\n.gd-dim polygon{fill:currentColor;stroke:none}\r\n.gd-dim text{fill:currentColor;font-size:13px;font-weight:700;font-family:inherit}\r\n.gd-dim .gd-ext{stroke:#cbd5e1;stroke-width:1}\r\n.gd-dim.hl{color:#00B259}\r\n.gd-dim.hl line:not(.gd-ext){stroke-width:2.8}\r\n.gd-dim.hl text{font-size:15px}\r\n.gd-cap{font-size:13px;color:var(--text-secondary);text-align:center;margin:10px 0 0;line-height:1.5}\r\n.gd-cap strong{color:var(--gor-blue-hover)}\r\n.gc-typehint{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}\r\n.gc-typeicon{flex:0 0 auto;width:54px;height:44px;border:1px solid var(--border);border-radius:6px;background:#fff;display:inline-flex;align-items:center;justify-content:center}\r\n.gc-typeicon svg{display:none;width:48px;height:40px}\r\n.gc-typeicon svg.on{display:block}\r\n.gtype-part{fill:none;stroke:#6b7280;stroke-width:2;stroke-linejoin:round}\r\n.gtype-bore{fill:none;stroke:#9ca3af;stroke-width:2;stroke-linecap:round}\r\n.gtype-or{fill:#0093D0;opacity:.9}\r\n.gtype-arrow{stroke:#00B259;stroke-width:1.8;fill:none;stroke-linecap:round}\r\n.gd-parrow{stroke:#ffffff;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}\r\n.gc-typelink{font-size:12px;font-weight:600;color:var(--gor-blue-hover);line-height:1.35}\r\n\r\n\/* engineer-tool styles *\/\r\n#gorGCalc .gc-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:18px}\r\n    #gorGCalc .gc-card{background:#f8f9fa;border:1px solid #e5e7eb;border-left:4px solid #0093D0;border-radius:5px;padding:12px 14px}\r\n    #gorGCalc .gc-card .gc-k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#6b7280;display:block;margin-bottom:4px}\r\n    #gorGCalc .gc-card .gc-v{font-size:18px;font-weight:600;color:#1f2937;line-height:1.25;font-variant-numeric:tabular-nums}\r\n    #gorGCalc .gc-card .gc-meta{font-size:12px;color:#4b5563;margin-top:3px;font-variant-numeric:tabular-nums}\r\n    #gorGCalc .gc-card.is-green{border-left-color:#00B259}\r\n    #gorGCalc .gc-card.is-muted{background:#fff;border-left-color:#9ca3af}\r\n    #gorGCalc .gc-card.is-muted .gc-v{color:#6b7280}\r\n    #gorGCalc .gc-notes{margin-top:18px;padding:12px 14px;background:#e6f4fa;border-left:4px solid #0093D0;border-radius:5px;font-size:13px;color:#1f2937;line-height:1.55}\r\n    #gorGCalc .gc-notes strong{color:#006ba3} #gorGCalc .gc-notes a{color:#006ba3;font-weight:600;text-decoration:underline}\r\n    #gorGCalc .gc-bu-toggle{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}\r\n    #gorGCalc .gc-bu-toggle button{appearance:none;border:1px solid #d1d5db;background:#fff;color:#4b5563;font-size:12px;font-weight:600;padding:5px 10px;border-radius:14px;cursor:pointer;font-family:inherit}\r\n    #gorGCalc .gc-bu-toggle button.is-active{background:#0093D0;border-color:#0093D0;color:#fff}\r\n    #gorGCalc .gc-hidden{display:none!important}\r\n    #gorGCalc .gc-validator{margin-top:20px;border-top:2px solid #e5e7eb;padding-top:18px}\r\n    #gorGCalc .gc-vh{margin-bottom:14px} #gorGCalc .gc-vh h3{margin:0 0 4px 0;color:#0093D0;font-size:17px;font-weight:700} #gorGCalc .gc-vh p{margin:0;font-size:13px;color:#6b7280;line-height:1.55}\r\n    #gorGCalc .gc-vsec{background:#fafbfc;border:1px solid #e5e7eb;border-radius:6px;padding:14px 16px;margin-bottom:12px}\r\n    #gorGCalc .gc-vsec h4{margin:0 0 12px 0;font-size:15px;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:none;padding:0}\r\n    #gorGCalc .gc-vbadge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:3px 9px;border-radius:11px;line-height:1.4}\r\n    #gorGCalc .gc-vbadge.is-pass{background:#e6f9f0;color:#008a43} #gorGCalc .gc-vbadge.is-warn{background:#fef3c7;color:#92400e} #gorGCalc .gc-vbadge.is-fail{background:#fee2e2;color:#991b1b}\r\n    #gorGCalc .gc-vintro{font-size:13px;color:#4b5563;margin:0 0 12px 0;line-height:1.55}\r\n    #gorGCalc .gc-vinputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}\r\n    #gorGCalc .gc-vinputs label{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#4b5563;margin-bottom:5px}\r\n    #gorGCalc .gc-inputrow{display:flex;align-items:center;gap:6px}\r\n    #gorGCalc .gc-inputrow input{flex:1;min-width:0;padding:8px 10px;font-size:14px;border:1px solid #d1d5db;border-radius:4px;font-family:inherit;font-variant-numeric:tabular-nums;color:#1f2937;background:#fff}\r\n    #gorGCalc .gc-unit{font-size:13px;color:#6b7280;font-weight:600}\r\n    #gorGCalc .gc-link-btn{appearance:none;border:0;background:transparent;color:#0093D0;font-size:11px;font-weight:600;text-decoration:underline;cursor:pointer;padding:2px 0 0 0;font-family:inherit;display:block;margin-top:4px}\r\n    #gorGCalc .gc-duro-toggle{display:flex;gap:4px}\r\n    #gorGCalc .gc-duro-toggle button{flex:1;appearance:none;border:1px solid #d1d5db;background:#fff;color:#4b5563;font-size:13px;font-weight:600;padding:8px 6px;border-radius:4px;cursor:pointer;font-family:inherit}\r\n    #gorGCalc .gc-duro-toggle button.is-active{background:#0093D0;border-color:#0093D0;color:#fff}\r\n    #gorGCalc .gc-vnote{margin-top:8px;font-size:12px;color:#4b5563;line-height:1.55} #gorGCalc .gc-vnote a{color:#006ba3;font-weight:600}\r\n    #gorGCalc .gc-vrec{margin-top:10px;padding:10px 12px;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;font-size:13px;color:#1f2937;line-height:1.55}\r\n    #gorGCalc .gc-vrec.is-pass{background:#e6f9f0;border-left-color:#00B259} #gorGCalc .gc-vrec.is-fail{background:#fee2e2;border-left-color:#dc2626}\r\n    #gorGCalc .gc-vrec strong{color:#92400e} #gorGCalc .gc-vrec.is-pass strong{color:#008a43} #gorGCalc .gc-vrec.is-fail strong{color:#991b1b}\r\n    #gorGCalc .gc-vrec ol{margin:6px 0 0 0;padding-left:18px} #gorGCalc .gc-vrec ol li{margin-bottom:4px}\r\n    #gorGCalc .gc-vfoot{margin-top:14px;font-size:11px;color:#6b7280;line-height:1.55;font-style:italic}\r\n    #gorGCalc .gc-foot{margin-top:14px;font-size:12px;color:#6b7280;border-top:1px solid #e5e7eb;padding-top:12px;line-height:1.5} #gorGCalc .gc-foot a{color:#006ba3;font-weight:600}\r\n<\/style>\r\n\r\n<div class=\"mode-switch\" id=\"modeSwitch\" role=\"tablist\">\r\n      <button type=\"button\" data-mode=\"finder\" class=\"is-active\">Fit a Groove<span class=\"ms-sub\">Find the O-ring that fits<\/span><\/button>\r\n      <button type=\"button\" data-mode=\"engineer\">Design a Groove<span class=\"ms-sub\">Pick a cross-section &amp; seal type<\/span><\/button>\r\n    <\/div>\r\n\r\n    <!-- ============ O-RING FINDER (HERO, for everyone) ============ -->\r\n    <div class=\"mode-pane is-active\" id=\"modeFinder\">\r\n    <div class=\"gor-gcalc\" id=\"gorFinder\">\r\n      <div class=\"gc-head\">\r\n        <h2>Find the O-Ring for Your Groove<\/h2>\r\n        <div class=\"gc-sub\">Measured a groove with calipers? Enter the inside diameter, outside diameter, depth, and width. We&rsquo;ll show the O-ring size(s) that fit &mdash; squeeze, gland fill, and stretch checked against industry design rules &mdash; and what to do when it&rsquo;s not a standard size.<\/div>\r\n      <\/div>\r\n      <div class=\"gc-body\">\r\n\r\n        <div class=\"gc-row\">\r\n          <div>\r\n            <label>What kind of seal is it?<\/label>\r\n            <div class=\"gc-seg\" id=\"fSeal\">\r\n              <button type=\"button\" data-seal=\"piston\" class=\"is-active\">Piston \/ shaft groove<\/button>\r\n              <button type=\"button\" data-seal=\"rod\">Bore \/ rod groove<\/button>\r\n              <button type=\"button\" data-seal=\"face-internal\">Face seal &mdash; inner pressure<\/button>\r\n              <button type=\"button\" data-seal=\"face-external\">Face seal &mdash; outer pressure<\/button>\r\n            <\/div>\r\n            <div class=\"gc-hint\" id=\"fSealHint\">Groove cut around a piston or shaft; the O-ring is squeezed between the groove bottom and the bore wall. Not sure? Piston\/shaft is the most common &mdash; pick it and adjust.<\/div>\r\n          <\/div>\r\n          <div>\r\n            <label>Motion &amp; units<\/label>\r\n            <div class=\"gc-seg small\" id=\"fMotion\" style=\"margin-bottom:8px\">\r\n              <button type=\"button\" data-motion=\"static\" class=\"is-active\">Static (no movement)<\/button>\r\n              <button type=\"button\" data-motion=\"dynamic\">Dynamic (moving)<\/button>\r\n            <\/div>\r\n            <div class=\"gc-seg small\" id=\"fUnit\">\r\n              <button type=\"button\" data-unit=\"in\" class=\"is-active\">inches<\/button>\r\n              <button type=\"button\" data-unit=\"mm\">millimeters<\/button>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"gd-wrap\"><div id=\"fGlandFig\">\r\n          <svg class=\"gd-svg gd-fig on\" data-for=\"piston\" viewBox=\"0 0 560 300\" role=\"img\" aria-label=\"Piston\/shaft groove\"><rect class=\"gd-bore\" x=\"140\" y=\"52\" width=\"320\" height=\"18\"\/><rect class=\"gd-bore\" x=\"140\" y=\"230\" width=\"320\" height=\"18\"\/><rect class=\"gd-part\" x=\"150\" y=\"108\" width=\"300\" height=\"84\"\/><rect class=\"gd-part\" x=\"150\" y=\"82\" width=\"100\" height=\"26\"\/><rect class=\"gd-part\" x=\"330\" y=\"82\" width=\"120\" height=\"26\"\/><rect class=\"gd-part\" x=\"150\" y=\"192\" width=\"100\" height=\"26\"\/><rect class=\"gd-part\" x=\"330\" y=\"192\" width=\"120\" height=\"26\"\/><circle class=\"gd-oring\" cx=\"290\" cy=\"95\" r=\"22\"\/><circle class=\"gd-oring\" cx=\"290\" cy=\"205\" r=\"22\"\/><line class=\"gd-axis\" x1=\"120\" y1=\"150\" x2=\"470\" y2=\"150\"\/><text x=\"356\" y=\"64\" font-size=\"11\" fill=\"#9ca3af\" font-weight=\"600\">bore wall<\/text><g class=\"gd-dim\" data-dim=\"OD\"><line class=\"gd-ext\" x1=\"150\" y1=\"82\" x2=\"96\" y2=\"82\"\/><line class=\"gd-ext\" x1=\"150\" y1=\"218\" x2=\"96\" y2=\"218\"\/><line x1=\"96\" y1=\"82\" x2=\"96\" y2=\"218\"\/><polygon points=\"96,82 92,92 100,92\"\/><polygon points=\"96,218 92,208 100,208\"\/><text x=\"96\" y=\"74\" text-anchor=\"middle\">OD<\/text><\/g><g class=\"gd-dim\" data-dim=\"ID\"><line class=\"gd-ext\" x1=\"150\" y1=\"108\" x2=\"128\" y2=\"108\"\/><line class=\"gd-ext\" x1=\"150\" y1=\"192\" x2=\"128\" y2=\"192\"\/><line x1=\"128\" y1=\"108\" x2=\"128\" y2=\"192\"\/><polygon points=\"128,108 124,118 132,118\"\/><polygon points=\"128,192 124,182 132,182\"\/><text x=\"116\" y=\"154\" text-anchor=\"end\">ID<\/text><\/g><g class=\"gd-dim\" data-dim=\"Width\"><line class=\"gd-ext\" x1=\"250\" y1=\"82\" x2=\"250\" y2=\"44\"\/><line class=\"gd-ext\" x1=\"330\" y1=\"82\" x2=\"330\" y2=\"44\"\/><line x1=\"250\" y1=\"44\" x2=\"330\" y2=\"44\"\/><polygon points=\"250,44 260,40 260,48\"\/><polygon points=\"330,44 320,40 320,48\"\/><text x=\"290\" y=\"36\" text-anchor=\"middle\">Width<\/text><\/g><g class=\"gd-dim\" data-dim=\"Depth\"><line class=\"gd-ext\" x1=\"330\" y1=\"82\" x2=\"372\" y2=\"82\"\/><line class=\"gd-ext\" x1=\"330\" y1=\"108\" x2=\"372\" y2=\"108\"\/><line x1=\"360\" y1=\"82\" x2=\"360\" y2=\"108\"\/><polygon points=\"360,82 356,92 364,92\"\/><polygon points=\"360,108 356,98 364,98\"\/><text x=\"376\" y=\"99\" text-anchor=\"start\">Depth<\/text><\/g><\/svg>\r\n          <svg class=\"gd-svg gd-fig\" data-for=\"rod\" viewBox=\"0 0 560 300\" role=\"img\" aria-label=\"Bore\/rod groove\"><rect class=\"gd-part\" x=\"140\" y=\"118\" width=\"320\" height=\"64\"\/><rect class=\"gd-part\" x=\"150\" y=\"52\" width=\"300\" height=\"30\"\/><rect class=\"gd-part\" x=\"150\" y=\"82\" width=\"100\" height=\"26\"\/><rect class=\"gd-part\" x=\"330\" y=\"82\" width=\"120\" height=\"26\"\/><rect class=\"gd-part\" x=\"150\" y=\"218\" width=\"300\" height=\"30\"\/><rect class=\"gd-part\" x=\"150\" y=\"192\" width=\"100\" height=\"26\"\/><rect class=\"gd-part\" x=\"330\" y=\"192\" width=\"120\" height=\"26\"\/><circle class=\"gd-oring\" cx=\"290\" cy=\"100\" r=\"22\"\/><circle class=\"gd-oring\" cx=\"290\" cy=\"200\" r=\"22\"\/><line class=\"gd-axis\" x1=\"120\" y1=\"150\" x2=\"470\" y2=\"150\"\/><text x=\"356\" y=\"146\" font-size=\"11\" fill=\"#9ca3af\" font-weight=\"600\">rod<\/text><g class=\"gd-dim\" data-dim=\"OD\"><line class=\"gd-ext\" x1=\"150\" y1=\"82\" x2=\"96\" y2=\"82\"\/><line class=\"gd-ext\" x1=\"150\" y1=\"218\" x2=\"96\" y2=\"218\"\/><line x1=\"96\" y1=\"82\" x2=\"96\" y2=\"218\"\/><polygon points=\"96,82 92,92 100,92\"\/><polygon points=\"96,218 92,208 100,208\"\/><text x=\"96\" y=\"74\" text-anchor=\"middle\">OD<\/text><\/g><g class=\"gd-dim\" data-dim=\"ID\"><line class=\"gd-ext\" x1=\"150\" y1=\"108\" x2=\"128\" y2=\"108\"\/><line class=\"gd-ext\" x1=\"150\" y1=\"192\" x2=\"128\" y2=\"192\"\/><line x1=\"128\" y1=\"108\" x2=\"128\" y2=\"192\"\/><polygon points=\"128,108 124,118 132,118\"\/><polygon points=\"128,192 124,182 132,182\"\/><text x=\"116\" y=\"154\" text-anchor=\"end\">ID<\/text><\/g><g class=\"gd-dim\" data-dim=\"Width\"><line class=\"gd-ext\" x1=\"250\" y1=\"82\" x2=\"250\" y2=\"44\"\/><line class=\"gd-ext\" x1=\"330\" y1=\"82\" x2=\"330\" y2=\"44\"\/><line x1=\"250\" y1=\"44\" x2=\"330\" y2=\"44\"\/><polygon points=\"250,44 260,40 260,48\"\/><polygon points=\"330,44 320,40 320,48\"\/><text x=\"290\" y=\"36\" text-anchor=\"middle\">Width<\/text><\/g><g class=\"gd-dim\" data-dim=\"Depth\"><line class=\"gd-ext\" x1=\"330\" y1=\"82\" x2=\"372\" y2=\"82\"\/><line class=\"gd-ext\" x1=\"330\" y1=\"108\" x2=\"372\" y2=\"108\"\/><line x1=\"360\" y1=\"82\" x2=\"360\" y2=\"108\"\/><polygon points=\"360,82 356,92 364,92\"\/><polygon points=\"360,108 356,98 364,98\"\/><text x=\"376\" y=\"99\" text-anchor=\"start\">Depth<\/text><\/g><\/svg>\r\n          <svg class=\"gd-svg gd-fig\" data-for=\"face-internal\" viewBox=\"0 0 560 300\" role=\"img\" aria-label=\"Face seal\"><line class=\"gd-axis\" x1=\"280\" y1=\"40\" x2=\"280\" y2=\"262\"\/><text x=\"280\" y=\"32\" text-anchor=\"middle\" font-size=\"11\" fill=\"#9ca3af\" font-weight=\"600\">center<\/text><rect class=\"gd-part\" x=\"70\" y=\"112\" width=\"420\" height=\"18\"\/><rect class=\"gd-part\" x=\"70\" y=\"192\" width=\"420\" height=\"22\"\/><rect class=\"gd-part\" x=\"70\" y=\"150\" width=\"70\" height=\"42\"\/><rect class=\"gd-part\" x=\"200\" y=\"150\" width=\"160\" height=\"42\"\/><rect class=\"gd-part\" x=\"420\" y=\"150\" width=\"70\" height=\"42\"\/><circle class=\"gd-oring\" cx=\"170\" cy=\"160\" r=\"26\"\/><circle class=\"gd-oring\" cx=\"390\" cy=\"160\" r=\"26\"\/><path class=\"gd-parrow\" d=\"M180 160 H150 M150 160 l6 -4 M150 160 l6 4\"\/><path class=\"gd-parrow\" d=\"M380 160 H410 M410 160 l-6 -4 M410 160 l-6 4\"\/><g class=\"gd-dim\" data-dim=\"OD\"><line class=\"gd-ext\" x1=\"140\" y1=\"192\" x2=\"140\" y2=\"238\"\/><line class=\"gd-ext\" x1=\"420\" y1=\"192\" x2=\"420\" y2=\"238\"\/><line x1=\"140\" y1=\"238\" x2=\"420\" y2=\"238\"\/><polygon points=\"140,238 150,234 150,242\"\/><polygon points=\"420,238 410,234 410,242\"\/><text x=\"280\" y=\"233\" text-anchor=\"middle\">OD<\/text><\/g><g class=\"gd-dim\" data-dim=\"ID\"><line class=\"gd-ext\" x1=\"200\" y1=\"192\" x2=\"200\" y2=\"258\"\/><line class=\"gd-ext\" x1=\"360\" y1=\"192\" x2=\"360\" y2=\"258\"\/><line x1=\"200\" y1=\"258\" x2=\"360\" y2=\"258\"\/><polygon points=\"200,258 210,254 210,262\"\/><polygon points=\"360,258 350,254 350,262\"\/><text x=\"280\" y=\"274\" text-anchor=\"middle\">ID<\/text><\/g><g class=\"gd-dim\" data-dim=\"Width\"><line class=\"gd-ext\" x1=\"140\" y1=\"150\" x2=\"140\" y2=\"96\"\/><line class=\"gd-ext\" x1=\"200\" y1=\"150\" x2=\"200\" y2=\"96\"\/><line x1=\"140\" y1=\"96\" x2=\"200\" y2=\"96\"\/><polygon points=\"140,96 150,92 150,100\"\/><polygon points=\"200,96 190,92 190,100\"\/><text x=\"170\" y=\"88\" text-anchor=\"middle\">Width<\/text><\/g><g class=\"gd-dim\" data-dim=\"Depth\"><line class=\"gd-ext\" x1=\"140\" y1=\"150\" x2=\"116\" y2=\"150\"\/><line class=\"gd-ext\" x1=\"140\" y1=\"192\" x2=\"116\" y2=\"192\"\/><line x1=\"124\" y1=\"150\" x2=\"124\" y2=\"192\"\/><polygon points=\"124,150 120,160 128,160\"\/><polygon points=\"124,192 120,182 128,182\"\/><text x=\"110\" y=\"175\" text-anchor=\"end\">Depth<\/text><\/g><\/svg>\r\n          <svg class=\"gd-svg gd-fig\" data-for=\"face-external\" viewBox=\"0 0 560 300\" role=\"img\" aria-label=\"Face seal\"><line class=\"gd-axis\" x1=\"280\" y1=\"40\" x2=\"280\" y2=\"262\"\/><text x=\"280\" y=\"32\" text-anchor=\"middle\" font-size=\"11\" fill=\"#9ca3af\" font-weight=\"600\">center<\/text><rect class=\"gd-part\" x=\"70\" y=\"112\" width=\"420\" height=\"18\"\/><rect class=\"gd-part\" x=\"70\" y=\"192\" width=\"420\" height=\"22\"\/><rect class=\"gd-part\" x=\"70\" y=\"150\" width=\"70\" height=\"42\"\/><rect class=\"gd-part\" x=\"200\" y=\"150\" width=\"160\" height=\"42\"\/><rect class=\"gd-part\" x=\"420\" y=\"150\" width=\"70\" height=\"42\"\/><circle class=\"gd-oring\" cx=\"170\" cy=\"160\" r=\"26\"\/><circle class=\"gd-oring\" cx=\"390\" cy=\"160\" r=\"26\"\/><path class=\"gd-parrow\" d=\"M150 160 H180 M180 160 l-6 -4 M180 160 l-6 4\"\/><path class=\"gd-parrow\" d=\"M410 160 H380 M380 160 l6 -4 M380 160 l6 4\"\/><g class=\"gd-dim\" data-dim=\"OD\"><line class=\"gd-ext\" x1=\"140\" y1=\"192\" x2=\"140\" y2=\"238\"\/><line class=\"gd-ext\" x1=\"420\" y1=\"192\" x2=\"420\" y2=\"238\"\/><line x1=\"140\" y1=\"238\" x2=\"420\" y2=\"238\"\/><polygon points=\"140,238 150,234 150,242\"\/><polygon points=\"420,238 410,234 410,242\"\/><text x=\"280\" y=\"233\" text-anchor=\"middle\">OD<\/text><\/g><g class=\"gd-dim\" data-dim=\"ID\"><line class=\"gd-ext\" x1=\"200\" y1=\"192\" x2=\"200\" y2=\"258\"\/><line class=\"gd-ext\" x1=\"360\" y1=\"192\" x2=\"360\" y2=\"258\"\/><line x1=\"200\" y1=\"258\" x2=\"360\" y2=\"258\"\/><polygon points=\"200,258 210,254 210,262\"\/><polygon points=\"360,258 350,254 350,262\"\/><text x=\"280\" y=\"274\" text-anchor=\"middle\">ID<\/text><\/g><g class=\"gd-dim\" data-dim=\"Width\"><line class=\"gd-ext\" x1=\"140\" y1=\"150\" x2=\"140\" y2=\"96\"\/><line class=\"gd-ext\" x1=\"200\" y1=\"150\" x2=\"200\" y2=\"96\"\/><line x1=\"140\" y1=\"96\" x2=\"200\" y2=\"96\"\/><polygon points=\"140,96 150,92 150,100\"\/><polygon points=\"200,96 190,92 190,100\"\/><text x=\"170\" y=\"88\" text-anchor=\"middle\">Width<\/text><\/g><g class=\"gd-dim\" data-dim=\"Depth\"><line class=\"gd-ext\" x1=\"140\" y1=\"150\" x2=\"116\" y2=\"150\"\/><line class=\"gd-ext\" x1=\"140\" y1=\"192\" x2=\"116\" y2=\"192\"\/><line x1=\"124\" y1=\"150\" x2=\"124\" y2=\"192\"\/><polygon points=\"124,150 120,160 128,160\"\/><polygon points=\"124,192 120,182 128,182\"\/><text x=\"110\" y=\"175\" text-anchor=\"end\">Depth<\/text><\/g><\/svg>\r\n        <\/div><p class=\"gd-cap\" id=\"fDiagCap\"><strong>Piston \/ shaft groove<\/strong> &mdash; the O-ring is squeezed between the groove bottom and the bore wall. Tap a field below and its dimension lights up.<\/p><\/div>\r\n        <label style=\"margin-top:4px\">Your measured groove <span style=\"font-weight:500;text-transform:none;letter-spacing:0;color:#6b7280\">(fill in what you have &mdash; depth fills itself from ID &amp; OD)<\/span><\/label>\r\n        <div class=\"gc-dims\">\r\n          <div class=\"gc-dim\">\r\n            <label for=\"fID\">Groove ID<\/label>\r\n            <div class=\"gc-inputrow\"><input type=\"number\" id=\"fID\" step=\"0.001\" inputmode=\"decimal\" placeholder=\"e.g. 1.300\" \/><span class=\"gc-unit\" data-unitlbl>in<\/span><\/div>\r\n            <div class=\"gc-hint\" id=\"fIDHint\">Smaller of the two diameters.<\/div>\r\n          <\/div>\r\n          <div class=\"gc-dim\">\r\n            <label for=\"fOD\">Groove OD<\/label>\r\n            <div class=\"gc-inputrow\"><input type=\"number\" id=\"fOD\" step=\"0.001\" inputmode=\"decimal\" placeholder=\"e.g. 1.500\" \/><span class=\"gc-unit\" data-unitlbl>in<\/span><\/div>\r\n            <div class=\"gc-hint\" id=\"fODHint\">Larger of the two diameters.<\/div>\r\n          <\/div>\r\n          <div class=\"gc-dim\">\r\n            <label for=\"fDepth\">Groove Depth<\/label>\r\n            <div class=\"gc-inputrow\"><input type=\"number\" id=\"fDepth\" step=\"0.001\" inputmode=\"decimal\" placeholder=\"auto\" \/><span class=\"gc-unit\" data-unitlbl>in<\/span><\/div>\r\n            <div class=\"gc-hint\" id=\"fDepthHint\">Radial depth. Auto = (OD&minus;ID)&divide;2.<\/div>\r\n          <\/div>\r\n          <div class=\"gc-dim\">\r\n            <label for=\"fWidth\">Groove Width<\/label>\r\n            <div class=\"gc-inputrow\"><input type=\"number\" id=\"fWidth\" step=\"0.001\" inputmode=\"decimal\" placeholder=\"e.g. 0.150\" \/><span class=\"gc-unit\" data-unitlbl>in<\/span><\/div>\r\n            <div class=\"gc-hint\" id=\"fWidthHint\">Axial width of the groove.<\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"gc-actions\">\r\n          <button type=\"button\" class=\"gc-btn primary\" id=\"fGo\">Find my O-ring<\/button>\r\n          <button type=\"button\" class=\"gc-btn ghost\" id=\"fClear\">Clear<\/button>\r\n        <\/div>\r\n\r\n        <div id=\"fResults\" aria-live=\"polite\"><\/div>\r\n\r\n        <div class=\"gc-foot\">\r\n          The finder uses published O-ring design rules &mdash; target squeeze (judged by cross-section), gland-fill, and stretch. Inch (AS568) sizes follow the Parker O-Ring Handbook ORD&nbsp;5700 tables; metric sizes follow ISO&nbsp;3601-2 (Housing dimensions), with off-standard cross-sections shown as general guidance. Sizes are matched against Global O-Ring&rsquo;s stocked AS568 and metric sizes. Results are a starting point; final selection should account for tolerances, fluid\/thermal swell, pressure, and material. Want a person to confirm it? <a href=\"https:\/\/www.globaloring.com\/rfq\/\">Request a quote<\/a> or call <a href=\"tel:8324485550\">832-448-5550<\/a> &mdash; most of what we sell is in stock in Houston.\r\n          <div style=\"margin-top:8px\">Related: <a href=\"https:\/\/www.globaloring.com\/o-rings\/\">Shop all O-Rings<\/a> &middot; <a href=\"https:\/\/www.globaloring.com\/o-ring-groove-design\/\">O-Ring Groove Design guide<\/a><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <\/div><!-- \/modeFinder -->\r\n    <!-- ============ \/O-RING FINDER ============ -->\r\n\r\n    <!-- styles specific to the engineer calculator (carried over from the approved tool) -->\r\n    <style>\r\n    #gorGCalc .gc-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:18px}\r\n    #gorGCalc .gc-card{background:#f8f9fa;border:1px solid #e5e7eb;border-left:4px solid #0093D0;border-radius:5px;padding:12px 14px}\r\n    #gorGCalc .gc-card .gc-k{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#6b7280;display:block;margin-bottom:4px}\r\n    #gorGCalc .gc-card .gc-v{font-size:18px;font-weight:600;color:#1f2937;line-height:1.25;font-variant-numeric:tabular-nums}\r\n    #gorGCalc .gc-card .gc-meta{font-size:12px;color:#4b5563;margin-top:3px;font-variant-numeric:tabular-nums}\r\n    #gorGCalc .gc-card.is-green{border-left-color:#00B259}\r\n    #gorGCalc .gc-card.is-muted{background:#fff;border-left-color:#9ca3af}\r\n    #gorGCalc .gc-card.is-muted .gc-v{color:#6b7280}\r\n    #gorGCalc .gc-notes{margin-top:18px;padding:12px 14px;background:#e6f4fa;border-left:4px solid #0093D0;border-radius:5px;font-size:13px;color:#1f2937;line-height:1.55}\r\n    #gorGCalc .gc-notes strong{color:#006ba3} #gorGCalc .gc-notes a{color:#006ba3;font-weight:600;text-decoration:underline}\r\n    #gorGCalc .gc-bu-toggle{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}\r\n    #gorGCalc .gc-bu-toggle button{appearance:none;border:1px solid #d1d5db;background:#fff;color:#4b5563;font-size:12px;font-weight:600;padding:5px 10px;border-radius:14px;cursor:pointer;font-family:inherit}\r\n    #gorGCalc .gc-bu-toggle button.is-active{background:#0093D0;border-color:#0093D0;color:#fff}\r\n    #gorGCalc .gc-hidden{display:none!important}\r\n    #gorGCalc .gc-validator{margin-top:20px;border-top:2px solid #e5e7eb;padding-top:18px}\r\n    #gorGCalc .gc-vh{margin-bottom:14px} #gorGCalc .gc-vh h3{margin:0 0 4px 0;color:#0093D0;font-size:17px;font-weight:700} #gorGCalc .gc-vh p{margin:0;font-size:13px;color:#6b7280;line-height:1.55}\r\n    #gorGCalc .gc-vsec{background:#fafbfc;border:1px solid #e5e7eb;border-radius:6px;padding:14px 16px;margin-bottom:12px}\r\n    #gorGCalc .gc-vsec h4{margin:0 0 12px 0;font-size:15px;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:none;padding:0}\r\n    #gorGCalc .gc-vbadge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:3px 9px;border-radius:11px;line-height:1.4}\r\n    #gorGCalc .gc-vbadge.is-pass{background:#e6f9f0;color:#008a43} #gorGCalc .gc-vbadge.is-warn{background:#fef3c7;color:#92400e} #gorGCalc .gc-vbadge.is-fail{background:#fee2e2;color:#991b1b}\r\n    #gorGCalc .gc-vintro{font-size:13px;color:#4b5563;margin:0 0 12px 0;line-height:1.55}\r\n    #gorGCalc .gc-vinputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}\r\n    #gorGCalc .gc-vinputs label{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#4b5563;margin-bottom:5px}\r\n    #gorGCalc .gc-inputrow{display:flex;align-items:center;gap:6px}\r\n    #gorGCalc .gc-inputrow input{flex:1;min-width:0;padding:8px 10px;font-size:14px;border:1px solid #d1d5db;border-radius:4px;font-family:inherit;font-variant-numeric:tabular-nums;color:#1f2937;background:#fff}\r\n    #gorGCalc .gc-unit{font-size:13px;color:#6b7280;font-weight:600}\r\n    #gorGCalc .gc-link-btn{appearance:none;border:0;background:transparent;color:#0093D0;font-size:11px;font-weight:600;text-decoration:underline;cursor:pointer;padding:2px 0 0 0;font-family:inherit;display:block;margin-top:4px}\r\n    #gorGCalc .gc-duro-toggle{display:flex;gap:4px}\r\n    #gorGCalc .gc-duro-toggle button{flex:1;appearance:none;border:1px solid #d1d5db;background:#fff;color:#4b5563;font-size:13px;font-weight:600;padding:8px 6px;border-radius:4px;cursor:pointer;font-family:inherit}\r\n    #gorGCalc .gc-duro-toggle button.is-active{background:#0093D0;border-color:#0093D0;color:#fff}\r\n    #gorGCalc .gc-vnote{margin-top:8px;font-size:12px;color:#4b5563;line-height:1.55} #gorGCalc .gc-vnote a{color:#006ba3;font-weight:600}\r\n    #gorGCalc .gc-vrec{margin-top:10px;padding:10px 12px;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;font-size:13px;color:#1f2937;line-height:1.55}\r\n    #gorGCalc .gc-vrec.is-pass{background:#e6f9f0;border-left-color:#00B259} #gorGCalc .gc-vrec.is-fail{background:#fee2e2;border-left-color:#dc2626}\r\n    #gorGCalc .gc-vrec strong{color:#92400e} #gorGCalc .gc-vrec.is-pass strong{color:#008a43} #gorGCalc .gc-vrec.is-fail strong{color:#991b1b}\r\n    #gorGCalc .gc-vrec ol{margin:6px 0 0 0;padding-left:18px} #gorGCalc .gc-vrec ol li{margin-bottom:4px}\r\n    #gorGCalc .gc-vfoot{margin-top:14px;font-size:11px;color:#6b7280;line-height:1.55;font-style:italic}\r\n    #gorGCalc .gc-foot{margin-top:14px;font-size:12px;color:#6b7280;border-top:1px solid #e5e7eb;padding-top:12px;line-height:1.5} #gorGCalc .gc-foot a{color:#006ba3;font-weight:600}\r\n    <\/style>\r\n\r\n    <div class=\"mode-pane\" id=\"modeEngineer\">\r\n      <div class=\"gor-gcalc\" id=\"gorGCalc\">\r\n        <div class=\"gc-head\">\r\n          <div>\r\n            <h2>O-Ring Groove Design Calculator<\/h2>\r\n            <div class=\"gc-sub\">Pick an AS568 series and a groove type &mdash; get gland depth, squeeze, width, gap, and corner radii instantly. All values in inches.<\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"gc-body\">\r\n        <div class=\"gd-wrap\"><div id=\"gcGlandFig\">\r\n          <svg class=\"gd-svg gd-fig on\" data-for=\"static\" viewBox=\"0 0 480 220\"><rect class=\"gd-bore\" x=\"80\" y=\"40\" width=\"320\" height=\"16\"\/><rect class=\"gd-part\" x=\"90\" y=\"150\" width=\"300\" height=\"46\"\/><rect class=\"gd-part\" x=\"90\" y=\"120\" width=\"90\" height=\"30\"\/><rect class=\"gd-part\" x=\"300\" y=\"120\" width=\"90\" height=\"30\"\/><circle class=\"gd-oring\" cx=\"240\" cy=\"106\" r=\"42\"\/><line class=\"gd-axis\" x1=\"60\" y1=\"206\" x2=\"420\" y2=\"206\"\/><g class=\"gd-dim\" data-dim=\"D\"><line class=\"gd-ext\" x1=\"180\" y1=\"120\" x2=\"150\" y2=\"120\"\/><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"150\" y2=\"150\"\/><line x1=\"160\" y1=\"120\" x2=\"160\" y2=\"150\"\/><polygon points=\"160,120 156,130 164,130\"\/><polygon points=\"160,150 156,140 164,140\"\/><text x=\"146\" y=\"139\" text-anchor=\"end\">D<\/text><\/g><g class=\"gd-dim\" data-dim=\"W\"><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"180\" y2=\"184\"\/><line class=\"gd-ext\" x1=\"300\" y1=\"150\" x2=\"300\" y2=\"184\"\/><line x1=\"180\" y1=\"178\" x2=\"300\" y2=\"178\"\/><polygon points=\"180,178 190,174 190,182\"\/><polygon points=\"300,178 290,174 290,182\"\/><text x=\"240\" y=\"198\" text-anchor=\"middle\">W<\/text><\/g><g class=\"gd-dim\" data-dim=\"H\"><line class=\"gd-ext\" x1=\"390\" y1=\"56\" x2=\"420\" y2=\"56\"\/><line class=\"gd-ext\" x1=\"390\" y1=\"120\" x2=\"420\" y2=\"120\"\/><line x1=\"410\" y1=\"56\" x2=\"410\" y2=\"120\"\/><polygon points=\"410,56 406,66 414,66\"\/><polygon points=\"410,120 406,110 414,110\"\/><text x=\"424\" y=\"92\" text-anchor=\"start\">H<\/text><\/g><g class=\"gd-dim\" data-dim=\"CS\"><line x1=\"206\" y1=\"64\" x2=\"206\" y2=\"148\"\/><polygon points=\"206,64 202,74 210,74\"\/><polygon points=\"206,148 202,138 210,138\"\/><text x=\"198\" y=\"110\" text-anchor=\"end\">CS<\/text><\/g><g class=\"gd-dim\" data-dim=\"R\"><path d=\"M180 140 Q190 140 190 150\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\/><line x1=\"180\" y1=\"146\" x2=\"165\" y2=\"166\"\/><text x=\"162\" y=\"169\" text-anchor=\"end\">R<\/text><\/g><\/svg>\r\n          <svg class=\"gd-svg gd-fig\" data-for=\"dynamic\" viewBox=\"0 0 480 220\"><rect class=\"gd-bore\" x=\"80\" y=\"40\" width=\"320\" height=\"16\"\/><rect class=\"gd-part\" x=\"90\" y=\"150\" width=\"300\" height=\"46\"\/><rect class=\"gd-part\" x=\"90\" y=\"120\" width=\"90\" height=\"30\"\/><rect class=\"gd-part\" x=\"300\" y=\"120\" width=\"90\" height=\"30\"\/><circle class=\"gd-oring\" cx=\"240\" cy=\"106\" r=\"42\"\/><line class=\"gd-axis\" x1=\"60\" y1=\"206\" x2=\"420\" y2=\"206\"\/><path class=\"gtype-arrow\" d=\"M196 210 H284 M196 210 l5 -3 M196 210 l5 3 M284 210 l-5 -3 M284 210 l-5 3\"\/><g class=\"gd-dim\" data-dim=\"D\"><line class=\"gd-ext\" x1=\"180\" y1=\"120\" x2=\"150\" y2=\"120\"\/><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"150\" y2=\"150\"\/><line x1=\"160\" y1=\"120\" x2=\"160\" y2=\"150\"\/><polygon points=\"160,120 156,130 164,130\"\/><polygon points=\"160,150 156,140 164,140\"\/><text x=\"146\" y=\"139\" text-anchor=\"end\">D<\/text><\/g><g class=\"gd-dim\" data-dim=\"W\"><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"180\" y2=\"184\"\/><line class=\"gd-ext\" x1=\"300\" y1=\"150\" x2=\"300\" y2=\"184\"\/><line x1=\"180\" y1=\"178\" x2=\"300\" y2=\"178\"\/><polygon points=\"180,178 190,174 190,182\"\/><polygon points=\"300,178 290,174 290,182\"\/><text x=\"240\" y=\"198\" text-anchor=\"middle\">W<\/text><\/g><g class=\"gd-dim\" data-dim=\"H\"><line class=\"gd-ext\" x1=\"390\" y1=\"56\" x2=\"420\" y2=\"56\"\/><line class=\"gd-ext\" x1=\"390\" y1=\"120\" x2=\"420\" y2=\"120\"\/><line x1=\"410\" y1=\"56\" x2=\"410\" y2=\"120\"\/><polygon points=\"410,56 406,66 414,66\"\/><polygon points=\"410,120 406,110 414,110\"\/><text x=\"424\" y=\"92\" text-anchor=\"start\">H<\/text><\/g><g class=\"gd-dim\" data-dim=\"CS\"><line x1=\"206\" y1=\"64\" x2=\"206\" y2=\"148\"\/><polygon points=\"206,64 202,74 210,74\"\/><polygon points=\"206,148 202,138 210,138\"\/><text x=\"198\" y=\"110\" text-anchor=\"end\">CS<\/text><\/g><g class=\"gd-dim\" data-dim=\"R\"><path d=\"M180 140 Q190 140 190 150\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\/><line x1=\"180\" y1=\"146\" x2=\"165\" y2=\"166\"\/><text x=\"162\" y=\"169\" text-anchor=\"end\">R<\/text><\/g><\/svg>\r\n          <svg class=\"gd-svg gd-fig\" data-for=\"face\" viewBox=\"0 0 480 220\"><text x=\"240\" y=\"24\" text-anchor=\"middle\" font-size=\"11\" fill=\"#9ca3af\" font-weight=\"600\">mating face (pressed down)<\/text><rect class=\"gd-part\" x=\"70\" y=\"36\" width=\"340\" height=\"20\"\/><rect class=\"gd-part\" x=\"70\" y=\"150\" width=\"340\" height=\"46\"\/><rect class=\"gd-part\" x=\"70\" y=\"120\" width=\"110\" height=\"30\"\/><rect class=\"gd-part\" x=\"300\" y=\"120\" width=\"110\" height=\"30\"\/><circle class=\"gd-oring\" cx=\"240\" cy=\"104\" r=\"44\"\/><g class=\"gd-dim\" data-dim=\"D\"><line class=\"gd-ext\" x1=\"180\" y1=\"120\" x2=\"150\" y2=\"120\"\/><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"150\" y2=\"150\"\/><line x1=\"160\" y1=\"120\" x2=\"160\" y2=\"150\"\/><polygon points=\"160,120 156,130 164,130\"\/><polygon points=\"160,150 156,140 164,140\"\/><text x=\"146\" y=\"139\" text-anchor=\"end\">D<\/text><\/g><g class=\"gd-dim\" data-dim=\"W\"><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"180\" y2=\"184\"\/><line class=\"gd-ext\" x1=\"300\" y1=\"150\" x2=\"300\" y2=\"184\"\/><line x1=\"180\" y1=\"178\" x2=\"300\" y2=\"178\"\/><polygon points=\"180,178 190,174 190,182\"\/><polygon points=\"300,178 290,174 290,182\"\/><text x=\"240\" y=\"198\" text-anchor=\"middle\">W<\/text><\/g><g class=\"gd-dim\" data-dim=\"CS\"><line x1=\"206\" y1=\"62\" x2=\"206\" y2=\"146\"\/><polygon points=\"206,62 202,72 210,72\"\/><polygon points=\"206,146 202,136 210,136\"\/><text x=\"198\" y=\"108\" text-anchor=\"end\">CS<\/text><\/g><g class=\"gd-dim\" data-dim=\"R\"><path d=\"M180 140 Q190 140 190 150\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\/><line x1=\"180\" y1=\"146\" x2=\"165\" y2=\"166\"\/><text x=\"162\" y=\"169\" text-anchor=\"end\">R<\/text><\/g><\/svg>\r\n          <svg class=\"gd-svg gd-fig\" data-for=\"dovetail\" viewBox=\"0 0 480 220\"><rect class=\"gd-part\" x=\"70\" y=\"36\" width=\"340\" height=\"20\"\/><rect class=\"gd-part\" x=\"70\" y=\"150\" width=\"340\" height=\"46\"\/><path class=\"gd-part\" d=\"M70 120 H192 L180 150 H70 Z\"\/><path class=\"gd-part\" d=\"M410 120 H288 L300 150 H410 Z\"\/><circle class=\"gd-oring\" cx=\"240\" cy=\"118\" r=\"38\"\/><g class=\"gd-dim\" data-dim=\"D\"><line class=\"gd-ext\" x1=\"180\" y1=\"120\" x2=\"150\" y2=\"120\"\/><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"150\" y2=\"150\"\/><line x1=\"160\" y1=\"120\" x2=\"160\" y2=\"150\"\/><polygon points=\"160,120 156,130 164,130\"\/><polygon points=\"160,150 156,140 164,140\"\/><text x=\"146\" y=\"139\" text-anchor=\"end\">D<\/text><\/g><g class=\"gd-dim\" data-dim=\"W\"><line class=\"gd-ext\" x1=\"180\" y1=\"150\" x2=\"180\" y2=\"184\"\/><line class=\"gd-ext\" x1=\"300\" y1=\"150\" x2=\"300\" y2=\"184\"\/><line x1=\"180\" y1=\"178\" x2=\"300\" y2=\"178\"\/><polygon points=\"180,178 190,174 190,182\"\/><polygon points=\"300,178 290,174 290,182\"\/><text x=\"240\" y=\"198\" text-anchor=\"middle\">W<\/text><\/g><g class=\"gd-dim\" data-dim=\"CS\"><line x1=\"214\" y1=\"82\" x2=\"214\" y2=\"156\"\/><polygon points=\"214,82 210,92 218,92\"\/><polygon points=\"214,156 210,146 218,146\"\/><text x=\"206\" y=\"122\" text-anchor=\"end\">CS<\/text><\/g><g class=\"gd-dim\" data-dim=\"R\"><path d=\"M180 140 Q190 140 190 150\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\"\/><line x1=\"180\" y1=\"146\" x2=\"165\" y2=\"166\"\/><text x=\"162\" y=\"169\" text-anchor=\"end\">R<\/text><\/g><\/svg>\r\n        <\/div><p class=\"gd-cap\" id=\"gcGlandCap\">Static radial gland &mdash; designed clearance gap, no motion.<\/p><\/div>\r\n          <div class=\"gc-row gc-row3\">\r\n            <div>\r\n              <label for=\"gcType\">Groove \/ Gland Type<\/label>\r\n              <select id=\"gcType\">\r\n                <option value=\"face\">Flange \/ Face Seal &nbsp; (static, no gap)<\/option>\r\n                <option value=\"dovetail\">Dovetail Face Seal &nbsp; (retained, repeat open\/close)<\/option>\r\n                <option value=\"static\" selected>Static Gland &nbsp; (radial, designed clearance)<\/option>\r\n                <option value=\"dynamic\">Dynamic Gland &nbsp; (reciprocating piston\/rod)<\/option>\r\n              <\/select>\r\n              <div class=\"gc-typehint\">\r\n                <span class=\"gc-typeicon\" id=\"gcTypeIcon\" aria-hidden=\"true\"><svg data-for=\"face\" viewBox=\"0 0 48 40\"><rect class=\"gtype-bore\" x=\"6\" y=\"6\" width=\"36\" height=\"6\"\/><path class=\"gtype-part\" d=\"M6 34 V22 H19 V28 H29 V22 H42 V34\"\/><circle class=\"gtype-or\" cx=\"24\" cy=\"20\" r=\"6.5\"\/><\/svg><svg data-for=\"dovetail\" viewBox=\"0 0 48 40\"><rect class=\"gtype-bore\" x=\"6\" y=\"6\" width=\"36\" height=\"6\"\/><path class=\"gtype-part\" d=\"M6 34 V22 H21 L18 28 H30 L27 22 H42 V34\"\/><circle class=\"gtype-or\" cx=\"24\" cy=\"20\" r=\"6.5\"\/><\/svg><svg data-for=\"static\" class=\"on\" viewBox=\"0 0 48 40\"><line class=\"gtype-bore\" x1=\"6\" y1=\"10\" x2=\"42\" y2=\"10\"\/><path class=\"gtype-part\" d=\"M6 34 V20 H19 V26 H29 V20 H42 V34\"\/><circle class=\"gtype-or\" cx=\"24\" cy=\"18\" r=\"6.5\"\/><\/svg><svg data-for=\"dynamic\" viewBox=\"0 0 48 40\"><line class=\"gtype-bore\" x1=\"6\" y1=\"9\" x2=\"42\" y2=\"9\"\/><path class=\"gtype-part\" d=\"M6 31 V19 H19 V25 H29 V19 H42 V31\"\/><circle class=\"gtype-or\" cx=\"24\" cy=\"17\" r=\"6\"\/><path class=\"gtype-arrow\" d=\"M14 37 H34 M14 37 l3 -2 M14 37 l3 2 M34 37 l-3 -2 M34 37 l-3 2\"\/><\/svg>\r\n                <\/span>\r\n                <a class=\"gc-typelink\" href=\"https:\/\/www.globaloring.com\/o-ring-groove-design\/\" target=\"_blank\" rel=\"noopener\">What do these mean? See the groove design guide &rarr;<\/a>\r\n              <\/div>\r\n              <div class=\"gc-bu-toggle\" id=\"gcBuToggle\" aria-label=\"Backup ring option\">\r\n                <button type=\"button\" data-bu=\"0\" class=\"is-active\">No backup rings<\/button>\r\n                <button type=\"button\" data-bu=\"1\">+1 backup ring<\/button>\r\n                <button type=\"button\" data-bu=\"2\">+2 backup rings<\/button>\r\n              <\/div>\r\n            <\/div>\r\n            <div>\r\n              <label for=\"gcSeries\">Cross-Section Series<\/label>\r\n              <select id=\"gcSeries\">\r\n                <option value=\"0XX\">&minus;0XX &nbsp; (0.070&Prime; CS, &plusmn;0.003)<\/option>\r\n                <option value=\"1XX\">&minus;1XX &nbsp; (0.103&Prime; CS, &plusmn;0.004)<\/option>\r\n                <option value=\"2XX\" selected>&minus;2XX &nbsp; (0.139&Prime; CS, &plusmn;0.004)<\/option>\r\n                <option value=\"3XX\">&minus;3XX &nbsp; (0.210&Prime; CS, &plusmn;0.005)<\/option>\r\n                <option value=\"4XX\">&minus;4XX &nbsp; (0.275&Prime; CS, &plusmn;0.006)<\/option>\r\n              <\/select>\r\n            <\/div>\r\n            <div class=\"gc-idcol\">\r\n              <label for=\"gcTargetID\">Target groove ID <span style=\"font-weight:500;text-transform:none;letter-spacing:0;color:#6b7280\">(optional)<\/span><\/label>\r\n              <div class=\"gc-inputrow\"><input type=\"number\" id=\"gcTargetID\" step=\"0.001\" inputmode=\"decimal\" placeholder=\"e.g. 0.984\" \/><span class=\"gc-unit\">in<\/span><\/div>\r\n              <button type=\"button\" class=\"gc-btn primary\" id=\"gcIDGo\">Recommend a size<\/button>\r\n              <div class=\"gc-hint\">Nearest stocked AS568 dash in this series &mdash; with a machine-to-fit tip if your ID is off-standard.<\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div id=\"gcIDRecOut\" aria-live=\"polite\" style=\"margin-top:2px\"><\/div>\r\n          <div class=\"gc-results\" id=\"gcResults\" aria-live=\"polite\"><\/div>\r\n          <div class=\"gc-notes\" id=\"gcNotes\"><\/div>\r\n          <div class=\"gc-validator\">\r\n            <div class=\"gc-vh\">\r\n              <h3>Design Validator<\/h3>\r\n              <p>Real-time checks against the methodology described further down this page &mdash; compression-ratio extremes, extrusion-pressure limits, and concentric clearance.<\/p>\r\n            <\/div>\r\n            <section class=\"gc-vsec\" data-section=\"compression\">\r\n              <h4>Compression Check <span class=\"gc-vbadge\" id=\"gcCompBadge\"><\/span><\/h4>\r\n              <p class=\"gc-vintro\">Squeeze at nominal dimensions and at both tolerance extremes. Each value is checked against the published squeeze range for the selected series and groove type.<\/p>\r\n              <div class=\"gc-results\" id=\"gcCompResults\" aria-live=\"polite\"><\/div>\r\n              <div class=\"gc-vnote\" id=\"gcCompNote\"><\/div>\r\n            <\/section>\r\n            <section class=\"gc-vsec\" data-section=\"extrusion\" id=\"gcExtSection\">\r\n              <h4>Extrusion \/ Pressure Check <span class=\"gc-vbadge\" id=\"gcExtBadge\"><\/span><\/h4>\r\n              <p class=\"gc-vintro\">Enter your application pressure, durometer, and clearance gap. The calculator returns the max safe pressure for that combination (Parker EB-1010 limits) and whether your design fits.<\/p>\r\n              <div class=\"gc-vinputs\">\r\n                <div>\r\n                  <label for=\"gcPressure\">Working Pressure<\/label>\r\n                  <div class=\"gc-inputrow\"><input type=\"number\" id=\"gcPressure\" value=\"1500\" min=\"0\" step=\"50\" \/><span class=\"gc-unit\">psi<\/span><\/div>\r\n                <\/div>\r\n                <div>\r\n                  <label>O-Ring Durometer<\/label>\r\n                  <div class=\"gc-duro-toggle\" id=\"gcDuroToggle\" aria-label=\"Durometer\">\r\n                    <button type=\"button\" data-duro=\"70\" class=\"is-active\">70A<\/button>\r\n                    <button type=\"button\" data-duro=\"80\">80A<\/button>\r\n                    <button type=\"button\" data-duro=\"90\">90A<\/button>\r\n                  <\/div>\r\n                <\/div>\r\n                <div>\r\n                  <label for=\"gcGap\">Diametric Clearance Gap<\/label>\r\n                  <div class=\"gc-inputrow\"><input type=\"number\" id=\"gcGap\" value=\"0.002\" min=\"0\" step=\"0.001\" \/><span class=\"gc-unit\">in<\/span><\/div>\r\n                  <button type=\"button\" id=\"gcGapReset\" class=\"gc-link-btn\" title=\"Reset to H_max from groove table\">&#8634; Reset to table H_max<\/button>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"gc-results\" id=\"gcExtResults\" aria-live=\"polite\"><\/div>\r\n              <div class=\"gc-vrec\" id=\"gcExtRec\"><\/div>\r\n              <div class=\"gc-vnote\" id=\"gcExtNote\"><\/div>\r\n            <\/section>\r\n            <section class=\"gc-vsec\" data-section=\"concentricity\" id=\"gcConSection\">\r\n              <h4>Concentricity \/ Clearance Helper<\/h4>\r\n              <p class=\"gc-vintro\">No measured clearance handy? Enter bore and shaft\/piston diameters. Assume all clearance can shift to one side &mdash; the full <em>diametric<\/em> clearance is what the extrusion check needs.<\/p>\r\n              <div class=\"gc-vinputs\">\r\n                <div>\r\n                  <label for=\"gcBore\">Bore ID<\/label>\r\n                  <div class=\"gc-inputrow\"><input type=\"number\" id=\"gcBore\" step=\"0.001\" placeholder=\"e.g. 1.500\" \/><span class=\"gc-unit\">in<\/span><\/div>\r\n                <\/div>\r\n                <div>\r\n                  <label for=\"gcShaft\">Shaft \/ Piston OD<\/label>\r\n                  <div class=\"gc-inputrow\"><input type=\"number\" id=\"gcShaft\" step=\"0.001\" placeholder=\"e.g. 1.495\" \/><span class=\"gc-unit\">in<\/span><\/div>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"gc-results\" id=\"gcConResults\" aria-live=\"polite\"><\/div>\r\n              <div class=\"gc-vrec\" id=\"gcConRec\"><\/div>\r\n            <\/section>\r\n            <p class=\"gc-vfoot\">Extrusion-pressure limits derived from the Parker O-Ring Handbook (ORD&nbsp;5700 \/ EB-1010). Values assume continuous pressure at room temperature on elastomeric compounds (Buna-N, FKM\/Viton, EPDM). For FFKM, PTFE, polyurethane, high-temperature service, pulsing pressure, or Rapid Gas Decompression, request engineering review.<\/p>\r\n          <\/div>\r\n          <div class=\"gc-foot\">\r\n            Values come from the AS568 design tables published on this page. Use them as a starting point &mdash; the final design must account for tolerance extremes, fluid swell, thermal expansion, and concentricity.\r\n            <a href=\"https:\/\/www.globaloring.com\/rfq\/\">Request a quote<\/a> or <a href=\"tel:8324485550\">call 832-448-5550<\/a>.\r\n            <div style=\"margin-top:8px\">Related: <a href=\"https:\/\/www.globaloring.com\/o-rings\/\">Shop all O-Rings<\/a> &middot; <a href=\"https:\/\/www.globaloring.com\/o-ring-groove-design\/\">O-Ring Groove Design guide<\/a><\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div><!-- \/modeEngineer -->\r\n\r\n<script>\r\n(function(){\r\n      var sw=document.getElementById(\"modeSwitch\"); if(!sw) return;\r\n      var panes={finder:document.getElementById(\"modeFinder\"),engineer:document.getElementById(\"modeEngineer\")};\r\n      sw.addEventListener(\"click\",function(e){\r\n        var b=e.target.closest(\"button[data-mode]\"); if(!b) return;\r\n        var m=b.getAttribute(\"data-mode\");\r\n        sw.querySelectorAll(\"button\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);});\r\n        Object.keys(panes).forEach(function(k){ if(panes[k]) panes[k].classList.toggle(\"is-active\",k===m); });\r\n        window.scrollTo({top:window.scrollY+sw.getBoundingClientRect().top-12,behavior:\"smooth\"});\r\n      });\r\n    })();\r\n<\/script>\r\n<script>\r\n(function(){\r\n      function hl(el,on){ if(el) el.classList.toggle(\"hl\",!!on); }\r\n      \/\/ ---- Finder: figure swap + field highlight + hints ----\r\n      var finderFig=document.getElementById(\"fGlandFig\");\r\n      function fvis(){ return finderFig?finderFig.querySelector(\"svg.on\"):null; }\r\n      function fhl(dim,on){ var s=fvis(); if(!s)return; var g=s.querySelector('[data-dim=\"'+dim+'\"]'); if(g) g.classList.toggle(\"hl\",!!on); }\r\n      var fdim={fID:\"ID\",fOD:\"OD\",fDepth:\"Depth\",fWidth:\"Width\"};\r\n      Object.keys(fdim).forEach(function(id){ var inp=document.getElementById(id); if(!inp)return;\r\n        [\"focus\",\"mouseenter\"].forEach(function(ev){ inp.addEventListener(ev,function(){fhl(fdim[id],true);}); });\r\n        [\"blur\",\"mouseleave\"].forEach(function(ev){ inp.addEventListener(ev,function(){fhl(fdim[id],false);}); });\r\n      });\r\n      var SCAP={\r\n        \"piston\":\"<strong>Piston \/ shaft groove<\/strong> &mdash; the O-ring is squeezed between the groove bottom and the bore wall.\",\r\n        \"rod\":\"<strong>Bore \/ rod groove<\/strong> &mdash; the groove is in the housing; the O-ring seals against the rod.\",\r\n        \"face-internal\":\"<strong>Face seal, inner pressure<\/strong> &mdash; pressure pushes the O-ring outward against the groove's outer wall.\",\r\n        \"face-external\":\"<strong>Face seal, outer pressure<\/strong> &mdash; pressure pushes the O-ring inward against the groove's inner wall.\"\r\n      };\r\n      function setHints(face){\r\n        var idH=document.getElementById(\"fIDHint\"), odH=document.getElementById(\"fODHint\"),\r\n            dH=document.getElementById(\"fDepthHint\"), wH=document.getElementById(\"fWidthHint\");\r\n        if(face){ if(idH)idH.textContent=\"Inner-wall diameter (smaller).\"; if(odH)odH.textContent=\"Outer-wall diameter (larger).\";\r\n          if(dH)dH.innerHTML=\"Axial depth &mdash; enter this.\"; if(wH)wH.innerHTML=\"Radial width. Auto = (OD&minus;ID)&divide;2.\"; }\r\n        else { if(idH)idH.textContent=\"Smaller of the two diameters.\"; if(odH)odH.textContent=\"Larger of the two diameters.\";\r\n          if(dH)dH.innerHTML=\"Radial depth. Auto = (OD&minus;ID)&divide;2.\"; if(wH)wH.innerHTML=\"Axial width of the groove.\"; }\r\n      }\r\n      var sealWrap=document.getElementById(\"fSeal\"), fcap=document.getElementById(\"fDiagCap\");\r\n      function setSeal(t){\r\n        if(finderFig) finderFig.querySelectorAll(\"svg\").forEach(function(s){ s.classList.toggle(\"on\",s.getAttribute(\"data-for\")===t); });\r\n        if(fcap) fcap.innerHTML=(SCAP[t]||\"\")+\" Tap a field below and its dimension lights up.\";\r\n        setHints(t.indexOf(\"face\")===0);\r\n      }\r\n      if(sealWrap){ sealWrap.addEventListener(\"click\",function(e){ var b=e.target.closest(\"button[data-seal]\"); if(!b)return; setSeal(b.getAttribute(\"data-seal\")); }); }\r\n\r\n      \/\/ ---- Engineer: type swap (icon + figure + caption) ----\r\n      var typeSel=document.getElementById(\"gcType\"), iconWrap=document.getElementById(\"gcTypeIcon\"),\r\n          figWrap=document.getElementById(\"gcGlandFig\"), figCap=document.getElementById(\"gcGlandCap\");\r\n      var FCAP={ face:\"Flange \/ face seal &mdash; squeeze is axial; no extrusion gap.\",\r\n                 dovetail:\"Dovetail face seal &mdash; the groove mechanically retains the O-ring.\",\r\n                 static:\"Static radial gland &mdash; designed clearance gap, no motion.\",\r\n                 dynamic:\"Dynamic radial gland &mdash; reciprocating; a clearance gap is always present.\" };\r\n      function setType(){ var t=typeSel?typeSel.value:\"static\";\r\n        if(iconWrap) iconWrap.querySelectorAll(\"svg\").forEach(function(s){ s.classList.toggle(\"on\",s.getAttribute(\"data-for\")===t); });\r\n        if(figWrap) figWrap.querySelectorAll(\"svg\").forEach(function(s){ s.classList.toggle(\"on\",s.getAttribute(\"data-for\")===t); });\r\n        if(figCap) figCap.innerHTML=FCAP[t]||\"\";\r\n      }\r\n      if(typeSel){ typeSel.addEventListener(\"change\",setType); setType(); }\r\n      function clearFig(){ if(!figWrap)return; var on=figWrap.querySelector(\"svg.on\"); if(on) on.querySelectorAll(\".gd-dim\").forEach(function(g){g.classList.remove(\"hl\");}); }\r\n      var KW=[[\"cross-section\",\"CS\"],[\"squeeze\",\"CS\"],[\"depth\",\"D\"],[\"width\",\"W\"],[\"gap\",\"H\"],[\"radii\",\"R\"]];\r\n      var er=document.getElementById(\"gcResults\");\r\n      if(er){\r\n        er.addEventListener(\"mouseover\",function(e){ var c=e.target.closest(\".gc-card\"); if(!c)return; var kEl=c.querySelector(\".gc-k\"); var k=(kEl?kEl.textContent:\"\").toLowerCase(); var dim=null; for(var i=0;i<KW.length;i++){ if(k.indexOf(KW[i][0])>=0){ dim=KW[i][1]; break; } } if(!dim||!figWrap)return; var on=figWrap.querySelector(\"svg.on\"); if(!on)return; var g=on.querySelector('[data-dim=\"'+dim+'\"]'); if(g) g.classList.add(\"hl\"); });\r\n        er.addEventListener(\"mouseout\",function(e){ var c=e.target.closest(\".gc-card\"); if(!c)return; clearFig(); });\r\n      }\r\n    })();\r\n<\/script>\r\n<script>\r\n\/* ================= O-RING FINDER (reverse lookup) ================= *\/\r\n(function(){\r\n  var SIZES = [{\"d\": \"001\", \"cs\": 0.04, \"id\": 0.029, \"od\": 0.109}, {\"d\": \"002\", \"cs\": 0.05, \"id\": 0.042, \"od\": 0.142}, {\"d\": \"003\", \"cs\": 0.06, \"id\": 0.056, \"od\": 0.176}, {\"d\": \"004\", \"cs\": 0.07, \"id\": 0.07, \"od\": 0.21}, {\"d\": \"005\", \"cs\": 0.07, \"id\": 0.101, \"od\": 0.241}, {\"d\": \"006\", \"cs\": 0.07, \"id\": 0.114, \"od\": 0.254}, {\"d\": \"007\", \"cs\": 0.07, \"id\": 0.145, \"od\": 0.285}, {\"d\": \"008\", \"cs\": 0.07, \"id\": 0.176, \"od\": 0.316}, {\"d\": \"009\", \"cs\": 0.07, \"id\": 0.208, \"od\": 0.348}, {\"d\": \"010\", \"cs\": 0.07, \"id\": 0.239, \"od\": 0.379}, {\"d\": \"011\", \"cs\": 0.07, \"id\": 0.301, \"od\": 0.441}, {\"d\": \"012\", \"cs\": 0.07, \"id\": 0.364, \"od\": 0.504}, {\"d\": \"013\", \"cs\": 0.07, \"id\": 0.426, \"od\": 0.566}, {\"d\": \"014\", \"cs\": 0.07, \"id\": 0.489, \"od\": 0.629}, {\"d\": \"015\", \"cs\": 0.07, \"id\": 0.551, \"od\": 0.691}, {\"d\": \"016\", \"cs\": 0.07, \"id\": 0.614, \"od\": 0.754}, {\"d\": \"017\", \"cs\": 0.07, \"id\": 0.676, \"od\": 0.816}, {\"d\": \"018\", \"cs\": 0.07, \"id\": 0.739, \"od\": 0.879}, {\"d\": \"019\", \"cs\": 0.07, \"id\": 0.801, \"od\": 0.941}, {\"d\": \"020\", \"cs\": 0.07, \"id\": 0.864, \"od\": 1.004}, {\"d\": \"021\", \"cs\": 0.07, \"id\": 0.926, \"od\": 1.066}, {\"d\": \"022\", \"cs\": 0.07, \"id\": 0.989, \"od\": 1.129}, {\"d\": \"023\", \"cs\": 0.07, \"id\": 1.051, \"od\": 1.191}, {\"d\": \"024\", \"cs\": 0.07, \"id\": 1.114, \"od\": 1.254}, {\"d\": \"025\", \"cs\": 0.07, \"id\": 1.176, \"od\": 1.316}, {\"d\": \"026\", \"cs\": 0.07, \"id\": 1.239, \"od\": 1.379}, {\"d\": \"027\", \"cs\": 0.07, \"id\": 1.301, \"od\": 1.441}, {\"d\": \"028\", \"cs\": 0.07, \"id\": 1.364, \"od\": 1.504}, {\"d\": \"029\", \"cs\": 0.07, \"id\": 1.489, \"od\": 1.629}, {\"d\": \"030\", \"cs\": 0.07, \"id\": 1.614, \"od\": 1.754}, {\"d\": \"031\", \"cs\": 0.07, \"id\": 1.739, \"od\": 1.879}, {\"d\": \"032\", \"cs\": 0.07, \"id\": 1.864, \"od\": 2.004}, {\"d\": \"033\", \"cs\": 0.07, \"id\": 1.989, \"od\": 2.129}, {\"d\": \"034\", \"cs\": 0.07, \"id\": 2.114, \"od\": 2.254}, {\"d\": \"035\", \"cs\": 0.07, \"id\": 2.239, \"od\": 2.379}, {\"d\": \"036\", \"cs\": 0.07, \"id\": 2.364, \"od\": 2.504}, {\"d\": \"037\", \"cs\": 0.07, \"id\": 2.489, \"od\": 2.629}, {\"d\": \"038\", \"cs\": 0.07, \"id\": 2.614, \"od\": 2.754}, {\"d\": \"039\", \"cs\": 0.07, \"id\": 2.739, \"od\": 2.879}, {\"d\": \"040\", \"cs\": 0.07, \"id\": 2.864, \"od\": 3.004}, {\"d\": \"041\", \"cs\": 0.07, \"id\": 2.989, \"od\": 3.129}, {\"d\": \"042\", \"cs\": 0.07, \"id\": 3.239, \"od\": 3.379}, {\"d\": \"043\", \"cs\": 0.07, \"id\": 3.489, \"od\": 3.629}, {\"d\": \"044\", \"cs\": 0.07, \"id\": 3.739, \"od\": 3.879}, {\"d\": \"045\", \"cs\": 0.07, \"id\": 3.989, \"od\": 4.129}, {\"d\": \"046\", \"cs\": 0.07, \"id\": 4.239, \"od\": 4.379}, {\"d\": \"047\", \"cs\": 0.07, \"id\": 4.489, \"od\": 4.629}, {\"d\": \"048\", \"cs\": 0.07, \"id\": 4.739, \"od\": 4.879}, {\"d\": \"049\", \"cs\": 0.07, \"id\": 4.989, \"od\": 5.129}, {\"d\": \"050\", \"cs\": 0.07, \"id\": 5.239, \"od\": 5.379}, {\"d\": \"102\", \"cs\": 0.103, \"id\": 0.049, \"od\": 0.255}, {\"d\": \"103\", \"cs\": 0.103, \"id\": 0.081, \"od\": 0.287}, {\"d\": \"104\", \"cs\": 0.103, \"id\": 0.112, \"od\": 0.318}, {\"d\": \"105\", \"cs\": 0.103, \"id\": 0.143, \"od\": 0.349}, {\"d\": \"106\", \"cs\": 0.103, \"id\": 0.174, \"od\": 0.38}, {\"d\": \"107\", \"cs\": 0.103, \"id\": 0.206, \"od\": 0.412}, {\"d\": \"108\", \"cs\": 0.103, \"id\": 0.237, \"od\": 0.443}, {\"d\": \"109\", \"cs\": 0.103, \"id\": 0.299, \"od\": 0.505}, {\"d\": \"110\", \"cs\": 0.103, \"id\": 0.362, \"od\": 0.568}, {\"d\": \"111\", \"cs\": 0.103, \"id\": 0.424, \"od\": 0.63}, {\"d\": \"112\", \"cs\": 0.103, \"id\": 0.487, \"od\": 0.693}, {\"d\": \"113\", \"cs\": 0.103, \"id\": 0.549, \"od\": 0.755}, {\"d\": \"114\", \"cs\": 0.103, \"id\": 0.612, \"od\": 0.818}, {\"d\": \"115\", \"cs\": 0.103, \"id\": 0.674, \"od\": 0.88}, {\"d\": \"116\", \"cs\": 0.103, \"id\": 0.737, \"od\": 0.943}, {\"d\": \"117\", \"cs\": 0.103, \"id\": 0.799, \"od\": 1.005}, {\"d\": \"118\", \"cs\": 0.103, \"id\": 0.862, \"od\": 1.068}, {\"d\": \"119\", \"cs\": 0.103, \"id\": 0.924, \"od\": 1.13}, {\"d\": \"120\", \"cs\": 0.103, \"id\": 0.987, \"od\": 1.193}, {\"d\": \"121\", \"cs\": 0.103, \"id\": 1.049, \"od\": 1.255}, {\"d\": \"122\", \"cs\": 0.103, \"id\": 1.112, \"od\": 1.318}, {\"d\": \"123\", \"cs\": 0.103, \"id\": 1.174, \"od\": 1.38}, {\"d\": \"124\", \"cs\": 0.103, \"id\": 1.237, \"od\": 1.443}, {\"d\": \"125\", \"cs\": 0.103, \"id\": 1.299, \"od\": 1.505}, {\"d\": \"126\", \"cs\": 0.103, \"id\": 1.362, \"od\": 1.568}, {\"d\": \"127\", \"cs\": 0.103, \"id\": 1.424, \"od\": 1.63}, {\"d\": \"128\", \"cs\": 0.103, \"id\": 1.487, \"od\": 1.693}, {\"d\": \"129\", \"cs\": 0.103, \"id\": 1.549, \"od\": 1.755}, {\"d\": \"130\", \"cs\": 0.103, \"id\": 1.612, \"od\": 1.818}, {\"d\": \"131\", \"cs\": 0.103, \"id\": 1.674, \"od\": 1.88}, {\"d\": \"132\", \"cs\": 0.103, \"id\": 1.737, \"od\": 1.943}, {\"d\": \"133\", \"cs\": 0.103, \"id\": 1.799, \"od\": 2.005}, {\"d\": \"134\", \"cs\": 0.103, \"id\": 1.862, \"od\": 2.068}, {\"d\": \"135\", \"cs\": 0.103, \"id\": 1.925, \"od\": 2.131}, {\"d\": \"136\", \"cs\": 0.103, \"id\": 1.987, \"od\": 2.193}, {\"d\": \"137\", \"cs\": 0.103, \"id\": 2.05, \"od\": 2.256}, {\"d\": \"138\", \"cs\": 0.103, \"id\": 2.112, \"od\": 2.318}, {\"d\": \"139\", \"cs\": 0.103, \"id\": 2.175, \"od\": 2.381}, {\"d\": \"140\", \"cs\": 0.103, \"id\": 2.237, \"od\": 2.443}, {\"d\": \"141\", \"cs\": 0.103, \"id\": 2.3, \"od\": 2.506}, {\"d\": \"142\", \"cs\": 0.103, \"id\": 2.362, \"od\": 2.568}, {\"d\": \"143\", \"cs\": 0.103, \"id\": 2.425, \"od\": 2.631}, {\"d\": \"144\", \"cs\": 0.103, \"id\": 2.487, \"od\": 2.693}, {\"d\": \"145\", \"cs\": 0.103, \"id\": 2.55, \"od\": 2.756}, {\"d\": \"146\", \"cs\": 0.103, \"id\": 2.612, \"od\": 2.818}, {\"d\": \"147\", \"cs\": 0.103, \"id\": 2.675, \"od\": 2.881}, {\"d\": \"148\", \"cs\": 0.103, \"id\": 2.737, \"od\": 2.943}, {\"d\": \"149\", \"cs\": 0.103, \"id\": 2.8, \"od\": 3.006}, {\"d\": \"150\", \"cs\": 0.103, \"id\": 2.862, \"od\": 3.068}, {\"d\": \"151\", \"cs\": 0.103, \"id\": 2.987, \"od\": 3.193}, {\"d\": \"152\", \"cs\": 0.103, \"id\": 3.237, \"od\": 3.443}, {\"d\": \"153\", \"cs\": 0.103, \"id\": 3.487, \"od\": 3.693}, {\"d\": \"154\", \"cs\": 0.103, \"id\": 3.737, \"od\": 3.943}, {\"d\": \"155\", \"cs\": 0.103, \"id\": 3.987, \"od\": 4.193}, {\"d\": \"156\", \"cs\": 0.103, \"id\": 4.237, \"od\": 4.443}, {\"d\": \"157\", \"cs\": 0.103, \"id\": 4.487, \"od\": 4.693}, {\"d\": \"158\", \"cs\": 0.103, \"id\": 4.737, \"od\": 4.943}, {\"d\": \"159\", \"cs\": 0.103, \"id\": 4.987, \"od\": 5.193}, {\"d\": \"160\", \"cs\": 0.103, \"id\": 5.237, \"od\": 5.443}, {\"d\": \"161\", \"cs\": 0.103, \"id\": 5.487, \"od\": 5.693}, {\"d\": \"162\", \"cs\": 0.103, \"id\": 5.737, \"od\": 5.943}, {\"d\": \"163\", \"cs\": 0.103, \"id\": 5.987, \"od\": 6.193}, {\"d\": \"164\", \"cs\": 0.103, \"id\": 6.237, \"od\": 6.443}, {\"d\": \"165\", \"cs\": 0.103, \"id\": 6.487, \"od\": 6.693}, {\"d\": \"166\", \"cs\": 0.103, \"id\": 6.737, \"od\": 6.943}, {\"d\": \"167\", \"cs\": 0.103, \"id\": 6.987, \"od\": 7.193}, {\"d\": \"168\", \"cs\": 0.103, \"id\": 7.237, \"od\": 7.443}, {\"d\": \"169\", \"cs\": 0.103, \"id\": 7.487, \"od\": 7.693}, {\"d\": \"170\", \"cs\": 0.103, \"id\": 7.737, \"od\": 7.943}, {\"d\": \"171\", \"cs\": 0.103, \"id\": 7.987, \"od\": 8.193}, {\"d\": \"172\", \"cs\": 0.103, \"id\": 8.237, \"od\": 8.443}, {\"d\": \"173\", \"cs\": 0.103, \"id\": 8.487, \"od\": 8.693}, {\"d\": \"174\", \"cs\": 0.103, \"id\": 8.737, \"od\": 8.943}, {\"d\": \"175\", \"cs\": 0.103, \"id\": 8.987, \"od\": 9.193}, {\"d\": \"176\", \"cs\": 0.103, \"id\": 9.237, \"od\": 9.443}, {\"d\": \"177\", \"cs\": 0.103, \"id\": 9.487, \"od\": 9.693}, {\"d\": \"178\", \"cs\": 0.103, \"id\": 9.737, \"od\": 9.943}, {\"d\": \"201\", \"cs\": 0.139, \"id\": 0.171, \"od\": 0.449}, {\"d\": \"202\", \"cs\": 0.139, \"id\": 0.234, \"od\": 0.512}, {\"d\": \"203\", \"cs\": 0.139, \"id\": 0.296, \"od\": 0.574}, {\"d\": \"204\", \"cs\": 0.139, \"id\": 0.359, \"od\": 0.637}, {\"d\": \"205\", \"cs\": 0.139, \"id\": 0.421, \"od\": 0.699}, {\"d\": \"206\", \"cs\": 0.139, \"id\": 0.484, \"od\": 0.762}, {\"d\": \"207\", \"cs\": 0.139, \"id\": 0.546, \"od\": 0.824}, {\"d\": \"208\", \"cs\": 0.139, \"id\": 0.609, \"od\": 0.887}, {\"d\": \"209\", \"cs\": 0.139, \"id\": 0.671, \"od\": 0.949}, {\"d\": \"210\", \"cs\": 0.139, \"id\": 0.734, \"od\": 1.012}, {\"d\": \"211\", \"cs\": 0.139, \"id\": 0.796, \"od\": 1.074}, {\"d\": \"212\", \"cs\": 0.139, \"id\": 0.859, \"od\": 1.137}, {\"d\": \"213\", \"cs\": 0.139, \"id\": 0.921, \"od\": 1.199}, {\"d\": \"214\", \"cs\": 0.139, \"id\": 0.984, \"od\": 1.262}, {\"d\": \"215\", \"cs\": 0.139, \"id\": 1.046, \"od\": 1.324}, {\"d\": \"216\", \"cs\": 0.139, \"id\": 1.109, \"od\": 1.387}, {\"d\": \"217\", \"cs\": 0.139, \"id\": 1.171, \"od\": 1.449}, {\"d\": \"218\", \"cs\": 0.139, \"id\": 1.234, \"od\": 1.512}, {\"d\": \"219\", \"cs\": 0.139, \"id\": 1.296, \"od\": 1.574}, {\"d\": \"220\", \"cs\": 0.139, \"id\": 1.359, \"od\": 1.637}, {\"d\": \"221\", \"cs\": 0.139, \"id\": 1.421, \"od\": 1.699}, {\"d\": \"222\", \"cs\": 0.139, \"id\": 1.484, \"od\": 1.762}, {\"d\": \"223\", \"cs\": 0.139, \"id\": 1.609, \"od\": 1.887}, {\"d\": \"224\", \"cs\": 0.139, \"id\": 1.734, \"od\": 2.012}, {\"d\": \"225\", \"cs\": 0.139, \"id\": 1.859, \"od\": 2.137}, {\"d\": \"226\", \"cs\": 0.139, \"id\": 1.984, \"od\": 2.262}, {\"d\": \"227\", \"cs\": 0.139, \"id\": 2.109, \"od\": 2.387}, {\"d\": \"228\", \"cs\": 0.139, \"id\": 2.234, \"od\": 2.512}, {\"d\": \"229\", \"cs\": 0.139, \"id\": 2.359, \"od\": 2.637}, {\"d\": \"230\", \"cs\": 0.139, \"id\": 2.484, \"od\": 2.762}, {\"d\": \"231\", \"cs\": 0.139, \"id\": 2.609, \"od\": 2.887}, {\"d\": \"232\", \"cs\": 0.139, \"id\": 2.734, \"od\": 3.012}, {\"d\": \"233\", \"cs\": 0.139, \"id\": 2.859, \"od\": 3.137}, {\"d\": \"234\", \"cs\": 0.139, \"id\": 2.984, \"od\": 3.262}, {\"d\": \"235\", \"cs\": 0.139, \"id\": 3.109, \"od\": 3.387}, {\"d\": \"236\", \"cs\": 0.139, \"id\": 3.234, \"od\": 3.512}, {\"d\": \"237\", \"cs\": 0.139, \"id\": 3.359, \"od\": 3.637}, {\"d\": \"238\", \"cs\": 0.139, \"id\": 3.484, \"od\": 3.762}, {\"d\": \"239\", \"cs\": 0.139, \"id\": 3.609, \"od\": 3.887}, {\"d\": \"240\", \"cs\": 0.139, \"id\": 3.734, \"od\": 4.012}, {\"d\": \"241\", \"cs\": 0.139, \"id\": 3.859, \"od\": 4.137}, {\"d\": \"242\", \"cs\": 0.139, \"id\": 3.984, \"od\": 4.262}, {\"d\": \"243\", \"cs\": 0.139, \"id\": 4.109, \"od\": 4.387}, {\"d\": \"244\", \"cs\": 0.139, \"id\": 4.234, \"od\": 4.512}, {\"d\": \"245\", \"cs\": 0.139, \"id\": 4.359, \"od\": 4.637}, {\"d\": \"246\", \"cs\": 0.139, \"id\": 4.484, \"od\": 4.762}, {\"d\": \"247\", \"cs\": 0.139, \"id\": 4.609, \"od\": 4.887}, {\"d\": \"248\", \"cs\": 0.139, \"id\": 4.734, \"od\": 5.012}, {\"d\": \"249\", \"cs\": 0.139, \"id\": 4.859, \"od\": 5.137}, {\"d\": \"250\", \"cs\": 0.139, \"id\": 4.984, \"od\": 5.262}, {\"d\": \"251\", \"cs\": 0.139, \"id\": 5.109, \"od\": 5.387}, {\"d\": \"252\", \"cs\": 0.139, \"id\": 5.234, \"od\": 5.512}, {\"d\": \"253\", \"cs\": 0.139, \"id\": 5.359, \"od\": 5.637}, {\"d\": \"254\", \"cs\": 0.139, \"id\": 5.484, \"od\": 5.762}, {\"d\": \"255\", \"cs\": 0.139, \"id\": 5.609, \"od\": 5.887}, {\"d\": \"256\", \"cs\": 0.139, \"id\": 5.734, \"od\": 6.012}, {\"d\": \"257\", \"cs\": 0.139, \"id\": 5.859, \"od\": 6.137}, {\"d\": \"258\", \"cs\": 0.139, \"id\": 5.984, \"od\": 6.262}, {\"d\": \"259\", \"cs\": 0.139, \"id\": 6.234, \"od\": 6.512}, {\"d\": \"260\", \"cs\": 0.139, \"id\": 6.484, \"od\": 6.762}, {\"d\": \"261\", \"cs\": 0.139, \"id\": 6.734, \"od\": 7.012}, {\"d\": \"262\", \"cs\": 0.139, \"id\": 6.984, \"od\": 7.262}, {\"d\": \"263\", \"cs\": 0.139, \"id\": 7.234, \"od\": 7.512}, {\"d\": \"264\", \"cs\": 0.139, \"id\": 7.484, \"od\": 7.762}, {\"d\": \"265\", \"cs\": 0.139, \"id\": 7.734, \"od\": 8.012}, {\"d\": \"266\", \"cs\": 0.139, \"id\": 7.984, \"od\": 8.262}, {\"d\": \"267\", \"cs\": 0.139, \"id\": 8.234, \"od\": 8.512}, {\"d\": \"268\", \"cs\": 0.139, \"id\": 8.484, \"od\": 8.762}, {\"d\": \"269\", \"cs\": 0.139, \"id\": 8.734, \"od\": 9.012}, {\"d\": \"270\", \"cs\": 0.139, \"id\": 8.984, \"od\": 9.262}, {\"d\": \"271\", \"cs\": 0.139, \"id\": 9.234, \"od\": 9.512}, {\"d\": \"272\", \"cs\": 0.139, \"id\": 9.484, \"od\": 9.762}, {\"d\": \"273\", \"cs\": 0.139, \"id\": 9.734, \"od\": 10.012}, {\"d\": \"274\", \"cs\": 0.139, \"id\": 9.984, \"od\": 10.262}, {\"d\": \"275\", \"cs\": 0.139, \"id\": 10.484, \"od\": 10.762}, {\"d\": \"276\", \"cs\": 0.139, \"id\": 10.984, \"od\": 11.262}, {\"d\": \"277\", \"cs\": 0.139, \"id\": 11.484, \"od\": 11.762}, {\"d\": \"278\", \"cs\": 0.139, \"id\": 11.984, \"od\": 12.262}, {\"d\": \"279\", \"cs\": 0.139, \"id\": 12.984, \"od\": 13.262}, {\"d\": \"280\", \"cs\": 0.139, \"id\": 13.984, \"od\": 14.262}, {\"d\": \"281\", \"cs\": 0.139, \"id\": 14.984, \"od\": 15.262}, {\"d\": \"282\", \"cs\": 0.139, \"id\": 15.955, \"od\": 16.233}, {\"d\": \"283\", \"cs\": 0.139, \"id\": 16.955, \"od\": 17.233}, {\"d\": \"284\", \"cs\": 0.139, \"id\": 17.955, \"od\": 18.233}, {\"d\": \"309\", \"cs\": 0.21, \"id\": 0.412, \"od\": 0.832}, {\"d\": \"310\", \"cs\": 0.21, \"id\": 0.475, \"od\": 0.895}, {\"d\": \"311\", \"cs\": 0.21, \"id\": 0.537, \"od\": 0.957}, {\"d\": \"312\", \"cs\": 0.21, \"id\": 0.6, \"od\": 1.02}, {\"d\": \"313\", \"cs\": 0.21, \"id\": 0.662, \"od\": 1.082}, {\"d\": \"314\", \"cs\": 0.21, \"id\": 0.725, \"od\": 1.145}, {\"d\": \"315\", \"cs\": 0.21, \"id\": 0.787, \"od\": 1.207}, {\"d\": \"316\", \"cs\": 0.21, \"id\": 0.85, \"od\": 1.27}, {\"d\": \"317\", \"cs\": 0.21, \"id\": 0.912, \"od\": 1.332}, {\"d\": \"318\", \"cs\": 0.21, \"id\": 0.975, \"od\": 1.395}, {\"d\": \"319\", \"cs\": 0.21, \"id\": 1.037, \"od\": 1.457}, {\"d\": \"320\", \"cs\": 0.21, \"id\": 1.1, \"od\": 1.52}, {\"d\": \"321\", \"cs\": 0.21, \"id\": 1.162, \"od\": 1.582}, {\"d\": \"322\", \"cs\": 0.21, \"id\": 1.225, \"od\": 1.645}, {\"d\": \"323\", \"cs\": 0.21, \"id\": 1.287, \"od\": 1.707}, {\"d\": \"324\", \"cs\": 0.21, \"id\": 1.35, \"od\": 1.77}, {\"d\": \"325\", \"cs\": 0.21, \"id\": 1.475, \"od\": 1.895}, {\"d\": \"326\", \"cs\": 0.21, \"id\": 1.6, \"od\": 2.02}, {\"d\": \"327\", \"cs\": 0.21, \"id\": 1.725, \"od\": 2.145}, {\"d\": \"328\", \"cs\": 0.21, \"id\": 1.85, \"od\": 2.27}, {\"d\": \"329\", \"cs\": 0.21, \"id\": 1.975, \"od\": 2.395}, {\"d\": \"330\", \"cs\": 0.21, \"id\": 2.1, \"od\": 2.52}, {\"d\": \"331\", \"cs\": 0.21, \"id\": 2.225, \"od\": 2.645}, {\"d\": \"332\", \"cs\": 0.21, \"id\": 2.35, \"od\": 2.77}, {\"d\": \"333\", \"cs\": 0.21, \"id\": 2.475, \"od\": 2.895}, {\"d\": \"334\", \"cs\": 0.21, \"id\": 2.6, \"od\": 3.02}, {\"d\": \"335\", \"cs\": 0.21, \"id\": 2.725, \"od\": 3.145}, {\"d\": \"336\", \"cs\": 0.21, \"id\": 2.85, \"od\": 3.27}, {\"d\": \"337\", \"cs\": 0.21, \"id\": 2.975, \"od\": 3.395}, {\"d\": \"338\", \"cs\": 0.21, \"id\": 3.1, \"od\": 3.52}, {\"d\": \"339\", \"cs\": 0.21, \"id\": 3.225, \"od\": 3.645}, {\"d\": \"340\", \"cs\": 0.21, \"id\": 3.35, \"od\": 3.77}, {\"d\": \"341\", \"cs\": 0.21, \"id\": 3.475, \"od\": 3.895}, {\"d\": \"342\", \"cs\": 0.21, \"id\": 3.6, \"od\": 4.02}, {\"d\": \"343\", \"cs\": 0.21, \"id\": 3.725, \"od\": 4.145}, {\"d\": \"344\", \"cs\": 0.21, \"id\": 3.85, \"od\": 4.27}, {\"d\": \"345\", \"cs\": 0.21, \"id\": 3.975, \"od\": 4.395}, {\"d\": \"346\", \"cs\": 0.21, \"id\": 4.1, \"od\": 4.52}, {\"d\": \"347\", \"cs\": 0.21, \"id\": 4.225, \"od\": 4.645}, {\"d\": \"348\", \"cs\": 0.21, \"id\": 4.35, \"od\": 4.77}, {\"d\": \"349\", \"cs\": 0.21, \"id\": 4.475, \"od\": 4.895}, {\"d\": \"350\", \"cs\": 0.21, \"id\": 4.6, \"od\": 5.02}, {\"d\": \"351\", \"cs\": 0.21, \"id\": 4.725, \"od\": 5.145}, {\"d\": \"352\", \"cs\": 0.21, \"id\": 4.85, \"od\": 5.27}, {\"d\": \"353\", \"cs\": 0.21, \"id\": 4.975, \"od\": 5.395}, {\"d\": \"354\", \"cs\": 0.21, \"id\": 5.1, \"od\": 5.52}, {\"d\": \"355\", \"cs\": 0.21, \"id\": 5.225, \"od\": 5.645}, {\"d\": \"356\", \"cs\": 0.21, \"id\": 5.35, \"od\": 5.77}, {\"d\": \"357\", \"cs\": 0.21, \"id\": 5.475, \"od\": 5.895}, {\"d\": \"358\", \"cs\": 0.21, \"id\": 5.6, \"od\": 6.02}, {\"d\": \"359\", \"cs\": 0.21, \"id\": 5.725, \"od\": 6.145}, {\"d\": \"360\", \"cs\": 0.21, \"id\": 5.85, \"od\": 6.27}, {\"d\": \"361\", \"cs\": 0.21, \"id\": 5.975, \"od\": 6.395}, {\"d\": \"362\", \"cs\": 0.21, \"id\": 6.225, \"od\": 6.645}, {\"d\": \"363\", \"cs\": 0.21, \"id\": 6.475, \"od\": 6.895}, {\"d\": \"364\", \"cs\": 0.21, \"id\": 6.725, \"od\": 7.145}, {\"d\": \"365\", \"cs\": 0.21, \"id\": 6.975, \"od\": 7.395}, {\"d\": \"366\", \"cs\": 0.21, \"id\": 7.225, \"od\": 7.645}, {\"d\": \"367\", \"cs\": 0.21, \"id\": 7.475, \"od\": 7.895}, {\"d\": \"368\", \"cs\": 0.21, \"id\": 7.725, \"od\": 8.145}, {\"d\": \"369\", \"cs\": 0.21, \"id\": 7.975, \"od\": 8.395}, {\"d\": \"370\", \"cs\": 0.21, \"id\": 8.225, \"od\": 8.645}, {\"d\": \"371\", \"cs\": 0.21, \"id\": 8.475, \"od\": 8.895}, {\"d\": \"372\", \"cs\": 0.21, \"id\": 8.725, \"od\": 9.145}, {\"d\": \"373\", \"cs\": 0.21, \"id\": 8.975, \"od\": 9.395}, {\"d\": \"374\", \"cs\": 0.21, \"id\": 9.225, \"od\": 9.645}, {\"d\": \"375\", \"cs\": 0.21, \"id\": 9.475, \"od\": 9.895}, {\"d\": \"376\", \"cs\": 0.21, \"id\": 9.725, \"od\": 10.145}, {\"d\": \"377\", \"cs\": 0.21, \"id\": 9.975, \"od\": 10.395}, {\"d\": \"378\", \"cs\": 0.21, \"id\": 10.475, \"od\": 10.895}, {\"d\": \"379\", \"cs\": 0.21, \"id\": 10.975, \"od\": 11.395}, {\"d\": \"380\", \"cs\": 0.21, \"id\": 11.475, \"od\": 11.895}, {\"d\": \"381\", \"cs\": 0.21, \"id\": 11.975, \"od\": 12.395}, {\"d\": \"382\", \"cs\": 0.21, \"id\": 12.975, \"od\": 13.395}, {\"d\": \"383\", \"cs\": 0.21, \"id\": 13.975, \"od\": 14.395}, {\"d\": \"384\", \"cs\": 0.21, \"id\": 14.975, \"od\": 15.395}, {\"d\": \"385\", \"cs\": 0.21, \"id\": 15.955, \"od\": 16.375}, {\"d\": \"386\", \"cs\": 0.21, \"id\": 16.955, \"od\": 17.375}, {\"d\": \"387\", \"cs\": 0.21, \"id\": 17.955, \"od\": 18.375}, {\"d\": \"388\", \"cs\": 0.21, \"id\": 18.955, \"od\": 19.375}, {\"d\": \"389\", \"cs\": 0.21, \"id\": 19.955, \"od\": 20.375}, {\"d\": \"390\", \"cs\": 0.21, \"id\": 20.955, \"od\": 21.375}, {\"d\": \"391\", \"cs\": 0.21, \"id\": 21.955, \"od\": 22.375}, {\"d\": \"392\", \"cs\": 0.21, \"id\": 22.94, \"od\": 23.36}, {\"d\": \"393\", \"cs\": 0.21, \"id\": 23.94, \"od\": 24.36}, {\"d\": \"394\", \"cs\": 0.21, \"id\": 24.94, \"od\": 25.36}, {\"d\": \"395\", \"cs\": 0.21, \"id\": 25.94, \"od\": 26.36}, {\"d\": \"425\", \"cs\": 0.275, \"id\": 4.475, \"od\": 5.025}, {\"d\": \"426\", \"cs\": 0.275, \"id\": 4.6, \"od\": 5.15}, {\"d\": \"427\", \"cs\": 0.275, \"id\": 4.725, \"od\": 5.275}, {\"d\": \"428\", \"cs\": 0.275, \"id\": 4.85, \"od\": 5.4}, {\"d\": \"429\", \"cs\": 0.275, \"id\": 4.975, \"od\": 5.525}, {\"d\": \"430\", \"cs\": 0.275, \"id\": 5.1, \"od\": 5.65}, {\"d\": \"431\", \"cs\": 0.275, \"id\": 5.225, \"od\": 5.775}, {\"d\": \"432\", \"cs\": 0.275, \"id\": 5.35, \"od\": 5.9}, {\"d\": \"433\", \"cs\": 0.275, \"id\": 5.475, \"od\": 6.025}, {\"d\": \"434\", \"cs\": 0.275, \"id\": 5.6, \"od\": 6.15}, {\"d\": \"435\", \"cs\": 0.275, \"id\": 5.725, \"od\": 6.275}, {\"d\": \"436\", \"cs\": 0.275, \"id\": 5.85, \"od\": 6.4}, {\"d\": \"437\", \"cs\": 0.275, \"id\": 5.975, \"od\": 6.525}, {\"d\": \"438\", \"cs\": 0.275, \"id\": 6.225, \"od\": 6.775}, {\"d\": \"439\", \"cs\": 0.275, \"id\": 6.475, \"od\": 7.025}, {\"d\": \"440\", \"cs\": 0.275, \"id\": 6.725, \"od\": 7.275}, {\"d\": \"441\", \"cs\": 0.275, \"id\": 6.975, \"od\": 7.525}, {\"d\": \"442\", \"cs\": 0.275, \"id\": 7.225, \"od\": 7.775}, {\"d\": \"443\", \"cs\": 0.275, \"id\": 7.475, \"od\": 8.025}, {\"d\": \"444\", \"cs\": 0.275, \"id\": 7.725, \"od\": 8.275}, {\"d\": \"445\", \"cs\": 0.275, \"id\": 7.975, \"od\": 8.525}, {\"d\": \"446\", \"cs\": 0.275, \"id\": 8.475, \"od\": 9.025}, {\"d\": \"447\", \"cs\": 0.275, \"id\": 8.975, \"od\": 9.525}, {\"d\": \"448\", \"cs\": 0.275, \"id\": 9.475, \"od\": 10.025}, {\"d\": \"449\", \"cs\": 0.275, \"id\": 9.975, \"od\": 10.525}, {\"d\": \"450\", \"cs\": 0.275, \"id\": 10.475, \"od\": 11.025}, {\"d\": \"451\", \"cs\": 0.275, \"id\": 10.975, \"od\": 11.525}, {\"d\": \"452\", \"cs\": 0.275, \"id\": 11.475, \"od\": 12.025}, {\"d\": \"453\", \"cs\": 0.275, \"id\": 11.975, \"od\": 12.525}, {\"d\": \"454\", \"cs\": 0.275, \"id\": 12.475, \"od\": 13.025}, {\"d\": \"455\", \"cs\": 0.275, \"id\": 12.975, \"od\": 13.525}, {\"d\": \"456\", \"cs\": 0.275, \"id\": 13.475, \"od\": 14.025}, {\"d\": \"457\", \"cs\": 0.275, \"id\": 13.975, \"od\": 14.525}, {\"d\": \"458\", \"cs\": 0.275, \"id\": 14.475, \"od\": 15.025}, {\"d\": \"459\", \"cs\": 0.275, \"id\": 14.975, \"od\": 15.525}, {\"d\": \"460\", \"cs\": 0.275, \"id\": 15.475, \"od\": 16.025}, {\"d\": \"461\", \"cs\": 0.275, \"id\": 15.955, \"od\": 16.505}, {\"d\": \"462\", \"cs\": 0.275, \"id\": 16.455, \"od\": 17.005}, {\"d\": \"463\", \"cs\": 0.275, \"id\": 16.955, \"od\": 17.505}, {\"d\": \"464\", \"cs\": 0.275, \"id\": 17.455, \"od\": 18.005}, {\"d\": \"465\", \"cs\": 0.275, \"id\": 17.955, \"od\": 18.505}, {\"d\": \"466\", \"cs\": 0.275, \"id\": 18.455, \"od\": 19.005}, {\"d\": \"467\", \"cs\": 0.275, \"id\": 18.955, \"od\": 19.505}, {\"d\": \"468\", \"cs\": 0.275, \"id\": 19.455, \"od\": 20.005}, {\"d\": \"469\", \"cs\": 0.275, \"id\": 19.955, \"od\": 20.505}, {\"d\": \"470\", \"cs\": 0.275, \"id\": 20.475, \"od\": 21.025}, {\"d\": \"471\", \"cs\": 0.275, \"id\": 21.955, \"od\": 22.505}, {\"d\": \"472\", \"cs\": 0.275, \"id\": 22.94, \"od\": 23.49}, {\"d\": \"473\", \"cs\": 0.275, \"id\": 23.94, \"od\": 24.49}, {\"d\": \"474\", \"cs\": 0.275, \"id\": 24.94, \"od\": 25.49}, {\"d\": \"475\", \"cs\": 0.275, \"id\": 25.94, \"od\": 26.49}];   \/\/ [{d,cs,id,od}] inches, AS568, from GOR inventory\r\n  \/\/ Squeeze % is judged BY CROSS-SECTION (not one flat band):\r\n  \/\/  - Inch (AS568) cross-sections use the published AS568 squeeze tables (Parker O-Ring Handbook ORD 5700) shown on \/o-ring-groove-design\/.\r\n  \/\/  - Metric cross-sections use the same cross-section curve, per ISO 3601-2 (Housing dimensions); off-standard CS are labelled \"general guidance\".\r\n  var SQ_CS = [0.070,0.103,0.139,0.210,0.275];                 \/\/ AS568 anchor cross-sections (inch)\r\n  var SQ_TAB = {                                               \/\/ [min,max] squeeze % at each anchor CS, by seal mode\r\n    face:    [[15,25],[10,17],[9,16],[8,14],[11,16]],\r\n    static:  [[22,32],[17,24],[16,23],[15,21],[15,20]],\r\n    dynamic: [[15,25],[10,17],[9,16],[8,14],[11,16]]\r\n  };\r\n  var MODE_IDEAL = { static:20, dynamic:12, face:20 };         \/\/ representative ideal \u2014 used only for the custom-size suggestion\r\n  function modeOf(){ return state.seal.indexOf(\"face\")===0 ? \"face\" : state.motion; }\r\n  function sqRange(cs, mode){                                  \/\/ -> [min,max,ideal] interpolated across cross-section\r\n    var tab=SQ_TAB[mode]||SQ_TAB.static, xs=SQ_CS, n=xs.length, lo, hi, i;\r\n    if(cs<=xs[0]){ lo=tab[0][0]; hi=tab[0][1]; }\r\n    else if(cs>=xs[n-1]){ lo=tab[n-1][0]; hi=tab[n-1][1]; }\r\n    else { for(i=0;i<n-1;i++){ if(cs>=xs[i]&&cs<=xs[i+1]){ var t=(cs-xs[i])\/(xs[i+1]-xs[i]);\r\n            lo=tab[i][0]+t*(tab[i+1][0]-tab[i][0]); hi=tab[i][1]+t*(tab[i+1][1]-tab[i][1]); break; } } }\r\n    return [lo,hi,(lo+hi)\/2];\r\n  }\r\n  function isAnchorCS(cs){ for(var i=0;i<SQ_CS.length;i++){ if(Math.abs(cs-SQ_CS[i])<=0.0015) return true; } return false; }\r\n  var STRETCH_MAX = 5.0;   \/\/ piston ID install stretch %\r\n  var FILL_MAX = 90.0;     \/\/ gland fill %\r\n  var SHOP = \"https:\/\/www.globaloring.com\/shop\/?filter_group=o-rings&size=\";\r\n  var RFQ  = \"https:\/\/www.globaloring.com\/rfq\/\";\r\n  var PRODUCT = \"https:\/\/www.globaloring.com\/product\/\";\r\n  \/\/ ===== METRIC SIZES (lazy-loaded from an external JSON so the page stays light) =====\r\n  \/\/ After uploading the metric JSON to WordPress, paste its full URL between the quotes below.\r\n  var METRIC_URL = \"https:\/\/www.globaloring.com\/wp-content\/uploads\/2026\/06\/o-ring-groove-finder.metric-sizes.json\";   \/\/ live metric data (uploaded 2026-06-04)\r\n  var METRIC=null, metricState=\"idle\";\r\n  function loadMetric(cb){\r\n    if(metricState===\"loaded\"||metricState===\"error\"||metricState===\"off\"){ cb&&cb(); return; }\r\n    if(metricState===\"loading\"){ return; }\r\n    if(!METRIC_URL){ metricState=\"off\"; cb&&cb(); return; }\r\n    metricState=\"loading\";\r\n    fetch(METRIC_URL).then(function(r){return r.json();}).then(function(j){\r\n      var arr=(j&&j.sizes)||[];\r\n      METRIC=arr.map(function(row){ var id=row[0],cs=row[1],slug=row[2];\r\n        return {sys:\"M\",d:null,slug:slug,id_mm:id,cs_mm:cs,cs:cs\/25.4,id:id\/25.4,od:(id+2*cs)\/25.4}; });\r\n      metricState=\"loaded\"; cb&&cb();\r\n    }).catch(function(){ metricState=\"error\"; METRIC=null; cb&&cb(); });\r\n  }\r\n  function fmtN(x){ return (Math.round(x*100)\/100).toString(); }\r\n  window.__GOR_AS568 = SIZES;   \/\/ shared with the Design-a-Groove recommender below\r\n\r\n  var root = document.getElementById(\"gorFinder\");\r\n  var state = { seal:\"piston\", motion:\"static\", unit:\"in\" };\r\n  var SEALHINT = {\r\n    \"piston\":\"Groove cut around a piston or shaft; the O-ring is squeezed between the groove bottom and the bore wall. Most common case \u2014 pick it if unsure.\",\r\n    \"rod\":\"Groove cut inside a bore\/housing; a rod or shaft passes through and the O-ring seals against it.\",\r\n    \"face-internal\":\"Flat groove in a face\/flange with pressure pushing outward (from the inside). The O-ring seals on the groove's outer wall.\",\r\n    \"face-external\":\"Flat groove in a face\/flange with pressure pushing inward (from the outside). The O-ring seals on the groove's inner wall.\"\r\n  };\r\n\r\n  function $(id){ return root.querySelector(id); }\r\n  function num(el){ var v=parseFloat(el.value); return isNaN(v)?null:v; }\r\n  function toIn(v){ return state.unit===\"mm\" ? v\/25.4 : v; }       \/\/ input -> inches\r\n  function fmtIn(v){ return v.toFixed(3)+\"\u2033\"; }\r\n  function fmtMm(v){ return (v*25.4).toFixed(2)+\" mm\"; }\r\n  function dimBoth(v){ return state.unit===\"mm\" ? (fmtMm(v)+\" (\"+fmtIn(v)+\")\") : (fmtIn(v)+\" (\"+fmtMm(v)+\")\"); }\r\n\r\n  \/* squeeze range is now per cross-section \u2014 see sqRange()\/modeOf() above *\/\r\n\r\n  function evaluate(gID, gOD, depth, width){\r\n    if(depth==null && gID!=null && gOD!=null) depth=(gOD-gID)\/2;\r\n    var gland=depth;\r\n    var mode=modeOf();\r\n    var out=[];\r\n    var CANDS=SIZES.map(function(s){return {sys:\"A\",d:s.d,slug:null,id_mm:null,cs_mm:null,cs:s.cs,id:s.id,od:s.od};});\r\n    if(METRIC&&METRIC.length) CANDS=CANDS.concat(METRIC);\r\n    for(var i=0;i<CANDS.length;i++){\r\n      var s=CANDS[i], cs=s.cs, oid=s.id, ood=s.od;\r\n      if(cs<=gland) continue;                     \/\/ no squeeze => leaks\r\n      var sq=(cs-gland)\/cs*100;\r\n      var rng=sqRange(cs,mode), smin=rng[0], smax=rng[1], sid=rng[2];   \/\/ squeeze range for THIS cross-section\r\n      var fill=(width>0&&depth>0)?(Math.PI\/4*cs*cs)\/(width*depth)*100:null;\r\n      var dimErr, dimLabel, dimOk;\r\n      if(state.seal===\"piston\"){ dimErr=(gID-oid)\/oid*100; dimOk=(dimErr>=-1&&dimErr<=STRETCH_MAX); dimLabel=\"Stretch\"; }\r\n      else if(state.seal===\"rod\"){ dimErr=(ood-gOD)\/ood*100; dimOk=(dimErr>=-1&&dimErr<=3); dimLabel=\"OD fit\"; }\r\n      else if(state.seal===\"face-internal\"){ dimErr=(ood-gOD)\/ood*100; dimOk=Math.abs(dimErr)<=3; dimLabel=\"OD vs groove OD\"; }\r\n      else { dimErr=(gID-oid)\/oid*100; dimOk=Math.abs(dimErr)<=3; dimLabel=\"ID vs groove ID\"; }\r\n      var sqOk=(sq>=smin&&sq<=smax);\r\n      var fillOk=(fill==null)||(fill<=FILL_MAX);\r\n      \/\/ source of the squeeze range, shown on each result card\r\n      var sqSrc=(s.sys===\"M\") ? (\"ISO 3601-2\"+(isAnchorCS(cs)?\"\":\" general guidance\")) : (\"AS568 \u2212\"+s.d.charAt(0)+\"XX \u00b7 Parker ORD 5700\");\r\n      var score=Math.abs(sq-sid)+Math.abs(dimErr)*1.5+(fill?Math.max(0,fill-FILL_MAX)*2:0)+(sqOk?0:8)+(dimOk?0:8);\r\n      out.push({sys:s.sys,d:s.d,slug:s.slug,id_mm:s.id_mm,cs_mm:s.cs_mm,cs:cs,id:oid,od:ood,sq:sq,fill:fill,dim:dimErr,dimLabel:dimLabel,\r\n                sqMin:smin,sqMax:smax,sqIdeal:sid,sqSrc:sqSrc,\r\n                ok:(sqOk&&dimOk&&fillOk),sqOk:sqOk,dimOk:dimOk,fillOk:fillOk,score:score});\r\n    }\r\n    out.sort(function(a,b){return a.score-b.score;});\r\n    return {list:out, depth:depth, mode:mode};\r\n  }\r\n\r\n  function mc(ok){ return ok?\"ok\":\"bad\"; }\r\n  function metric(k,v,cls,note){\r\n    return '<div class=\"gc-metric\"><span class=\"mk\">'+k+'<\/span><span class=\"mv\">'+v+\r\n           (note?'<span class=\"mc '+cls+'\">'+note+'<\/span>':'')+'<\/span><\/div>';\r\n  }\r\n\r\n  function scnCard(r, tag, depth){\r\n    var isBest=tag.indexOf(\"Best\")===0, isClose=tag.indexOf(\"Closest\")===0;\r\n    var cls = isBest?\"is-best\":(isClose?\"is-near\":\"is-alt\");\r\n    var tcls = isBest?\"best\":(isClose?\"near\":\"alt\");\r\n    \/\/ squeeze cell \u2014 judged against this size's own cross-section range\r\n    var sqNote = r.sqOk?\"in range\":(r.sq>r.sqMax?\"too tight\":\"too loose\");\r\n    var sqCls  = r.sqOk?\"ok\":(r.sq>r.sqMax?\"bad\":\"bad\");\r\n    var fillNote = r.fill==null?\"\":(r.fillOk?\"ok\":(r.fill>100?\"won't fit\":\"tight\"));\r\n    var fillCls  = r.fill==null?\"ok\":(r.fillOk?\"ok\":(r.fill>100?\"bad\":\"warn\"));\r\n    var dimNote = r.dimOk?\"ok\":(r.dim<0?\"loose\":\"too much\");\r\n    var dimCls  = r.dimOk?\"ok\":\"bad\";\r\n    var why = r.ok ? \"All three checks pass for this seal type.\"\r\n                   : \"Closest standard size, but \"+\r\n                     [!r.sqOk?\"squeeze is \"+(r.sq>r.sqMax?\"too high\":\"too low\"):null,\r\n                      !r.fillOk?(r.fill>100?\"the O-ring is too big for this groove\":\"the groove is nearly full\"):null,\r\n                      !r.dimOk?\"the diameter doesn't match well\":null].filter(Boolean).join(\", \")+\".\";\r\n    var sizeLine = dimBoth(r.id)+\" ID \u00d7 \"+dimBoth(r.cs)+\" CS\";\r\n    var head='AS568&nbsp;-'+r.d, shopHref=SHOP+r.d, shopLabel='Shop size -'+r.d+' &rarr;';\r\n    if(r.sys===\"M\"){ var idmm=(r.id_mm!=null?r.id_mm:r.id*25.4), csmm=(r.cs_mm!=null?r.cs_mm:r.cs*25.4);\r\n      head='Metric '+fmtN(idmm)+'&times;'+fmtN(csmm)+' mm';\r\n      sizeLine=fmtN(idmm)+' mm ID &times; '+fmtN(csmm)+' mm CS &nbsp;('+r.id.toFixed(3)+'&Prime; &times; '+r.cs.toFixed(3)+'&Prime;)';\r\n      shopHref=SHOP+encodeURIComponent(csmm+'X'+idmm); shopLabel='Shop this size &rarr;'; }   \/\/ size-landing (all materials), matches AS568 behavior\r\n    return '<div class=\"gc-scn '+cls+'\">'+\r\n      '<div class=\"scn-top\"><div class=\"scn-size\">'+head+' <small>'+sizeLine+'<\/small><\/div>'+\r\n      '<span class=\"scn-tag '+tcls+'\">'+tag+'<\/span><\/div>'+\r\n      '<div class=\"gc-metrics\">'+\r\n        metric(\"Squeeze\", r.sq.toFixed(1)+\"%\", sqCls, sqNote)+\r\n        metric(r.dimLabel, (r.dim>=0?\"+\":\"\")+r.dim.toFixed(1)+\"%\", dimCls, dimNote)+\r\n        metric(\"Gland fill\", r.fill==null?\"\u2014\":r.fill.toFixed(0)+\"%\", fillCls, fillNote)+\r\n      '<\/div>'+\r\n      '<div class=\"scn-srcline\" style=\"margin:2px 2px 6px;font-size:11px;color:#6b7280;line-height:1.4\" title=\"Squeeze is judged against the recommended range for this cross-section. Inch sizes use the AS568 tables (Parker O-Ring Handbook ORD 5700); metric sizes use ISO 3601-2.\">Squeeze target '+Math.round(r.sqMin)+'\u2013'+Math.round(r.sqMax)+'% \u00b7 '+r.sqSrc+'<\/div>'+\r\n      '<div class=\"scn-foot\"><span class=\"why\">'+why+'<\/span>'+\r\n        '<a class=\"scn-cta shop\" href=\"'+shopHref+'\" target=\"_blank\" rel=\"noopener\">'+shopLabel+'<\/a>'+\r\n        '<a class=\"scn-cta quote\" href=\"'+RFQ+'\" target=\"_blank\" rel=\"noopener\">Quote this size<\/a>'+\r\n      '<\/div><\/div>';\r\n  }\r\n\r\n  function customPanel(depth, gID, gOD, idealPct, hasPass){\r\n    var sid=idealPct;\r\n    var csIdeal = depth\/(1-sid\/100);\r\n    var idIdeal = (state.seal===\"rod\"||state.seal===\"face-internal\") ? (gOD-2*csIdeal) : gID;\r\n    var spec = \"O-ring ID \u2248 \"+dimBoth(idIdeal)+\" \u00b7 cross-section \u2248 \"+dimBoth(csIdeal)+\r\n               \" \u00b7 groove: ID \"+dimBoth(gID)+\", OD \"+dimBoth(gOD)+\", depth \"+dimBoth(depth);\r\n    var head = hasPass ? \"Prefer an exact fit? A custom size hits the ideal squeeze\" : \"This looks like a non-standard groove\";\r\n    var lead = hasPass\r\n      ? \"The standard size(s) above will work. If you want squeeze right in the middle of the range, a made-to-spec O-ring is the exact match:\"\r\n      : \"No off-the-shelf AS568 size lands cleanly in this groove \u2014 which is normal for grooves that weren\u2019t cut to a standard. Here\u2019s the O-ring that fits it, which we can make to order:\";\r\n    return '<div class=\"gc-custom\">'+\r\n      '<h4>'+head+'<\/h4><p>'+lead+'<\/p>'+\r\n      '<div class=\"gc-specbox\" id=\"fSpec\">'+spec+'<\/div>'+\r\n      '<div class=\"gc-actions\">'+\r\n        '<button type=\"button\" class=\"gc-btn ghost\" id=\"fCopy\">Copy these specs<\/button>'+\r\n        '<a class=\"gc-btn primary\" style=\"text-decoration:none;display:inline-block\" href=\"'+RFQ+'\" target=\"_blank\" rel=\"noopener\">Request this custom O-ring<\/a>'+\r\n      '<\/div>'+\r\n      '<p style=\"margin-top:10px;font-size:12px;color:#6b7280\">Options for non-standard sizes: '+\r\n        '<a href=\"https:\/\/www.globaloring.com\/custom-molded-o-rings\/\" target=\"_blank\" rel=\"noopener\">custom molded O-rings<\/a>, '+\r\n        '<a href=\"https:\/\/www.globaloring.com\/vulcanized-rings\/\" target=\"_blank\" rel=\"noopener\">vulcanized (spliced) O-rings<\/a> for larger IDs, or call <a href=\"tel:8324485550\">832-448-5550<\/a> and read off your four measurements.<\/p>'+\r\n      '<\/div>';\r\n  }\r\n\r\n  function render(){\r\n    var box=$(\"#fResults\");\r\n    if(metricState===\"idle\"){ loadMetric(function(){ if(metricState===\"loaded\") render(); }); }\r\n    var gID=num($(\"#fID\")), gOD=num($(\"#fOD\")), depth=num($(\"#fDepth\")), width=num($(\"#fWidth\"));\r\n    \/\/ need at least (ID & OD) or depth, plus width\r\n    if((gID==null||gOD==null) && depth==null){\r\n      box.innerHTML='<div class=\"gc-empty\">Enter at least the groove ID and OD (or a depth), plus the width, then press <strong>Find my O-ring<\/strong>.<\/div>'; return;\r\n    }\r\n    var giIn=gID!=null?toIn(gID):null, goIn=gOD!=null?toIn(gOD):null,\r\n        dIn=depth!=null?toIn(depth):null, wIn=width!=null?toIn(width):null;\r\n    if(giIn!=null&&goIn!=null&&goIn<=giIn){\r\n      box.innerHTML='<div class=\"gc-empty\">Groove OD must be larger than groove ID. Double-check the two diameters.<\/div>'; return;\r\n    }\r\n    var isFace = state.seal.indexOf(\"face\")===0;\r\n    if(isFace){\r\n      if(wIn==null && giIn!=null && goIn!=null) wIn=(goIn-giIn)\/2;\r\n      if(dIn==null){ box.innerHTML='<div class=\"gc-empty\">For a face seal, enter the <strong>axial groove depth<\/strong> (how deep the groove is cut into the face).<\/div>'; return; }\r\n      if(wIn==null){ box.innerHTML='<div class=\"gc-empty\">Add the groove <strong>width<\/strong> (or the ID and OD so we can work it out).<\/div>'; return; }\r\n    } else {\r\n      if(dIn==null && giIn!=null && goIn!=null) dIn=(goIn-giIn)\/2;\r\n      if(wIn==null){ box.innerHTML='<div class=\"gc-empty\">Add the groove <strong>width<\/strong> so we can check gland fill (how much room the O-ring has).<\/div>'; return; }\r\n      if(dIn==null){ box.innerHTML='<div class=\"gc-empty\">Enter the groove <strong>depth<\/strong>, or both ID and OD so we can work it out.<\/div>'; return; }\r\n    }\r\n    var ev=evaluate(giIn,goIn,dIn,wIn);\r\n    var depthUsed=ev.depth, mode=ev.mode;\r\n    if(depthUsed==null||depthUsed<=0){\r\n      box.innerHTML='<div class=\"gc-empty\">Couldn\u2019t work out the groove depth. Enter it directly.<\/div>'; return;\r\n    }\r\n    if(!isFace && depth==null){ $(\"#fDepth\").value=(state.unit===\"mm\"?(depthUsed*25.4):depthUsed).toFixed(3); }\r\n    if(isFace && width==null){ $(\"#fWidth\").value=(state.unit===\"mm\"?(wIn*25.4):wIn).toFixed(3); }\r\n\r\n    var allPass=ev.list.filter(function(r){return r.ok;});\r\n    var asPass=allPass.filter(function(r){return r.sys!==\"M\";});   \/\/ AS568 (inch)\r\n    var mPass =allPass.filter(function(r){return r.sys===\"M\";});   \/\/ metric\r\n    var asClosest=ev.list.filter(function(r){return r.sys!==\"M\";})[0];  \/\/ best AS568 even if it doesn't fully pass\r\n    var mClosest =ev.list.filter(function(r){return r.sys===\"M\";})[0];\r\n    var cards=[];\r\n    if(asPass.length){                       \/\/ inch fits -> AS568 leads, metric is the bonus option\r\n      cards.push({r:asPass[0],tag:\"Best match\"});\r\n      if(mPass.length) cards.push({r:mPass[0],tag:\"Also fits \u2014 metric\"});\r\n      if(asPass[1]&&cards.length<3) cards.push({r:asPass[1],tag:\"Alternative\"});\r\n    } else if(mPass.length){                 \/\/ metric fits but no standard inch size does -> always still surface an AS568\r\n      cards.push({r:mPass[0],tag:\"Best match\"});\r\n      if(asClosest) cards.push({r:asClosest,tag:\"Closest AS568\"});\r\n      if(mPass[1]&&cards.length<3) cards.push({r:mPass[1],tag:\"Alternative\"});\r\n    } else {                                 \/\/ nothing passes cleanly -> show the closest of each\r\n      if(asClosest) cards.push({r:asClosest,tag:\"Closest AS568\"});\r\n      if(mClosest) cards.push({r:mClosest,tag:\"Closest metric\"});\r\n    }\r\n    var html='';\r\n    html+='<div style=\"margin:18px 0 4px;font-size:13px;color:#4b5563\">Using gland depth <strong>'+dimBoth(depthUsed)+\r\n          '<\/strong> &middot; '+(state.seal.indexOf(\"face\")===0?\"face seal\":state.motion+\" seal\")+\r\n          '. Squeeze is judged <strong>by cross-section<\/strong> &mdash; inch sizes per AS568 \/ Parker O-Ring Handbook ORD&nbsp;5700, metric per ISO&nbsp;3601-2. Each result below shows the target range and source it was checked against.<\/div>';\r\n    html+='<div class=\"gc-scenarios\">';\r\n    if(cards.length){\r\n      cards.forEach(function(c){ html+=scnCard(c.r, c.tag, depthUsed); });\r\n    } else {\r\n      ev.list.slice(0,3).forEach(function(r){ html+=scnCard(r,\"Closest standard\",depthUsed); });\r\n    }\r\n    html+='<\/div>';\r\n    html+=customPanel(depthUsed, giIn!=null?giIn:(goIn-2*depthUsed), goIn!=null?goIn:(giIn+2*depthUsed), MODE_IDEAL[mode], allPass.length>0);\r\n    box.innerHTML=html;\r\n\r\n    var copyBtn=document.getElementById(\"fCopy\");\r\n    if(copyBtn){ copyBtn.addEventListener(\"click\",function(){\r\n      var t=document.getElementById(\"fSpec\").textContent;\r\n      if(navigator.clipboard){ navigator.clipboard.writeText(t); copyBtn.textContent=\"Copied \u2713\"; setTimeout(function(){copyBtn.textContent=\"Copy these specs\";},1500); }\r\n    }); }\r\n  }\r\n\r\n  \/\/ ---- 3-of-4 dimensions: auto-calculate & lock the dependent field ----\r\n  var FMAP={id:\"#fID\",od:\"#fOD\",depth:\"#fDepth\",width:\"#fWidth\"};\r\n  var fLocked=null;\r\n  function fLockEl(el,on){ if(!el)return; el.disabled=!!on; var c=el.closest(\".gc-dim\"); if(c)c.classList.toggle(\"is-locked\",!!on); }\r\n  function fRaw(el){ var x=parseFloat(el.value); return isNaN(x)?null:x; }\r\n  function fFmt(x){ return (Math.round(x*1000)\/1000).toString(); }\r\n  function syncLock(){\r\n    var isFace=state.seal.indexOf(\"face\")===0;\r\n    var third=isFace?\"width\":\"depth\", free=isFace?\"depth\":\"width\";\r\n    fLockEl($(FMAP[free]),false);\r\n    function uv(k){ if(k===fLocked) return null; return fRaw($(FMAP[k])); }\r\n    var vid=uv(\"id\"), vod=uv(\"od\"), vth=uv(third);\r\n    [\"id\",\"od\",third].forEach(function(k){ if(k!==fLocked) fLockEl($(FMAP[k]),false); });\r\n    var have=(vid!=null?1:0)+(vod!=null?1:0)+(vth!=null?1:0);\r\n    if(have>=2){\r\n      if(vid!=null&&vod!=null){ if(vod>vid){ fLocked=third; var e=$(FMAP[third]); e.value=fFmt((vod-vid)\/2); fLockEl(e,true);} else { fLocked=null; } }\r\n      else if(vid!=null&&vth!=null){ fLocked=\"od\"; var e2=$(FMAP.od); e2.value=fFmt(vid+2*vth); fLockEl(e2,true); }\r\n      else { if(vod>2*vth){ fLocked=\"id\"; var e3=$(FMAP.id); e3.value=fFmt(vod-2*vth); fLockEl(e3,true);} else { fLocked=null; } }\r\n    } else { fLocked=null; }\r\n  }\r\n  function resetLocks(){ fLocked=null; [\"id\",\"od\",\"depth\",\"width\"].forEach(function(k){ fLockEl($(FMAP[k]),false); }); }\r\n  [\"#fID\",\"#fOD\",\"#fDepth\",\"#fWidth\"].forEach(function(s){ var el=$(s); if(el) el.addEventListener(\"input\",syncLock); });\r\n\r\n  \/\/ wire toggles\r\n  $(\"#fSeal\").addEventListener(\"click\",function(e){var b=e.target.closest(\"button\");if(!b)return;state.seal=b.getAttribute(\"data-seal\");\r\n    $(\"#fSeal\").querySelectorAll(\"button\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);});\r\n    $(\"#fSealHint\").textContent=SEALHINT[state.seal];\r\n    $(\"#fMotion\").style.display = state.seal.indexOf(\"face\")===0 ? \"none\":\"flex\";\r\n    if(fLocked){ $(FMAP[fLocked]).value=\"\"; fLocked=null; } syncLock();\r\n    if($(\"#fResults\").innerHTML.trim()!==\"\") render();\r\n  });\r\n  $(\"#fMotion\").addEventListener(\"click\",function(e){var b=e.target.closest(\"button\");if(!b)return;state.motion=b.getAttribute(\"data-motion\");\r\n    $(\"#fMotion\").querySelectorAll(\"button\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);}); if($(\"#fResults\").innerHTML.trim()!==\"\")render();});\r\n  $(\"#fUnit\").addEventListener(\"click\",function(e){var b=e.target.closest(\"button\");if(!b)return;state.unit=b.getAttribute(\"data-unit\");\r\n    $(\"#fUnit\").querySelectorAll(\"button\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);});\r\n    root.querySelectorAll(\"[data-unitlbl]\").forEach(function(x){x.textContent=state.unit;});\r\n    syncLock();\r\n    if($(\"#fResults\").innerHTML.trim()!==\"\")render();});\r\n\r\n  $(\"#fGo\").addEventListener(\"click\",render);\r\n  $(\"#fClear\").addEventListener(\"click\",function(){[\"#fID\",\"#fOD\",\"#fDepth\",\"#fWidth\"].forEach(function(s){$(s).value=\"\";});resetLocks();$(\"#fResults\").innerHTML=\"\";});\r\n  root.querySelectorAll(\".gc-dim input\").forEach(function(inp){inp.addEventListener(\"keydown\",function(e){if(e.key===\"Enter\")render();});});\r\n})();\r\n<\/script>\r\n<script>\r\n\/* ============ ENGINEER AS568 DESIGN CALCULATOR (carried over, unchanged logic) ============ *\/\r\n(function(){\r\n  var DATA = {\r\n    series:{ \"0XX\":{cs:0.070,csTol:0.003},\"1XX\":{cs:0.103,csTol:0.004},\"2XX\":{cs:0.139,csTol:0.004},\"3XX\":{cs:0.210,csTol:0.005},\"4XX\":{cs:0.275,csTol:0.006} },\r\n    face:{\r\n      \"0XX\":{dMin:0.055,dMax:0.057,sqMin:0.010,sqMax:0.018,pctMin:15,pctMax:25,wlNom:0.103,wlTol:0.002,wvNom:0.084,wvTol:0.003,r1:0.010,r2:0.005},\r\n      \"1XX\":{dMin:0.088,dMax:0.090,sqMin:0.010,sqMax:0.018,pctMin:10,pctMax:17,wlNom:0.140,wlTol:0.003,wvNom:0.121,wvTol:0.003,r1:0.010,r2:0.005},\r\n      \"2XX\":{dMin:0.121,dMax:0.123,sqMin:0.012,sqMax:0.022,pctMin:9,pctMax:16,wlNom:0.180,wlTol:0.003,wvNom:0.160,wvTol:0.003,r1:0.018,r2:0.005},\r\n      \"3XX\":{dMin:0.185,dMax:0.188,sqMin:0.017,sqMax:0.030,pctMin:8,pctMax:14,wlNom:0.280,wlTol:0.003,wvNom:0.240,wvTol:0.003,r1:0.028,r2:0.005},\r\n      \"4XX\":{dMin:0.237,dMax:0.240,sqMin:0.029,sqMax:0.044,pctMin:11,pctMax:16,wlNom:0.352,wlTol:0.003,wvNom:0.310,wvTol:0.003,r1:0.028,r2:0.005}\r\n    },\r\n    dovetail:{\r\n      \"0XX\":{dNom:0.052,dTol:0.002,wNom:0.064,wTol:0.002,r1:0.015,r2:0.005},\r\n      \"1XX\":{dNom:0.078,dTol:0.003,wNom:0.088,wTol:0.003,r1:0.015,r2:0.010},\r\n      \"2XX\":{dNom:0.106,dTol:0.003,wNom:0.120,wTol:0.003,r1:0.031,r2:0.010},\r\n      \"3XX\":{dNom:0.164,dTol:0.004,wNom:0.176,wTol:0.003,r1:0.031,r2:0.015},\r\n      \"4XX\":{dNom:0.215,dTol:0.004,wNom:0.235,wTol:0.003,r1:0.063,r2:0.015}\r\n    },\r\n    static:{\r\n      \"0XX\":{dMin:0.050,dMax:0.052,sqMin:0.015,sqMax:0.023,pctMin:22,pctMax:32,wNom:0.095,wTol:0.002,w1bu:0.140,w2bu:0.207,hMax:0.002,r1:0.007,r2:0.005},\r\n      \"1XX\":{dMin:0.081,dMax:0.083,sqMin:0.017,sqMax:0.025,pctMin:17,pctMax:24,wNom:0.142,wTol:0.003,w1bu:0.173,w2bu:0.240,hMax:0.002,r1:0.007,r2:0.005},\r\n      \"2XX\":{dMin:0.111,dMax:0.113,sqMin:0.022,sqMax:0.032,pctMin:16,pctMax:23,wNom:0.189,wTol:0.003,w1bu:0.210,w2bu:0.277,hMax:0.002,r1:0.017,r2:0.005},\r\n      \"3XX\":{dMin:0.170,dMax:0.173,sqMin:0.032,sqMax:0.045,pctMin:15,pctMax:21,wNom:0.283,wTol:0.003,w1bu:0.313,w2bu:0.412,hMax:0.003,r1:0.027,r2:0.005},\r\n      \"4XX\":{dMin:0.226,dMax:0.229,sqMin:0.040,sqMax:0.055,pctMin:15,pctMax:20,wNom:0.377,wTol:0.003,w1bu:0.410,w2bu:0.540,hMax:0.003,r1:0.027,r2:0.005}\r\n    },\r\n    dynamic:{\r\n      \"0XX\":{dMin:0.055,dMax:0.057,sqMin:0.010,sqMax:0.018,pctMin:15,pctMax:25,wNom:0.095,wTol:0.002,w1bu:0.140,w2bu:0.207,hMax:0.002,r1:0.007,r2:0.005},\r\n      \"1XX\":{dMin:0.088,dMax:0.090,sqMin:0.010,sqMax:0.018,pctMin:10,pctMax:17,wNom:0.142,wTol:0.003,w1bu:0.173,w2bu:0.240,hMax:0.002,r1:0.007,r2:0.005},\r\n      \"2XX\":{dMin:0.121,dMax:0.123,sqMin:0.012,sqMax:0.022,pctMin:9,pctMax:16,wNom:0.189,wTol:0.003,w1bu:0.210,w2bu:0.277,hMax:0.002,r1:0.017,r2:0.005},\r\n      \"3XX\":{dMin:0.185,dMax:0.188,sqMin:0.017,sqMax:0.030,pctMin:8,pctMax:14,wNom:0.283,wTol:0.003,w1bu:0.313,w2bu:0.412,hMax:0.003,r1:0.027,r2:0.005},\r\n      \"4XX\":{dMin:0.237,dMax:0.240,sqMin:0.029,sqMax:0.044,pctMin:11,pctMax:16,wNom:0.377,wTol:0.003,w1bu:0.410,w2bu:0.540,hMax:0.003,r1:0.027,r2:0.005}\r\n    },\r\n    refImg:{\r\n      face:\"https:\/\/www.globaloring.com\/wp-content\/uploads\/2020\/01\/Face-Seal-O-Ring-Gland-Design.jpg\",\r\n      dovetail:\"https:\/\/www.globaloring.com\/wp-content\/uploads\/2020\/01\/Dovetail-Face-Seal-O-Ring-Groove-Design.jpg\",\r\n      static:\"https:\/\/www.globaloring.com\/wp-content\/uploads\/2020\/01\/Static-O-Ring-Gland-Design.jpg\",\r\n      dynamic:\"https:\/\/www.globaloring.com\/wp-content\/uploads\/2020\/01\/Dynamic-O-Ring-Gland-Design.jpg\"\r\n    }\r\n  };\r\n  var EXTRUSION={\r\n    noBackup:{\r\n      70:[{gap:0.002,psi:1500},{gap:0.004,psi:800},{gap:0.006,psi:500},{gap:0.008,psi:350},{gap:0.010,psi:200},{gap:0.015,psi:100}],\r\n      80:[{gap:0.002,psi:3000},{gap:0.004,psi:1500},{gap:0.006,psi:1000},{gap:0.008,psi:700},{gap:0.010,psi:500},{gap:0.015,psi:250},{gap:0.020,psi:150}],\r\n      90:[{gap:0.002,psi:5000},{gap:0.004,psi:3000},{gap:0.006,psi:2000},{gap:0.008,psi:1500},{gap:0.010,psi:1000},{gap:0.015,psi:500},{gap:0.020,psi:300}]\r\n    },\r\n    withBackup:{70:3000,80:5000,90:10000}\r\n  };\r\n  function lookupExtrusion(duro,gap,isDynamic){var table=EXTRUSION.noBackup[duro];if(!table||gap<0)return null;\r\n    if(gap<=table[0].gap){return isDynamic?Math.round(table[0].psi\/2):table[0].psi;}\r\n    if(gap>table[table.length-1].gap)return null;\r\n    for(var i=0;i<table.length-1;i++){if(gap>=table[i].gap&&gap<=table[i+1].gap){var t=(gap-table[i].gap)\/(table[i+1].gap-table[i].gap);var psi=table[i].psi+t*(table[i+1].psi-table[i].psi);return isDynamic?Math.round(psi\/2):Math.round(psi);}}return null;}\r\n  function backupLimit(duro,isDynamic){var psi=EXTRUSION.withBackup[duro];return isDynamic?Math.round(psi\/2):psi;}\r\n  function currentHMax(seriesKey,typeKey){if(typeKey!==\"static\"&&typeKey!==\"dynamic\")return null;var row=DATA[typeKey][seriesKey];return row?row.hMax:null;}\r\n  function compressionCheck(seriesKey,typeKey){var s=DATA.series[seriesKey];var row=DATA[typeKey][seriesKey];var cs=s.cs;var cs_max=cs+s.csTol,cs_min=cs-s.csTol;var d_min,d_max,d_nom;\r\n    if(typeKey===\"dovetail\"){d_nom=row.dNom;d_min=row.dNom-row.dTol;d_max=row.dNom+row.dTol;}else{d_min=row.dMin;d_max=row.dMax;d_nom=(row.dMin+row.dMax)\/2;}\r\n    var sq_nominal=(cs-d_nom)\/cs*100;var sq_high=(cs_max-d_min)\/cs_max*100;var sq_low=(cs_min-d_max)\/cs_min*100;var bracketLo,bracketHi,bracketSource;\r\n    if(typeKey===\"dovetail\"){bracketLo=18;bracketHi=32;bracketSource=\"dovetail design practice (Parker O-Ring Handbook \u00a73-12)\";}else{bracketLo=row.pctMin;bracketHi=row.pctMax;bracketSource=\"the published \"+seriesKey+\" \"+typeKey+\" table on this page\";}\r\n    var tol=1.0;var passes=(sq_low>=bracketLo-tol)&&(sq_high<=bracketHi+tol);\r\n    return{nominal:sq_nominal,high:sq_high,low:sq_low,d_nom:d_nom,d_min:d_min,d_max:d_max,cs_nom:cs,cs_min:cs_min,cs_max:cs_max,bracketLo:bracketLo,bracketHi:bracketHi,bracketSource:bracketSource,passes:passes};}\r\n\r\n  var root=document.getElementById(\"gorGCalc\"); if(!root)return;\r\n  var elSeries=root.querySelector(\"#gcSeries\"),elType=root.querySelector(\"#gcType\"),elResults=root.querySelector(\"#gcResults\"),elNotes=root.querySelector(\"#gcNotes\"),elBu=root.querySelector(\"#gcBuToggle\");\r\n  var vExtSection=root.querySelector(\"#gcExtSection\"),vConSection=root.querySelector(\"#gcConSection\"),vCompResults=root.querySelector(\"#gcCompResults\"),vCompBadge=root.querySelector(\"#gcCompBadge\"),vCompNote=root.querySelector(\"#gcCompNote\"),vPressure=root.querySelector(\"#gcPressure\"),vDuroToggle=root.querySelector(\"#gcDuroToggle\"),vGap=root.querySelector(\"#gcGap\"),vGapReset=root.querySelector(\"#gcGapReset\"),vExtResults=root.querySelector(\"#gcExtResults\"),vExtBadge=root.querySelector(\"#gcExtBadge\"),vExtRec=root.querySelector(\"#gcExtRec\"),vExtNote=root.querySelector(\"#gcExtNote\"),vBore=root.querySelector(\"#gcBore\"),vShaft=root.querySelector(\"#gcShaft\"),vConResults=root.querySelector(\"#gcConResults\"),vConRec=root.querySelector(\"#gcConRec\");\r\n  var state={bu:0,durometer:70,gapAuto:true};\r\n  function fmt(v){return(typeof v===\"number\")?v.toFixed(3)+\"\u2033\":\"\u2014\";}\r\n  function fmtTol(v){return(typeof v===\"number\")?\"&plusmn;\"+v.toFixed(3)+\"\u2033\":\"\";}\r\n  function fmtRange(a,b){if(typeof a!==\"number\"||typeof b!==\"number\")return\"\u2014\";return a.toFixed(3)+\" &ndash; \"+b.toFixed(3)+\"\u2033\";}\r\n  function card(klass,k,v,meta){return '<div class=\"gc-card '+(klass||'')+'\"><span class=\"gc-k\">'+k+'<\/span><span class=\"gc-v\">'+v+'<\/span>'+(meta?'<span class=\"gc-meta\">'+meta+'<\/span>':'')+'<\/div>';}\r\n  function setBadge(el,level,text){el.className=\"gc-vbadge is-\"+level;el.textContent=text;}\r\n  function renderCompression(seriesKey,typeKey){var c=compressionCheck(seriesKey,typeKey);var pct=function(x){return x.toFixed(1)+\"%\";};var bracketStr=c.bracketLo+\"%\u2013\"+c.bracketHi+\"%\";var html=\"\";\r\n    html+=card(\"is-green\",\"Nominal Squeeze\",pct(c.nominal),\"CS \"+c.cs_nom.toFixed(3)+\"\u2033 &nbsp;&middot;&nbsp; D \"+c.d_nom.toFixed(3)+\"\u2033\");\r\n    var klassHigh=(c.high>c.bracketHi+1)?\"is-muted\":\"\";html+=card(klassHigh,\"Worst-Case High Squeeze\",pct(c.high),\"CS max \"+c.cs_max.toFixed(3)+\"\u2033 \/ gland min \"+c.d_min.toFixed(3)+\"\u2033\");\r\n    var klassLow=(c.low<c.bracketLo-1)?\"is-muted\":\"\";html+=card(klassLow,\"Worst-Case Low Squeeze\",pct(c.low),\"CS min \"+c.cs_min.toFixed(3)+\"\u2033 \/ gland max \"+c.d_max.toFixed(3)+\"\u2033\");\r\n    vCompResults.innerHTML=html;\r\n    if(c.passes){setBadge(vCompBadge,\"pass\",\"Within \"+bracketStr);}else if(c.high>c.bracketHi+1){setBadge(vCompBadge,\"fail\",\"Above \"+c.bracketHi+\"% \u2014 risk of compression set\");}else{setBadge(vCompBadge,\"fail\",\"Below \"+c.bracketLo+\"% \u2014 risk of leak\");}\r\n    var note=\"\";if(c.passes){note=\"Both tolerance extremes land inside \"+c.bracketSource+\" (\"+bracketStr+\").\";}else if(c.high>c.bracketHi+1){note=\"Worst-case high squeeze exceeds the published \"+bracketStr+\" range. Compression set and elevated friction become concerns. Consider tightening the gland-depth tolerance or stepping up a cross-section.\";}else{note=\"Worst-case low squeeze falls below the published \"+bracketStr+\" range. Leakage risk rises. Consider a deeper gland (smaller depth) or a larger cross-section.\";}vCompNote.innerHTML=note;}\r\n  function renderExtrusion(seriesKey,typeKey){var isRadial=(typeKey===\"static\"||typeKey===\"dynamic\");vExtSection.style.display=isRadial?\"\":\"none\";if(!isRadial)return;var isDynamic=(typeKey===\"dynamic\");var pressure=parseFloat(vPressure.value)||0;var gap=parseFloat(vGap.value);if(isNaN(gap)||gap<0)gap=0;\r\n    var maxNoBackup=lookupExtrusion(state.durometer,gap,isDynamic);var maxWithBackup=backupLimit(state.durometer,isDynamic);var html=\"\";\r\n    html+=card(\"is-green\",\"Your Working Pressure\",pressure.toLocaleString()+\" psi\",(isDynamic?\"Dynamic gland \u2014 values auto-derated \u00f72\":\"Static gland\"));\r\n    html+=card(\"\",\"Max Safe Pressure \u2014 no backup\",maxNoBackup==null?\"Exceeds chart\":(maxNoBackup.toLocaleString()+\" psi\"),\"At \"+gap.toFixed(3)+\"\u2033 gap, \"+state.durometer+\"A durometer\");\r\n    html+=card(\"\",\"Max Safe Pressure \u2014 with 1 backup\",maxWithBackup.toLocaleString()+\" psi\",state.durometer+\"A backup-ring limit\");vExtResults.innerHTML=html;\r\n    var verdictLevel,verdictText,recKlass,recHtml;var overChart=(maxNoBackup==null);var passNoBackup=!overChart&&(pressure<=maxNoBackup);var passWithBackup=(pressure<=maxWithBackup);\r\n    if(passNoBackup){verdictLevel=\"pass\";verdictText=\"Within extrusion limit\";recKlass=\"is-pass\";recHtml=\"<strong>Pass.<\/strong> The design has margin against extrusion at this gap and durometer. Backup rings would add headroom but are not required by this check.\";}\r\n    else if(passWithBackup){verdictLevel=\"warn\";verdictText=\"Add a backup ring\";recKlass=\"\";recHtml=\"<strong>Over the chart limit without a backup ring.<\/strong> Recommended fix, cheapest first:<ol><li><strong>Add 1 backup ring<\/strong> &mdash; brings the limit to \"+maxWithBackup.toLocaleString()+\" psi for \"+state.durometer+\"A.<\/li><li>If your design already runs at the high end of \"+state.durometer+\"A, consider stepping the durometer up one notch.<\/li><li>Reduce the clearance gap (tighter machining or bearings).<\/li><\/ol><a href=\\\"https:\/\/www.globaloring.com\/backup-rings\/\\\">Browse backup rings &rarr;<\/a>\";}\r\n    else{var nextDuro=state.durometer===70?80:(state.durometer===80?90:null);var nextLimit=nextDuro?backupLimit(nextDuro,isDynamic):null;verdictLevel=\"fail\";verdictText=\"Outside chart \u2014 engineering review\";recKlass=\"is-fail\";var lis=\"\";if(nextLimit&&pressure<=nextLimit){lis+=\"<li><strong>Step durometer up to \"+nextDuro+\"A and add a backup ring<\/strong> &mdash; limit becomes \"+nextLimit.toLocaleString()+\" psi.<\/li>\";}else if(nextDuro){lis+=\"<li>Step durometer up to \"+nextDuro+\"A and add a backup ring (limit \"+nextLimit.toLocaleString()+\" psi \u2014 still below your pressure).<\/li>\";}lis+=\"<li>Reduce the diametric clearance to under 0.002\u2033 (precision-machined bore, or add centering bearings).<\/li>\";lis+=\"<li>This pressure \/ gap combination is at or beyond the standard EB-1010 chart. <a href=\\\"https:\/\/www.globaloring.com\/rfq\/\\\">Request engineering review &rarr;<\/a><\/li>\";recHtml=\"<strong>Over the limit even with a backup ring at \"+state.durometer+\"A.<\/strong><ol>\"+lis+\"<\/ol>\";}\r\n    setBadge(vExtBadge,verdictLevel,verdictText);vExtRec.className=\"gc-vrec \"+recKlass;vExtRec.innerHTML=recHtml;\r\n    var notes=[];if(pressure>1500){notes.push(\"Working pressure is above the 1,500 psi default-elastomer threshold (per <a href=\\\"https:\/\/www.globaloring.com\/o-ring-pressure-ratings\/\\\">o-ring pressure ratings<\/a>). High-pressure designs typically benefit from a formal application review.\");}if(gap>0.020){notes.push(\"Gap exceeds the published Parker EB-1010 chart (0.020\u2033 max). Treat any extrapolation as guidance only.\");}if(isDynamic){notes.push(\"Dynamic gland selected \u2014 the published limits are auto-halved to reflect the <a href=\\\"https:\/\/www.globaloring.com\/o-ring-pressure-ratings\/\\\">static-vs-dynamic derate<\/a>.\");}vExtNote.innerHTML=notes.length?(\"&#9432; \"+notes.join(\"<br>&#9432; \")):\"\";}\r\n  function renderConcentricity(typeKey){var isRadial=(typeKey===\"static\"||typeKey===\"dynamic\");vConSection.style.display=isRadial?\"\":\"none\";if(!isRadial)return;var bore=parseFloat(vBore.value);var shaft=parseFloat(vShaft.value);if(isNaN(bore)||isNaN(shaft)||bore<=0||shaft<=0){vConResults.innerHTML=\"\";vConRec.className=\"gc-vrec\";vConRec.innerHTML=\"<strong>Enter bore and shaft\/piston diameters above<\/strong> to compute diametric clearance.\";return;}\r\n    var diametric=bore-shaft;var concentric=diametric\/2;var html=\"\";html+=card(\"is-green\",\"Diametric Clearance\",diametric.toFixed(4)+\"\u2033\",\"Bore \u2212 Shaft (worst case, all gap on one side)\");html+=card(\"is-muted\",\"Concentric Clearance\",concentric.toFixed(4)+\"\u2033\",\"Gap if perfectly centered \u2014 NOT the value to design against\");vConResults.innerHTML=html;\r\n    if(diametric<=0){vConRec.className=\"gc-vrec is-fail\";vConRec.innerHTML=\"<strong>Bore must be larger than shaft.<\/strong> Recheck your inputs.\";return;}\r\n    vConRec.className=\"gc-vrec is-pass\";vConRec.innerHTML=\"<strong>Use \"+diametric.toFixed(4)+\"\u2033 as the diametric clearance gap in the Extrusion check above.<\/strong> <button type=\\\"button\\\" id=\\\"gcUseDiametric\\\" class=\\\"gc-link-btn\\\" style=\\\"display:inline-block;margin-left:6px\\\">\u2191 Use this value<\/button>\";\r\n    var btn=root.querySelector(\"#gcUseDiametric\");if(btn){btn.addEventListener(\"click\",function(){vGap.value=diametric.toFixed(4);state.gapAuto=false;renderExtrusion(elSeries.value,elType.value);vGap.focus();});}}\r\n  function render(){var seriesKey=elSeries.value,typeKey=elType.value,series=DATA.series[seriesKey],row=DATA[typeKey][seriesKey],html=\"\";\r\n    if(typeKey===\"static\"||typeKey===\"dynamic\"){elBu.classList.remove(\"gc-hidden\");}else{elBu.classList.add(\"gc-hidden\");state.bu=0;elBu.querySelectorAll(\"button\").forEach(function(b){b.classList.toggle(\"is-active\",b.getAttribute(\"data-bu\")===\"0\");});}\r\n    html+=card(\"is-green\",\"O-Ring Cross-Section\",fmt(series.cs),\"Tolerance \"+fmtTol(series.csTol));\r\n    if(typeKey===\"face\"){html+=card(\"\",\"Gland Depth (D)\",fmtRange(row.dMin,row.dMax),\"Min &ndash; Max\");html+=card(\"\",\"Squeeze\",fmtRange(row.sqMin,row.sqMax),row.pctMin+\"% &ndash; \"+row.pctMax+\"% of CS\");html+=card(\"\",\"Gland Width (W) &mdash; Liquids\",fmt(row.wlNom),\"Nominal &nbsp;&middot;&nbsp; \"+fmtTol(row.wlTol));html+=card(\"\",\"Gland Width (W) &mdash; Vacuum \/ Gases\",fmt(row.wvNom),\"Nominal &nbsp;&middot;&nbsp; \"+fmtTol(row.wvTol));html+=card(\"is-muted\",\"Corner Radii\",\"R1 \"+fmt(row.r1)+\" &nbsp; R2 \"+fmt(row.r2),\"R1 = groove bottom, R2 = top corners\");}\r\n    else if(typeKey===\"dovetail\"){html+=card(\"\",\"Gland Depth (D)\",fmt(row.dNom),\"Nominal &nbsp;&middot;&nbsp; \"+fmtTol(row.dTol));html+=card(\"\",\"Gland Width (W)\",fmt(row.wNom),\"Nominal &nbsp;&middot;&nbsp; \"+fmtTol(row.wTol));html+=card(\"is-muted\",\"Corner Radii\",\"R1 \"+fmt(row.r1)+\" &nbsp; R2 \"+fmt(row.r2),\"Dovetail retains the O-ring in the groove\");}\r\n    else{var wKey=state.bu===1?\"w1bu\":state.bu===2?\"w2bu\":\"wNom\";var wLabel=state.bu===1?\"Gland Width (W) &mdash; with 1 backup ring\":state.bu===2?\"Gland Width (W) &mdash; with 2 backup rings\":\"Gland Width (W)\";var wMeta=state.bu===0?(\"Nominal &nbsp;&middot;&nbsp; \"+fmtTol(row.wTol)):\"Includes backup-ring fill\";html+=card(\"\",\"Gland Depth (D)\",fmtRange(row.dMin,row.dMax),\"Min &ndash; Max\");html+=card(\"\",\"Squeeze\",fmtRange(row.sqMin,row.sqMax),row.pctMin+\"% &ndash; \"+row.pctMax+\"% of CS\");html+=card(\"\",wLabel,fmt(row[wKey]),wMeta);html+=card(\"\",\"Max Diametric Gap (H)\",fmt(row.hMax),\"Concentric clearance after shift\");html+=card(\"is-muted\",\"Corner Radii\",\"R1 \"+fmt(row.r1)+\" &nbsp; R2 \"+fmt(row.r2),\"R1 = groove bottom, R2 = top corners\");}\r\n    elResults.innerHTML=html;var notes;\r\n    if(typeKey===\"face\"){notes='<strong>Flange \/ Face Seal.<\/strong> Static; no extrusion gap. Use the <em>liquids<\/em> gland width for hydraulic\/oil seal media; use the narrower <em>vacuum \/ gases<\/em> width where you need higher gland fill. <a href=\"'+DATA.refImg.face+'\" target=\"_blank\" rel=\"noopener\">View reference drawing &rarr;<\/a>';}\r\n    else if(typeKey===\"dovetail\"){notes='<strong>Dovetail Face Seal.<\/strong> Static gland that mechanically retains the O-ring &mdash; recommended where the joint is opened and closed repeatedly. <a href=\"'+DATA.refImg.dovetail+'\" target=\"_blank\" rel=\"noopener\">View reference drawing &rarr;<\/a>';}\r\n    else if(typeKey===\"static\"){notes='<strong>Static Gland (radial).<\/strong> Two mating parts with a designed clearance gap, no relative motion. If pressure is from one direction, one backup ring is enough; for bi-directional pressure, use two. See the <a href=\"https:\/\/www.globaloring.com\/o-ring-pressure-ratings\/\">pressure-vs-gap chart<\/a> and <a href=\"https:\/\/www.globaloring.com\/backup-rings\/\">backup rings<\/a>. <a href=\"'+DATA.refImg.static+'\" target=\"_blank\" rel=\"noopener\">View reference drawing &rarr;<\/a>';}\r\n    else{notes='<strong>Dynamic Gland (radial).<\/strong> Reciprocating piston or rod &mdash; a gap is always present. Watch concentricity: assume all clearance can shift to one side when sizing for extrusion. <a href=\"https:\/\/www.globaloring.com\/o-ring-pressure-ratings\/\">Pressure ratings &rarr;<\/a> &nbsp; <a href=\"'+DATA.refImg.dynamic+'\" target=\"_blank\" rel=\"noopener\">View reference drawing &rarr;<\/a>';}\r\n    elNotes.innerHTML=notes;\r\n    if(state.gapAuto){var h=currentHMax(seriesKey,typeKey);if(h!=null)vGap.value=h.toFixed(3);}\r\n    renderCompression(seriesKey,typeKey);renderExtrusion(seriesKey,typeKey);renderConcentricity(typeKey);}\r\n  elSeries.addEventListener(\"change\",render);elType.addEventListener(\"change\",render);\r\n  vPressure.addEventListener(\"input\",function(){renderExtrusion(elSeries.value,elType.value);});\r\n  vGap.addEventListener(\"input\",function(){state.gapAuto=false;renderExtrusion(elSeries.value,elType.value);});\r\n  vGapReset.addEventListener(\"click\",function(){state.gapAuto=true;var h=currentHMax(elSeries.value,elType.value);if(h!=null)vGap.value=h.toFixed(3);renderExtrusion(elSeries.value,elType.value);});\r\n  vDuroToggle.addEventListener(\"click\",function(e){var b=e.target.closest(\"button[data-duro]\");if(!b)return;state.durometer=parseInt(b.getAttribute(\"data-duro\"),10);vDuroToggle.querySelectorAll(\"button\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);});renderExtrusion(elSeries.value,elType.value);});\r\n  vBore.addEventListener(\"input\",function(){renderConcentricity(elType.value);});vShaft.addEventListener(\"input\",function(){renderConcentricity(elType.value);});\r\n  elBu.addEventListener(\"click\",function(e){var b=e.target.closest(\"button[data-bu]\");if(!b)return;state.bu=parseInt(b.getAttribute(\"data-bu\"),10)||0;elBu.querySelectorAll(\"button\").forEach(function(x){x.classList.toggle(\"is-active\",x===b);});render();});\r\n\r\n  \/\/ ---- Target-ID -> nearest AS568 size recommender ----\r\n  (function(){\r\n    var elTID=root.querySelector(\"#gcTargetID\"), elGo=root.querySelector(\"#gcIDGo\"), elOut=root.querySelector(\"#gcIDRecOut\");\r\n    if(!elTID||!elGo||!elOut) return;\r\n    var SHOP=\"https:\/\/www.globaloring.com\/shop\/?filter_group=o-rings&size=\", RFQ=\"https:\/\/www.globaloring.com\/rfq\/\";\r\n    var RANGE={ \"0XX\":[1,50], \"1XX\":[101,178], \"2XX\":[201,284], \"3XX\":[301,395], \"4XX\":[401,475] };\r\n    function sizesForSeries(key){ var all=window.__GOR_AS568||[]; var r=RANGE[key]||[0,9999];\r\n      return all.filter(function(s){ var n=parseInt(s.d,10); return n>=r[0]&&n<=r[1]; }); }\r\n    function f3(x){ return x.toFixed(3); }\r\n    function recommend(){\r\n      var tid=parseFloat(elTID.value);\r\n      if(isNaN(tid)||tid<=0){ elOut.innerHTML='<div class=\"gc-hint\">Enter a target ID in inches.<\/div>'; return; }\r\n      var key=elSeries.value, list=sizesForSeries(key);\r\n      if(!list.length){ elOut.innerHTML='<div class=\"gc-hint\">No AS568 sizes found for this series.<\/div>'; return; }\r\n      list.sort(function(a,b){ return Math.abs(a.id-tid)-Math.abs(b.id-tid); });\r\n      var best=list[0], delta=tid-best.id, adelta=Math.abs(delta), csNom=DATA.series[key].cs;\r\n      var html='';\r\n      if(adelta<=0.005){\r\n        html='<div class=\"gc-rec-card\"><h5>AS568 -'+best.d+' &mdash; standard fit \u2713<\/h5>'+\r\n          '<p>Your target ID '+f3(tid)+'&Prime; matches standard <strong>-'+best.d+'<\/strong> (ID '+f3(best.id)+'&Prime;, CS '+f3(csNom)+'&Prime;). Gland dimensions for this size are shown below.<\/p>'+\r\n          '<a class=\"gc-rec-cta\" href=\"'+SHOP+best.d+'\" target=\"_blank\" rel=\"noopener\">Shop -'+best.d+' &rarr;<\/a>'+\r\n          '<a class=\"gc-rec-cta quote\" href=\"'+RFQ+'\" target=\"_blank\" rel=\"noopener\">Request a quote<\/a><\/div>';\r\n      } else {\r\n        var dir=delta>0?\"larger\":\"smaller\";\r\n        html='<div class=\"gc-rec-card is-adjust\"><h5>Closest standard: AS568 -'+best.d+'<\/h5>'+\r\n          '<p>Your ID '+f3(tid)+'&Prime; is '+f3(adelta)+'&Prime; '+dir+' than standard <strong>-'+best.d+'<\/strong> (ID '+f3(best.id)+'&Prime;, CS '+f3(csNom)+'&Prime;). '+\r\n          'Machining the groove root to <strong>'+f3(best.id)+'&Prime;<\/strong> lets you use an in-stock, off-the-shelf -'+best.d+' instead of a custom size.<\/p>'+\r\n          '<a class=\"gc-rec-cta\" href=\"'+SHOP+best.d+'\" target=\"_blank\" rel=\"noopener\">Shop -'+best.d+' &rarr;<\/a>'+\r\n          '<a class=\"gc-rec-cta quote\" href=\"'+RFQ+'\" target=\"_blank\" rel=\"noopener\">Quote a custom '+f3(tid)+'&Prime; ID<\/a><\/div>'+\r\n          '<div class=\"gc-hint\">Want to keep your exact ID '+f3(tid)+'&Prime;? We can make a custom O-ring to your dimension &mdash; use &ldquo;Quote a custom&rdquo; above.<\/div>';\r\n      }\r\n      elOut.innerHTML=html;\r\n    }\r\n    elGo.addEventListener(\"click\",recommend);\r\n    elTID.addEventListener(\"keydown\",function(e){ if(e.key===\"Enter\") recommend(); });\r\n    elSeries.addEventListener(\"change\",function(){ if(elTID.value) recommend(); });\r\n  })();\r\n\r\n  render();\r\n})();\r\n<\/script>\r\n<\/div>\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","protected":false},"excerpt":{"rendered":"<p>Fit a GrooveFind the O-ring that fits Design a GroovePick a cross-section &amp; seal type Find the O-Ring for Your Groove Measured a groove with calipers? Enter the inside diameter, outside diameter, depth, and width. We&rsquo;ll show the O-ring size(s) that fit &mdash; squeeze, gland fill, and stretch checked against industry design rules &mdash; and <a href=\"https:\/\/www.globaloring.com\/groove-design-calculator\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":44544,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-427876","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/pages\/427876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/users\/44544"}],"replies":[{"embeddable":true,"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/comments?post=427876"}],"version-history":[{"count":64,"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/pages\/427876\/revisions"}],"predecessor-version":[{"id":428277,"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/pages\/427876\/revisions\/428277"}],"wp:attachment":[{"href":"https:\/\/www.globaloring.com\/wp-json\/wp\/v2\/media?parent=427876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}