{"id":48516,"date":"2026-06-01T08:51:22","date_gmt":"2026-06-01T08:51:22","guid":{"rendered":"https:\/\/www.cnshining.com\/?page_id=48516"},"modified":"2026-06-02T05:30:36","modified_gmt":"2026-06-02T05:30:36","slug":"calculateur-de-capacite-pour-aerosols-en-acier","status":"publish","type":"page","link":"https:\/\/www.cnshining.com\/fr\/centre-doutils-demballage\/calculateur-de-capacite-pour-aerosols-en-acier","title":{"rendered":"Calculateur de capacit\u00e9 pour a\u00e9rosols en acier"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"48516\" class=\"elementor elementor-48516\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e4ac71a e-flex e-con-boxed e-con e-parent\" data-id=\"1e4ac71a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b615492 elementor-icon-list--layout-inline elementor-align-center elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"b615492\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.cnshining.com\/fr\" target=\"_blank\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-home\" viewbox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Maison \/<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.cnshining.com\/fr\/centre-doutils-demballage\/\" target=\"_blank\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Centre d&#039;outils d&#039;emballage<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2b4f7e93 e-flex e-con-boxed e-con e-parent\" data-id=\"2b4f7e93\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-c6722f3 e-con-full e-flex e-con e-child\" data-id=\"c6722f3\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35015ca elementor-widget elementor-widget-html\" data-id=\"35015ca\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"acc-calculator\" class=\"sp-steel-aerosol-can-calculator\" data-steel-aerosol-can-calculator=\"\">\r\n  <style>\r\n    #acc-calculator,\r\n    #acc-calculator * { box-sizing: border-box; }\r\n\r\n    #acc-calculator {\r\n      --sp-bg: #f5f7fb;\r\n      --sp-panel: #ffffff;\r\n      --sp-text: #152033;\r\n      --sp-muted: #5f708c;\r\n      --sp-line: #d8e2ef;\r\n      --sp-blue: #1363df;\r\n      --sp-blue-dark: #082a5e;\r\n      --sp-blue-soft: #edf4ff;\r\n      --sp-shadow: 0 20px 48px rgba(8, 42, 94, .08);\r\n      max-width: 1220px;\r\n      margin: 28px auto;\r\n      padding: 0 14px;\r\n      color: var(--sp-text);\r\n      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif;\r\n      line-height: 1.55;\r\n    }\r\n\r\n    #acc-calculator h2,\r\n    #acc-calculator h3,\r\n    #acc-calculator h4,\r\n    #acc-calculator p { margin: 0; }\r\n\r\n    #acc-calculator button,\r\n    #acc-calculator input,\r\n    #acc-calculator select { font: inherit; }\r\n\r\n    #acc-calculator .acc-shell {\r\n      background: linear-gradient(180deg, #fbfcfe 0%, var(--sp-bg) 100%);\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 30px;\r\n      padding: clamp(20px, 4vw, 42px);\r\n      box-shadow: 0 12px 30px rgba(15, 36, 74, .04);\r\n    }\r\n\r\n    #acc-calculator .acc-badge {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      padding: 8px 14px;\r\n      margin-bottom: 14px;\r\n      border: 1px solid #bcd0f1;\r\n      border-radius: 999px;\r\n      background: #fff;\r\n      color: var(--sp-blue);\r\n      font-size: 13px;\r\n      font-weight: 850;\r\n      letter-spacing: .03em;\r\n      text-transform: uppercase;\r\n    }\r\n\r\n    #acc-calculator .acc-badge::before {\r\n      content: \"\";\r\n      width: 9px;\r\n      height: 9px;\r\n      border-radius: 50%;\r\n      background: var(--sp-blue);\r\n      box-shadow: 0 0 0 5px rgba(19, 99, 223, .12);\r\n    }\r\n\r\n    #acc-calculator .acc-hero h2 {\r\n      margin-bottom: 10px;\r\n      color: var(--sp-blue-dark);\r\n      font-size: clamp(28px, 4vw, 40px);\r\n      line-height: 1.05;\r\n      letter-spacing: -.045em;\r\n    }\r\n\r\n    #acc-calculator .acc-hero p {\r\n      max-width: 920px;\r\n      color: var(--sp-muted);\r\n      font-size: 15px;\r\n      line-height: 1.7;\r\n    }\r\n\r\n    #acc-calculator .acc-workspace {\r\n      display: grid;\r\n      grid-template-columns: minmax(360px, .95fr) minmax(420px, 1.05fr);\r\n      gap: 22px;\r\n      margin-top: 24px;\r\n      align-items: start;\r\n    }\r\n\r\n    #acc-calculator .acc-panel,\r\n    #acc-calculator .acc-preview-panel {\r\n      background: rgba(255,255,255,.96);\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 28px;\r\n      box-shadow: var(--sp-shadow);\r\n      padding: clamp(18px, 3vw, 26px);\r\n    }\r\n\r\n    #acc-calculator .acc-section-title {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: flex-start;\r\n      gap: 12px;\r\n      margin-bottom: 16px;\r\n    }\r\n\r\n    #acc-calculator .acc-section-title h3 {\r\n      color: var(--sp-blue-dark);\r\n      font-size: 20px;\r\n      letter-spacing: -.025em;\r\n    }\r\n\r\n    #acc-calculator .acc-section-title span {\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      font-weight: 850;\r\n      text-transform: uppercase;\r\n      letter-spacing: .06em;\r\n    }\r\n\r\n    #acc-calculator .acc-svg-wrap {\r\n      width: 100%;\r\n      min-height: 548px;\r\n      background: #fff;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 24px;\r\n      padding: 12px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      overflow: hidden;\r\n    }\r\n\r\n    #acc-calculator .acc-can-svg {\r\n      display: block;\r\n      width: 100%;\r\n      max-width: 390px;\r\n      height: auto;\r\n    }\r\n\r\n    #acc-calculator .acc-profile-line {\r\n      fill: none;\r\n      stroke: #111827;\r\n      stroke-width: 1.02;\r\n      stroke-linecap: round;\r\n      stroke-linejoin: round;\r\n      vector-effect: non-scaling-stroke;\r\n    }\r\n\r\n    #acc-calculator .acc-profile-group,\r\n    #acc-calculator .acc-fill-group { display: none; }\r\n    #acc-calculator .acc-profile-group.is-active,\r\n    #acc-calculator .acc-fill-group.is-active { display: block; }\r\n\r\n    #acc-calculator .acc-dim-line,\r\n    #acc-calculator .acc-dim-extension {\r\n      fill: none;\r\n      stroke: var(--sp-blue);\r\n      stroke-linecap: round;\r\n      stroke-linejoin: round;\r\n      vector-effect: non-scaling-stroke;\r\n    }\r\n\r\n    #acc-calculator .acc-dim-line {\r\n      stroke-width: .85;\r\n      marker-start: url(#accArrowStart);\r\n      marker-end: url(#accArrowEnd);\r\n    }\r\n\r\n    #acc-calculator .acc-dim-extension {\r\n      stroke-width: .55;\r\n      opacity: .76;\r\n    }\r\n\r\n    #acc-calculator .acc-dim-text {\r\n      fill: var(--sp-blue);\r\n      stroke: none;\r\n      font-weight: 850;\r\n      font-size: 13px;\r\n      letter-spacing: -.02em;\r\n    }\r\n\r\n    #acc-calculator .acc-liquid-line {\r\n      fill: none;\r\n      stroke: var(--sp-blue);\r\n      stroke-width: 1.4;\r\n      stroke-linecap: round;\r\n      stroke-dasharray: 6 6;\r\n      vector-effect: non-scaling-stroke;\r\n    }\r\n\r\n    #acc-calculator .acc-ingredient-text {\r\n      fill: #355d91;\r\n      stroke: none;\r\n      font-weight: 850;\r\n      letter-spacing: -.02em;\r\n      text-anchor: middle;\r\n      dominant-baseline: middle;\r\n      pointer-events: none;\r\n    }\r\n\r\n    #acc-calculator .acc-status-card {\r\n      display: grid;\r\n      grid-template-columns: repeat(3, minmax(0, 1fr));\r\n      gap: 10px;\r\n      margin-top: 14px;\r\n    }\r\n\r\n    #acc-calculator .acc-status {\r\n      border: 1px solid var(--sp-line);\r\n      background: #fff;\r\n      border-radius: 16px;\r\n      padding: 13px;\r\n      min-width: 0;\r\n    }\r\n\r\n    #acc-calculator .acc-status span {\r\n      display: block;\r\n      color: var(--sp-muted);\r\n      font-size: 11px;\r\n      font-weight: 850;\r\n      text-transform: uppercase;\r\n      letter-spacing: .04em;\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    #acc-calculator .acc-status strong {\r\n      display: block;\r\n      color: var(--sp-blue-dark);\r\n      font-size: 17px;\r\n      line-height: 1.25;\r\n      overflow-wrap: anywhere;\r\n    }\r\n\r\n    #acc-calculator .acc-controls-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n      gap: 14px;\r\n    }\r\n\r\n    #acc-calculator .acc-field {\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 7px;\r\n    }\r\n\r\n    #acc-calculator .acc-field label {\r\n      color: var(--sp-blue-dark);\r\n      font-size: 12px;\r\n      font-weight: 850;\r\n      text-transform: uppercase;\r\n      letter-spacing: .05em;\r\n    }\r\n\r\n    #acc-calculator .acc-native-select,\r\n    #acc-calculator .acc-native-input {\r\n      width: 100%;\r\n      border: 1px solid #cbd8ea;\r\n      border-radius: 16px;\r\n      background: #fff;\r\n      color: var(--sp-text);\r\n      padding: 13px 14px;\r\n      outline: none;\r\n      min-height: 48px;\r\n    }\r\n\r\n    #acc-calculator .acc-native-select:focus,\r\n    #acc-calculator .acc-native-input:focus {\r\n      border-color: var(--sp-blue);\r\n      box-shadow: 0 0 0 4px rgba(19, 99, 223, .1);\r\n    }\r\n\r\n    #acc-calculator .acc-help {\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      line-height: 1.35;\r\n    }\r\n\r\n    #acc-calculator .acc-error {\r\n      display: none;\r\n      margin-top: 6px;\r\n      color: #c53030;\r\n      font-size: 12px;\r\n      font-weight: 700;\r\n      line-height: 1.4;\r\n    }\r\n\r\n    #acc-calculator .acc-error.is-visible { display: block; }\r\n\r\n    #acc-calculator .acc-native-input.is-error {\r\n      border-color: #e05353;\r\n      box-shadow: 0 0 0 4px rgba(224, 83, 83, .12);\r\n    }\r\n\r\n    #acc-calculator .acc-result-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n      gap: 12px;\r\n      margin-top: 18px;\r\n    }\r\n\r\n    #acc-calculator .acc-result-card {\r\n      min-height: 126px;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 20px;\r\n      padding: 17px;\r\n      background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);\r\n    }\r\n\r\n    #acc-calculator .acc-result-card.is-primary {\r\n      border-color: #a9c6f7;\r\n      background: linear-gradient(180deg, #eef5ff 0%, #fff 100%);\r\n    }\r\n\r\n    #acc-calculator .acc-result-card span {\r\n      display: block;\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      font-weight: 850;\r\n      text-transform: uppercase;\r\n      letter-spacing: .045em;\r\n      margin-bottom: 6px;\r\n    }\r\n\r\n    #acc-calculator .acc-result-card strong {\r\n      display: block;\r\n      color: var(--sp-blue-dark);\r\n      font-size: clamp(26px, 3vw, 34px);\r\n      line-height: 1.05;\r\n      letter-spacing: -.04em;\r\n      margin-bottom: 8px;\r\n    }\r\n\r\n    #acc-calculator .acc-result-card small {\r\n      display: block;\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      line-height: 1.45;\r\n    }\r\n\r\n    #acc-calculator .acc-chip-row {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 8px;\r\n      margin-top: 16px;\r\n    }\r\n\r\n    #acc-calculator .acc-chip {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      min-height: 34px;\r\n      padding: 7px 11px;\r\n      border-radius: 999px;\r\n      background: var(--sp-blue-soft);\r\n      color: var(--sp-blue-dark);\r\n      font-size: 12px;\r\n      font-weight: 850;\r\n    }\r\n\r\n    #acc-calculator .acc-product-cta {\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: space-between;\r\n      gap: 14px;\r\n      margin-top: 16px;\r\n      padding: 15px 16px;\r\n      border: 1px solid #c8dbf6;\r\n      border-radius: 20px;\r\n      background: linear-gradient(135deg, #ffffff 0%, #f2f7ff 100%);\r\n      box-shadow: 0 10px 24px rgba(8, 42, 94, .05);\r\n    }\r\n\r\n    #acc-calculator .acc-product-cta[hidden] { display: none; }\r\n\r\n    #acc-calculator .acc-product-copy {\r\n      min-width: 0;\r\n    }\r\n\r\n    #acc-calculator .acc-product-copy span {\r\n      display: block;\r\n      margin-bottom: 3px;\r\n      color: var(--sp-blue);\r\n      font-size: 11px;\r\n      font-weight: 850;\r\n      text-transform: uppercase;\r\n      letter-spacing: .055em;\r\n    }\r\n\r\n    #acc-calculator .acc-product-copy strong {\r\n      display: block;\r\n      color: var(--sp-blue-dark);\r\n      font-size: 16px;\r\n      line-height: 1.25;\r\n      letter-spacing: -.02em;\r\n    }\r\n\r\n    #acc-calculator .acc-product-copy p {\r\n      margin-top: 4px;\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      line-height: 1.45;\r\n    }\r\n\r\n    #acc-calculator .acc-product-btn {\r\n      flex: 0 0 auto;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      gap: 8px;\r\n      min-height: 44px;\r\n      padding: 11px 16px;\r\n      border-radius: 999px;\r\n      background: var(--sp-blue);\r\n      color: #fff;\r\n      text-decoration: none;\r\n      font-size: 13px;\r\n      font-weight: 850;\r\n      white-space: nowrap;\r\n      box-shadow: 0 10px 22px rgba(19, 99, 223, .18);\r\n      transition: transform .18s ease, box-shadow .18s ease, background .18s ease;\r\n    }\r\n\r\n    #acc-calculator .acc-product-btn::after {\r\n      content: \"\u2192\";\r\n      font-size: 15px;\r\n      line-height: 1;\r\n    }\r\n\r\n    #acc-calculator .acc-product-btn:hover,\r\n    #acc-calculator .acc-product-btn:focus {\r\n      background: #0d56c7;\r\n      box-shadow: 0 12px 26px rgba(19, 99, 223, .24);\r\n      transform: translateY(-1px);\r\n    }\r\n\r\n    #acc-calculator .acc-product-btn:focus {\r\n      outline: none;\r\n      box-shadow: 0 0 0 4px rgba(19, 99, 223, .12), 0 12px 26px rgba(19, 99, 223, .24);\r\n    }\r\n\r\n    #acc-calculator .acc-mini-table {\r\n      margin-top: 18px;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 20px;\r\n      background: #fff;\r\n      overflow: hidden;\r\n    }\r\n\r\n    #acc-calculator .acc-mini-head {\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: space-between;\r\n      gap: 10px;\r\n      padding: 14px 16px;\r\n      border-bottom: 1px solid var(--sp-line);\r\n    }\r\n\r\n    #acc-calculator .acc-mini-head h4 {\r\n      color: var(--sp-blue-dark);\r\n      font-size: 16px;\r\n      letter-spacing: -.02em;\r\n    }\r\n\r\n    #acc-calculator .acc-mini-scroll { max-height: 210px; overflow: auto; }\r\n\r\n    #acc-calculator table {\r\n      width: 100%;\r\n      border-collapse: collapse;\r\n      font-size: 13px;\r\n    }\r\n\r\n    #acc-calculator th,\r\n    #acc-calculator td {\r\n      padding: 9px 10px;\r\n      border-bottom: 1px solid #edf2f7;\r\n      text-align: right;\r\n      white-space: nowrap;\r\n    }\r\n\r\n    #acc-calculator th:first-child,\r\n    #acc-calculator td:first-child { text-align: left; }\r\n\r\n    #acc-calculator th {\r\n      position: sticky;\r\n      top: 0;\r\n      z-index: 1;\r\n      background: #fff;\r\n      color: var(--sp-muted);\r\n      font-size: 11px;\r\n      text-transform: uppercase;\r\n      letter-spacing: .04em;\r\n    }\r\n\r\n    #acc-calculator tr { cursor: pointer; }\r\n    #acc-calculator tr:hover td { background: #f8fbff; }\r\n    #acc-calculator tr.is-active td { background: #eef7ff; color: var(--sp-blue-dark); font-weight: 850; }\r\n\r\n    #acc-calculator .acc-note {\r\n      margin-top: 12px;\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      line-height: 1.55;\r\n    }\r\n\r\n    @media (max-width: 980px) {\r\n      #acc-calculator .acc-workspace { grid-template-columns: 1fr; }\r\n      #acc-calculator .acc-svg-wrap { min-height: 520px; }\r\n    }\r\n\r\n    @media (max-width: 680px) {\r\n      #acc-calculator { margin: 16px auto; padding: 0 10px; }\r\n      #acc-calculator .acc-shell { border-radius: 24px; padding: 18px; }\r\n      #acc-calculator .acc-controls-grid,\r\n      #acc-calculator .acc-result-grid,\r\n      #acc-calculator .acc-status-card { grid-template-columns: 1fr; }\r\n      #acc-calculator .acc-svg-wrap { min-height: 455px; padding: 8px; }\r\n      #acc-calculator .acc-product-cta {\r\n        align-items: stretch;\r\n        flex-direction: column;\r\n      }\r\n      #acc-calculator .acc-product-btn {\r\n        width: 100%;\r\n      }\r\n      #acc-calculator .acc-dim-text { font-size: 12px; }\r\n      #acc-calculator th,\r\n      #acc-calculator td { padding: 8px 9px; }\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"acc-shell\">\r\n    <div class=\"acc-hero\">\r\n      <div class=\"acc-badge\">A\u00e9rosol en acier<\/div>\r\n      <h2>Calculateur de capacit\u00e9 pour a\u00e9rosols en acier<\/h2>\r\n      <p>Choisissez le diam\u00e8tre, la hauteur et la forme.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"acc-workspace\">\r\n      <section class=\"acc-preview-panel\" aria-label=\"Aper\u00e7u de l&#039;a\u00e9rosol Steel\">\r\n        <div class=\"acc-section-title\">\r\n          <div>\r\n            <h3>Aper\u00e7u dynamique<\/h3>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"acc-svg-wrap\">\r\n          <svg id=\"accCanSvg\" class=\"acc-can-svg\" viewbox=\"-18 0 315 560\" role=\"img\" aria-label=\"sch\u00e9ma d&#039;une bombe a\u00e9rosol en acier\">\r\n            <defs>\r\n              <lineargradient id=\"accMetalGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\r\n                <stop offset=\"0%\" stop-color=\"#d6dde6\"><\/stop>\r\n                <stop offset=\"18%\" stop-color=\"#eef2f7\"><\/stop>\r\n                <stop offset=\"48%\" stop-color=\"#dfe6ee\"><\/stop>\r\n                <stop offset=\"74%\" stop-color=\"#f7f9fc\"><\/stop>\r\n                <stop offset=\"100%\" stop-color=\"#c7d1de\"><\/stop>\r\n              <\/lineargradient>\r\n              <lineargradient id=\"accLiquidGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\r\n                <stop offset=\"0%\" stop-color=\"#9ec5f4\"><\/stop>\r\n                <stop offset=\"45%\" stop-color=\"#c8e1ff\"><\/stop>\r\n                <stop offset=\"100%\" stop-color=\"#8dbbef\"><\/stop>\r\n              <\/lineargradient>\r\n              <clippath id=\"accClipNeckIn\" clippathunits=\"userSpaceOnUse\">\r\n                <path d=\"M72.6,81.96 L152.58,81.96 C160.5,82.2 161.6,90.6 153.54,93.18 L153.48,93.24 C169,102 180.5,115.5 185.58,131.94 L194.1,132.3 C195,132.35 195.54,133 195.54,133.74 L195.54,139.98 C195.5,140.8 194.9,141.35 194.1,141.36 L192.84,141.3 L192.84,142.44 C193.16,143.5 193.78,144.35 194.58,144.9 C197.05,146.3 198.15,148.55 198.48,150.72 L198.48,510.78 C198.3,514.7 197.05,517.35 195.66,519.3 L197.04,520.68 L197.04,526.92 C196.95,527.9 196.35,528.55 195.66,528.78 L29.58,528.78 C28.65,528.65 28.14,528.05 28.14,527.34 L28.14,521.1 C28.25,520.3 28.9,519.75 29.58,519.72 C27.55,517 26.76,513.8 26.76,511.2 L26.7,150.36 C27.05,147.85 28.45,145.82 30.66,144.54 C31.75,143.88 32.25,142.8 32.4,142.02 L32.4,141 L31.14,141 C30.22,140.88 29.7,140.25 29.7,139.56 L29.7,133.32 C29.78,132.5 30.35,131.95 31.14,131.94 L39.6,131.94 C45.8,115.5 56.2,102.75 72.6,93.3 C64.4,92.25 64.45,83.2 72.6,81.96 Z\"><\/path>\r\n              <\/clippath>\r\n              <clippath id=\"accClipStraight\" clippathunits=\"userSpaceOnUse\">\r\n                <path d=\"M83.22,92.94 L163.2,92.94 C171.15,93.15 172.2,101.6 164.16,104.16 C178.4,112.4 190,126.2 196.68,144.72 L211.44,144.72 C212.28,144.82 212.88,145.45 212.88,146.16 L212.88,152.4 C212.78,153.16 212.2,153.7 211.44,153.78 L207.54,153.6 L206.64,532.26 L210.96,532.26 C211.85,532.4 212.4,533 212.4,533.7 L212.4,539.94 C212.3,540.7 211.72,541.22 210.96,541.38 L34.56,540.96 C33.75,540.83 33.12,540.18 33.12,539.52 L33.12,533.28 C33.24,532.45 33.78,532 34.56,531.9 L38.88,532.08 L38.88,153.42 L34.98,153.36 C34.05,153.25 33.6,152.6 33.6,151.98 L33.6,145.74 C33.72,144.92 34.28,144.36 34.98,144.3 L49.86,144.36 C55.4,126.8 67.2,111.8 83.28,104.22 C75,103.08 75.05,94.1 83.22,92.94 Z\"><\/path>\r\n              <\/clippath>\r\n              <marker id=\"accArrowStart\" markerwidth=\"8\" markerheight=\"8\" refx=\"1\" refy=\"4\" orient=\"auto-start-reverse\" markerunits=\"strokeWidth\">\r\n                <path d=\"M 8 0 L 0 4 L 8 8 z\" fill=\"#1363df\"><\/path>\r\n              <\/marker>\r\n              <marker id=\"accArrowEnd\" markerwidth=\"8\" markerheight=\"8\" refx=\"7\" refy=\"4\" orient=\"auto\" markerunits=\"strokeWidth\">\r\n                <path d=\"M 0 0 L 8 4 L 0 8 z\" fill=\"#1363df\"><\/path>\r\n              <\/marker>\r\n            <\/defs>\r\n\r\n            <g id=\"accBottleScaler\" transform=\"translate(112.59 0) scale(1 1) translate(-112.59 0)\">\r\n              <g id=\"accFillNI\" class=\"acc-fill-group is-active\" clip-path=\"url(#accClipNeckIn)\">\r\n                <rect x=\"-20\" y=\"0\" width=\"280\" height=\"560\" fill=\"url(#accMetalGradient)\"><\/rect>\r\n                <rect id=\"accLiquidRectNI\" x=\"-20\" y=\"204.49\" width=\"280\" height=\"314.29\" fill=\"url(#accLiquidGradient)\"><\/rect>\r\n              <\/g>\r\n              <g id=\"accFillSS\" class=\"acc-fill-group\" clip-path=\"url(#accClipStraight)\">\r\n                <rect x=\"-20\" y=\"0\" width=\"280\" height=\"560\" fill=\"url(#accMetalGradient)\"><\/rect>\r\n                <rect id=\"accLiquidRectSS\" x=\"-20\" y=\"0\" width=\"280\" height=\"560\" fill=\"url(#accLiquidGradient)\"><\/rect>\r\n              <\/g>\r\n              <g id=\"accProfileNI\" class=\"acc-profile-group is-active\">\r\n                <path d=\"M72.66,82.02l-.9,.3c-4.65,2.08-4.65,8.48,0,10.56l.9,.3\" class=\"acc-profile-line\"><\/path>\r\n                <line x1=\"152.58\" y1=\"81.96\" x2=\"72.6\" y2=\"81.96\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"153.54\" y1=\"93.18\" x2=\"72.6\" y2=\"93.18\" class=\"acc-profile-line\"><\/line>\r\n                <path d=\"M153.54,93.18l.84-.42c4.5-2.4,3.89-8.88-.84-10.62l-.9-.24\" class=\"acc-profile-line\"><\/path>\r\n                <line x1=\"29.58\" y1=\"528.78\" x2=\"195.66\" y2=\"528.78\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"28.2,0 527.34,0 28.32,0 527.88,0 28.62,0 528.3,0 29.04,0 528.6,0 29.58,0 528.72,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"26.7\" y1=\"511.2\" x2=\"26.7\" y2=\"150.36\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"31.14\" y1=\"131.94\" x2=\"194.1\" y2=\"132.3\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"29.7\" y1=\"133.32\" x2=\"29.7\" y2=\"139.56\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"31.14,0 131.94,0 30.6,0 132.06,0 30.18,0 132.36,0 29.88,0 132.78,0 29.76,0 133.32,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"28.14\" y1=\"527.34\" x2=\"28.14\" y2=\"521.1\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"29.58\" y1=\"519.72\" x2=\"195.66\" y2=\"519.3\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"29.58,0 519.72,0 29.04,0 519.84,0 28.62,0 520.14,0 28.32,0 520.56,0 28.2,0 521.1,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"26.76,0 511.2,0 26.94,0 513,0 27.36,0 514.74,0 27.9,0 516.48,0 28.68,0 518.1,0 29.58,0 519.66,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"31.14\" y1=\"141\" x2=\"194.1\" y2=\"141.42\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"29.76,0 139.56,0 29.88,0 140.1,0 30.18,0 140.52,0 30.6,0 140.82,0 31.14,0 140.94,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <path d=\"M30.66,144.54l-.9,.54c-1.44,.92-2.48,2.54-2.82,4.2l-.18,1.02\" class=\"acc-profile-line\"><\/path>\r\n                <polyline points=\"195.66,0 528.3,0 196.2,0 528.18,0 196.62,0 527.88,0 196.92,0 527.46,0 197.04,0 526.92,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"195.54\" y1=\"133.74\" x2=\"195.54\" y2=\"139.98\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"195.48,0 133.74,0 195.36,0 133.2,0 195.06,0 132.78,0 194.64,0 132.48,0 194.1,0 132.36,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"197.04\" y1=\"526.92\" x2=\"197.04\" y2=\"520.68\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"197.04,0 520.68,0 196.92,0 520.14,0 196.62,0 519.72,0 196.2,0 519.42,0 195.66,0 519.3,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"195.66,0 519.24,0 196.56,0 517.68,0 197.34,0 516.06,0 197.88,0 514.32,0 198.3,0 512.58,0 198.48,0 510.78,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"194.1,0 141.36,0 194.64,0 141.24,0 195.06,0 140.94,0 195.36,0 140.52,0 195.48,0 139.98,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"32.4\" y1=\"141\" x2=\"32.4\" y2=\"142.02\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"30.66,0 144.48,0 31.26,0 144.06,0 31.74,0 143.46,0 32.16,0 142.74,0 32.4,0 142.02,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"198.48\" y1=\"510.78\" x2=\"198.48\" y2=\"150.72\" class=\"acc-profile-line\"><\/line>\r\n                <path d=\"M198.48,150.72l-.18-1.02c-.34-1.66-1.38-3.28-2.82-4.2l-.9-.54\" class=\"acc-profile-line\"><\/path>\r\n                <polyline points=\"192.84,0 142.44,0 193.08,0 143.16,0 193.5,0 143.88,0 193.98,0 144.48,0 194.58,0 144.9,0\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"192.84\" y1=\"142.44\" x2=\"192.84\" y2=\"141.3\" class=\"acc-profile-line\"><\/line>\r\n                <path d=\"M72.6,93.3l-2.82,1.56c-13.35,7.99-23.16,19.64-29.04,34.02l-1.14,3.06\" class=\"acc-profile-line\"><\/path>\r\n                <path d=\"M185.58,131.94l-1.2-3.24c-5.64-13.7-15.44-25.7-27.96-33.66l-2.94-1.8\" class=\"acc-profile-line\"><\/path>\r\n              <\/g>\r\n              <g id=\"accProfileSS\" class=\"acc-profile-group\">\r\n                <line x1=\"34.98\" y1=\"144.3\" x2=\"211.44\" y2=\"144.72\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"33.6\" y1=\"145.74\" x2=\"33.6\" y2=\"151.98\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"34.98 144.36 34.44 144.48 34.02 144.78 33.72 145.2 33.6 145.74\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"34.98\" y1=\"153.42\" x2=\"211.44\" y2=\"153.78\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"33.6 151.98 33.72 152.52 34.02 152.94 34.44 153.24 34.98 153.36\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"212.88\" y1=\"146.16\" x2=\"212.88\" y2=\"152.4\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"212.82 146.16 212.7 145.62 212.4 145.2 211.98 144.9 211.44 144.78\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"211.44 153.78 211.98 153.66 212.4 153.36 212.7 152.94 212.82 152.4\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"38.88\" y1=\"153.42\" x2=\"38.88\" y2=\"532.08\" class=\"acc-profile-line\"><\/line>\r\n                <path d=\"M83.28,93l-.9,.3c-4.65,2.08-4.65,8.48,0,10.56l.9,.3\" class=\"acc-profile-line\"><\/path>\r\n                <line x1=\"163.2\" y1=\"92.94\" x2=\"83.22\" y2=\"92.94\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"164.16\" y1=\"104.16\" x2=\"83.22\" y2=\"104.22\" class=\"acc-profile-line\"><\/line>\r\n                <path d=\"M164.16,104.22l.84-.42c4.5-2.4,3.89-8.88-.84-10.62l-.9-.24\" class=\"acc-profile-line\"><\/path>\r\n                <path d=\"M83.28,104.22l-2.94,1.62c-13.47,7.97-24.07,20.62-29.4,35.34l-1.08,3.18\" class=\"acc-profile-line\"><\/path>\r\n                <path d=\"M196.68,144.72l-1.08-3.12c-5.4-14.8-15.4-27.11-28.62-35.64l-2.88-1.74\" class=\"acc-profile-line\"><\/path>\r\n                <line x1=\"34.56\" y1=\"531.9\" x2=\"210.96\" y2=\"532.26\" class=\"acc-profile-line\"><\/line>\r\n                <line x1=\"33.12\" y1=\"533.28\" x2=\"33.12\" y2=\"539.52\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"34.56 531.9 34.02 532.02 33.6 532.32 33.3 532.74 33.18 533.28\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"34.56\" y1=\"540.96\" x2=\"210.96\" y2=\"541.38\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"33.18 539.52 33.3 540.06 33.6 540.48 34.02 540.78 34.56 540.9\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"212.4\" y1=\"533.7\" x2=\"212.4\" y2=\"539.94\" class=\"acc-profile-line\"><\/line>\r\n                <polyline points=\"212.34 533.7 212.22 533.16 211.92 532.74 211.5 532.44 210.96 532.32\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"210.96 541.32 211.5 541.2 211.92 540.9 212.22 540.48 212.34 539.94\" class=\"acc-profile-line\"><\/polyline>\r\n                <line x1=\"207.54\" y1=\"153.6\" x2=\"206.64\" y2=\"532.26\" class=\"acc-profile-line\"><\/line>\r\n              <\/g>\r\n            <\/g>\r\n            <rect id=\"accTopArtifactMask\" x=\"-30\" y=\"0\" width=\"380\" height=\"34\" fill=\"#ffffff\" pointer-events=\"none\"><\/rect>\r\n\r\n            <g id=\"accLiveOverlay\">\r\n              <line id=\"accLiquidLevelLine\" class=\"acc-liquid-line\" x1=\"35.7\" y1=\"204.49\" x2=\"189.48\" y2=\"204.49\"><\/line>\r\n              <text id=\"accIngredientsText\" class=\"acc-ingredient-text\" x=\"112.59\" y=\"467.9\" font-size=\"14.6\" textlength=\"99.63\" lengthadjust=\"spacingAndGlyphs\">Ingr\u00e9dients<\/text>\r\n              <g id=\"accDimensionGroup\">\r\n                <line id=\"accMouthExtL\" class=\"acc-dim-extension\" x1=\"72.6\" y1=\"81.96\" x2=\"72.6\" y2=\"69.96\"><\/line>\r\n                <line id=\"accMouthExtR\" class=\"acc-dim-extension\" x1=\"153.54\" y1=\"81.96\" x2=\"153.54\" y2=\"69.96\"><\/line>\r\n                <line id=\"accMouthLine\" class=\"acc-dim-line\" x1=\"79.6\" y1=\"71.96\" x2=\"146.54\" y2=\"71.96\"><\/line>\r\n                <text id=\"accSvgMouth\" class=\"acc-dim-text\" x=\"113.07\" y=\"63.96\" text-anchor=\"middle\">\u00d825,4 mm<\/text>\r\n\r\n                <line id=\"accBottomExtL\" class=\"acc-dim-extension\" x1=\"26.7\" y1=\"528.78\" x2=\"26.7\" y2=\"517.78\"><\/line>\r\n                <line id=\"accBottomExtR\" class=\"acc-dim-extension\" x1=\"198.48\" y1=\"528.78\" x2=\"198.48\" y2=\"517.78\"><\/line>\r\n                <line id=\"accBottomLine\" class=\"acc-dim-line\" x1=\"35.7\" y1=\"518.78\" x2=\"189.48\" y2=\"518.78\"><\/line>\r\n                <text id=\"accSvgBottom\" class=\"acc-dim-text\" x=\"112.59\" y=\"510.78\" text-anchor=\"middle\">\u00d865 mm<\/text>\r\n\r\n                <line id=\"accHeightExtTop\" class=\"acc-dim-extension\" x1=\"153.54\" y1=\"81.96\" x2=\"247.48\" y2=\"81.96\"><\/line>\r\n                <line id=\"accHeightExtBottom\" class=\"acc-dim-extension\" x1=\"198.48\" y1=\"528.78\" x2=\"247.48\" y2=\"528.78\"><\/line>\r\n                <line id=\"accHeightLine\" class=\"acc-dim-line\" x1=\"240.48\" y1=\"91.96\" x2=\"240.48\" y2=\"518.78\"><\/line>\r\n                <text id=\"accSvgHeight\" class=\"acc-dim-text\" x=\"258.48\" y=\"305.37\" transform=\"rotate(-90 258.48 305.37)\" text-anchor=\"middle\">198 mm<\/text>\r\n              <\/g>\r\n            <\/g>\r\n          <\/svg>\r\n        <\/div>\r\n\r\n        <div class=\"acc-status-card\">\r\n          <div class=\"acc-status\">\r\n            <span>Taille s\u00e9lectionn\u00e9e<\/span>\r\n            <strong id=\"accStatusSize\">\u03a665 \u00d7 198<\/strong>\r\n          <\/div>\r\n          <div class=\"acc-status\">\r\n            <span>Forme<\/span>\r\n            <strong id=\"accStatusShape\">Cou<\/strong>\r\n          <\/div>\r\n          <div class=\"acc-status\">\r\n            <span>Bouche<\/span>\r\n            <strong id=\"accStatusMouth\">\u00d825,4 mm<\/strong>\r\n          <\/div>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"acc-panel\" aria-label=\"Contr\u00f4les de capacit\u00e9\">\r\n        <div class=\"acc-section-title\">\r\n          <div>\r\n            <h3>Taille et capacit\u00e9<\/h3>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"acc-controls-grid\">\r\n          <div class=\"acc-field\">\r\n            <label for=\"accDiameter\">diam\u00e8tre inf\u00e9rieur<\/label>\r\n            <select id=\"accDiameter\" class=\"acc-native-select\"><option value=\"45\">\u03a645 mm<\/option><option value=\"52\">\u03a652 mm<\/option><option value=\"57\">\u03a657 mm<\/option><option value=\"60\">\u03a660 mm<\/option><option value=\"65\">\u03a665 mm<\/option><option value=\"70\">\u03a670 mm<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"acc-field\">\r\n            <label for=\"accShape\">Forme<\/label>\r\n            <select id=\"accShape\" class=\"acc-native-select\"><option value=\"NI\">Cou<\/option><option value=\"SS\">Mur droit<\/option><\/select>\r\n          <\/div>\r\n          <div class=\"acc-field\" style=\"grid-column: 1 \/ -1;\">\r\n            <label for=\"accHeight\">Hauteur<\/label>\r\n            <input id=\"accHeight\" class=\"acc-native-input\" type=\"number\" min=\"98\" max=\"300\" value=\"198\" step=\"1\">\r\n            <div id=\"accHeightHelp\" class=\"acc-help\">Plage de mesure autoris\u00e9e : 98\u2013300 mm<\/div>\r\n            <div id=\"accHeightError\" class=\"acc-error\" aria-live=\"polite\"><\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"acc-result-grid\">\r\n          <div class=\"acc-result-card\">\r\n            <span>pleine capacit\u00e9<\/span>\r\n            <strong id=\"accFullValue\">651 ml<\/strong>\r\n            <small id=\"accFullSub\">22 fl oz US \/ 22,9 fl oz UK<\/small>\r\n          <\/div>\r\n          <div class=\"acc-result-card is-primary\">\r\n            <span>Gaz liqu\u00e9fi\u00e9<\/span>\r\n            <strong id=\"accLiquidValue\">553 ml<\/strong>\r\n            <small id=\"accLiquidSub\">18,7 fl oz US \/ 19,5 fl oz UK<\/small>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"acc-chip-row\">\r\n          <span class=\"acc-chip\" id=\"accChipSource\">Valeur exacte du tableau<\/span>\r\n          <span class=\"acc-chip\" id=\"accChipCanSizeMm\">Dimensions m\u00e9triques 65 x 198<\/span>\r\n          <span class=\"acc-chip\" id=\"accChipCanSizeUs\">Taille am\u00e9ricaine 211 x 713<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"acc-product-cta\" id=\"accProductCta\">\r\n          <div class=\"acc-product-copy\">\r\n            <span>Page produit correspondante<\/span>\r\n            <strong id=\"accProductTitle\">A\u00e9rosol \u00e0 col de 65 mm<\/strong>\r\n            <p id=\"accProductDesc\">S\u00e9lectionn\u00e9 : \u03a665 mm, Col-In, hauteur 198 mm.<\/p>\r\n          <\/div>\r\n          <a id=\"accProductBtn\" class=\"acc-product-btn\" href=\"https:\/\/www.cnshining.com\/fr\/produit\/col-de-65-mm-dans-une-bombe-aerosol\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Voir l&#039;a\u00e9rosol \u00e0 col de 65 mm\">Voir le produit<\/a>\r\n        <\/div>\r\n\r\n        <div class=\"acc-mini-table\" aria-label=\"Tableau des hauteurs de diam\u00e8tre actuel\">\r\n          <div class=\"acc-mini-head\">\r\n            <h4>hauteurs de diam\u00e8tre recommand\u00e9es<\/h4>\r\n            <div class=\"acc-chip\" id=\"accMiniCount\">7 tailles<\/div>\r\n          <\/div>\r\n          <div class=\"acc-mini-scroll\">\r\n            <table>\r\n              <thead>\r\n                <tr>\r\n                  <th>Taille de la bo\u00eete (mm)<\/th>\r\n                  <th>Forme<\/th>\r\n                  <th>Volume (ml)<\/th>\r\n                  <th>Taille de la canette (\u00c9tats-Unis)<\/th>\r\n                <\/tr>\r\n              <\/thead>\r\n              <tbody id=\"accCurrentRows\"><tr><td>65 x 100<\/td><td>Cou<\/td><td>325<\/td><td>211 x 315<\/td><\/tr><tr><td>65 x 122<\/td><td>Cou<\/td><td>399<\/td><td>211 x 413<\/td><\/tr><tr><td>65 x 158<\/td><td>Cou<\/td><td>520<\/td><td>211 x 604<\/td><\/tr><tr><td>65 x 172<\/td><td>Cou<\/td><td>562<\/td><td>211 x 612<\/td><\/tr><tr class=\"is-active\"><td>65 x 198<\/td><td>Cou<\/td><td>651<\/td><td>211 x 713<\/td><\/tr><tr><td>65 x 209<\/td><td>Cou<\/td><td>685<\/td><td>211 x 804<\/td><\/tr><tr><td>65 x 241<\/td><td>Cou<\/td><td>789<\/td><td>211 x 908<\/td><\/tr><\/tbody>\r\n            <\/table>\r\n          <\/div>\r\n        <\/div>\r\n      <\/section>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    (function () {\r\n      'use strict';\r\n\r\n      var DATA = [{\"oz\": 4.7, \"ml\": 140, \"us\": \"112 x 312\", \"mm\": \"45 x 96\", \"shape\": \"NI\", \"no\": 1, \"d\": 45, \"h\": 96, \"size\": \"\u03a645 \u00d7 96\"}, {\"oz\": 5.9, \"ml\": 175, \"us\": \"112 x 410\", \"mm\": \"45 x 118\", \"shape\": \"NI\", \"no\": 2, \"d\": 45, \"h\": 118, \"size\": \"\u03a645 \u00d7 118\"}, {\"oz\": 7.1, \"ml\": 210, \"us\": \"112 x 508\", \"mm\": \"45 x 140\", \"shape\": \"NI\", \"no\": 3, \"d\": 45, \"h\": 140, \"size\": \"\u03a645 \u00d7 140\"}, {\"oz\": 9.1, \"ml\": 270, \"us\": \"112 x 700\", \"mm\": \"45 x 178\", \"shape\": \"NI\", \"no\": 4, \"d\": 45, \"h\": 178, \"size\": \"\u03a645 \u00d7 178\"}, {\"oz\": 4.9, \"ml\": 145, \"us\": \"202 x 214\", \"mm\": \"52 x 73\", \"shape\": \"NI\", \"no\": 5, \"d\": 52, \"h\": 73, \"size\": \"\u03a652 \u00d7 73\"}, {\"oz\": 6.1, \"ml\": 179, \"us\": \"202 x 306\", \"mm\": \"52 x 86\", \"shape\": \"NI\", \"no\": 6, \"d\": 52, \"h\": 86, \"size\": \"\u03a652 \u00d7 86\"}, {\"oz\": 6.7, \"ml\": 198, \"us\": \"202 x 314\", \"mm\": \"52 x 99\", \"shape\": \"NI\", \"no\": 7, \"d\": 52, \"h\": 99, \"size\": \"\u03a652 \u00d7 99\"}, {\"oz\": 7.6, \"ml\": 225, \"us\": \"202 x 406\", \"mm\": \"52 x 110\", \"shape\": \"NI\", \"no\": 8, \"d\": 52, \"h\": 110, \"size\": \"\u03a652 \u00d7 110\"}, {\"oz\": 9.8, \"ml\": 290, \"us\": \"202 x 509\", \"mm\": \"52 x 140\", \"shape\": \"NI\", \"no\": 9, \"d\": 52, \"h\": 140, \"size\": \"\u03a652 \u00d7 140\"}, {\"oz\": 10.4, \"ml\": 309, \"us\": \"202 x 514\", \"mm\": \"52 x 149\", \"shape\": \"NI\", \"no\": 10, \"d\": 52, \"h\": 149, \"size\": \"\u03a652 \u00d7 149\"}, {\"oz\": 11.3, \"ml\": 334, \"us\": \"202 x 605\", \"mm\": \"52 x 161\", \"shape\": \"NI\", \"no\": 11, \"d\": 52, \"h\": 161, \"size\": \"\u03a652 \u00d7 161\"}, {\"oz\": 12.4, \"ml\": 367, \"us\": \"202 x 700\", \"mm\": \"52 x 178\", \"shape\": \"NI\", \"no\": 12, \"d\": 52, \"h\": 178, \"size\": \"\u03a652 \u00d7 178\"}, {\"oz\": 13.0, \"ml\": 384, \"us\": \"202 x 708\", \"mm\": \"52 x 191\", \"shape\": \"NI\", \"no\": 13, \"d\": 52, \"h\": 191, \"size\": \"\u03a652 \u00d7 191\"}, {\"oz\": 16.4, \"ml\": 485, \"us\": \"202 x 903\", \"mm\": \"52 x 234\", \"shape\": \"NI\", \"no\": 14, \"d\": 52, \"h\": 234, \"size\": \"\u03a652 \u00d7 234\"}, {\"oz\": 11.4, \"ml\": 290, \"us\": \"205 x 410\", \"mm\": \"57 x 118\", \"shape\": \"NI\", \"no\": 15, \"d\": 57, \"h\": 118, \"size\": \"\u03a657 \u00d7 118\"}, {\"oz\": 13.5, \"ml\": 396, \"us\": \"205 x 604\", \"mm\": \"57 x 159\", \"shape\": \"NI\", \"no\": 16, \"d\": 57, \"h\": 159, \"size\": \"\u03a657 \u00d7 159\"}, {\"oz\": 13.8, \"ml\": 405, \"us\": \"205 x 607\", \"mm\": \"57 x 164\", \"shape\": \"NI\", \"no\": 17, \"d\": 57, \"h\": 164, \"size\": \"\u03a657 \u00d7 164\"}, {\"oz\": 15.5, \"ml\": 458, \"us\": \"205 x 704\", \"mm\": \"57 x 185\", \"shape\": \"NI\", \"no\": 18, \"d\": 57, \"h\": 185, \"size\": \"\u03a657 \u00d7 185\"}, {\"oz\": 16.3, \"ml\": 482, \"us\": \"205 x 710\", \"mm\": \"57 x 194\", \"shape\": \"NI\", \"no\": 19, \"d\": 57, \"h\": 194, \"size\": \"\u03a657 \u00d7 194\"}, {\"oz\": 17.5, \"ml\": 517, \"us\": \"205 x 802\", \"mm\": \"57 x 206\", \"shape\": \"NI\", \"no\": 20, \"d\": 57, \"h\": 206, \"size\": \"\u03a657 \u00d7 206\"}, {\"oz\": 17.7, \"ml\": 525, \"us\": \"205 x 804\", \"mm\": \"57 x 209\", \"shape\": \"NI\", \"no\": 21, \"d\": 57, \"h\": 209, \"size\": \"\u03a657 \u00d7 209\"}, {\"oz\": 19.4, \"ml\": 575, \"us\": \"205 x 900\", \"mm\": \"57 x 229\", \"shape\": \"NI\", \"no\": 22, \"d\": 57, \"h\": 229, \"size\": \"\u03a657 \u00d7 229\"}, {\"oz\": 11.0, \"ml\": 325, \"us\": \"211 x 315\", \"mm\": \"65 x 100\", \"shape\": \"NI\", \"no\": 23, \"d\": 65, \"h\": 100, \"size\": \"\u03a665 \u00d7 100\"}, {\"oz\": 13.5, \"ml\": 399, \"us\": \"211 x 413\", \"mm\": \"65 x 122\", \"shape\": \"NI\", \"no\": 24, \"d\": 65, \"h\": 122, \"size\": \"\u03a665 \u00d7 122\"}, {\"oz\": 17.6, \"ml\": 520, \"us\": \"211 x 604\", \"mm\": \"65 x 158\", \"shape\": \"NI\", \"no\": 25, \"d\": 65, \"h\": 158, \"size\": \"\u03a665 \u00d7 158\"}, {\"oz\": 19.0, \"ml\": 562, \"us\": \"211 x 612\", \"mm\": \"65 x 172\", \"shape\": \"NI\", \"no\": 26, \"d\": 65, \"h\": 172, \"size\": \"\u03a665 \u00d7 172\"}, {\"oz\": 22.0, \"ml\": 651, \"us\": \"211 x 713\", \"mm\": \"65 x 198\", \"shape\": \"NI\", \"no\": 27, \"d\": 65, \"h\": 198, \"size\": \"\u03a665 \u00d7 198\"}, {\"oz\": 23.4, \"ml\": 685, \"us\": \"211 x 804\", \"mm\": \"65 x 209\", \"shape\": \"NI\", \"no\": 28, \"d\": 65, \"h\": 209, \"size\": \"\u03a665 \u00d7 209\"}, {\"oz\": 26.8, \"ml\": 789, \"us\": \"211 x 908\", \"mm\": \"65 x 241\", \"shape\": \"NI\", \"no\": 29, \"d\": 65, \"h\": 241, \"size\": \"\u03a665 \u00d7 241\"}, {\"oz\": 25.5, \"ml\": 754, \"us\": \"214 x 714\", \"mm\": \"70 x 200\", \"shape\": \"NI\", \"no\": 30, \"d\": 70, \"h\": 200, \"size\": \"\u03a670 \u00d7 200\"}, {\"oz\": 26.7, \"ml\": 789, \"us\": \"214 x 804\", \"mm\": \"70 x 209\", \"shape\": \"NI\", \"no\": 31, \"d\": 70, \"h\": 209, \"size\": \"\u03a670 \u00d7 209\"}, {\"oz\": 13.9, \"ml\": 411, \"us\": \"211 x 413\", \"mm\": \"65 x 122\", \"shape\": \"SS\", \"no\": 32, \"d\": 65, \"h\": 122, \"size\": \"\u03a665 \u00d7 122\"}, {\"oz\": 17.6, \"ml\": 532, \"us\": \"211 x 604\", \"mm\": \"65 x 158\", \"shape\": \"SS\", \"no\": 33, \"d\": 65, \"h\": 158, \"size\": \"\u03a665 \u00d7 158\"}, {\"oz\": 22.0, \"ml\": 668, \"us\": \"211 x 713\", \"mm\": \"65 x 198\", \"shape\": \"SS\", \"no\": 34, \"d\": 65, \"h\": 198, \"size\": \"\u03a665 \u00d7 198\"}, {\"oz\": 26.7, \"ml\": 790, \"us\": \"211 x 908\", \"mm\": \"65 x 241\", \"shape\": \"SS\", \"no\": 35, \"d\": 65, \"h\": 241, \"size\": \"\u03a665 \u00d7 241\"}];\r\n      var DEFAULTS = { shape: 'NI', diameter: 65, height: 198, mouth: 25.4, liquidRatio: 0.85 };\r\n      var PRODUCT_LINKS = {\r\n        '45_NI': { url: 'https:\/\/www.cnshining.com\/product\/45mm-neck-in-aerosol-can', title: '45mm Neck-In Aerosol Can' },\r\n        '52_NI': { url: 'https:\/\/www.cnshining.com\/product\/52mm-neck-in-aerosol-can', title: '52mm Neck-In Aerosol Can' },\r\n        '57_NI': { url: 'https:\/\/www.cnshining.com\/product\/57mm-neck-in-aerosol-can', title: '57mm Neck-In Aerosol Can' },\r\n        '60_NI': { url: 'https:\/\/www.cnshining.com\/product\/60mm-neck-in-aerosol-can', title: '60mm Neck-In Aerosol Can' },\r\n        '60_SS': { url: 'https:\/\/www.cnshining.com\/product\/60mm-sraight-wall-aerosol-can', title: '60mm Straight-Wall Aerosol Can' },\r\n        '65_NI': { url: 'https:\/\/www.cnshining.com\/product\/65mm-neck-in-aerosol-can', title: '65mm Neck-In Aerosol Can' },\r\n        '65_SS': { url: 'https:\/\/www.cnshining.com\/product\/65mm-sraight-wall-aerosol-can', title: '65mm Straight-Wall Aerosol Can' },\r\n        '70_NI': { url: 'https:\/\/www.cnshining.com\/product\/70mm-neck-in-aerosol-can', title: '70mm Neck-In Aerosol Can' }\r\n      };\r\n      var state = Object.assign({}, DEFAULTS);\r\n\r\n      var root = document.querySelector('[data-steel-aerosol-can-calculator]');\r\n      if (!root) return;\r\n\r\n      function $(id) { return root.querySelector('#' + id); }\r\n      function unique(list) { return Array.from(new Set(list)); }\r\n      function round(value, digits) {\r\n        var p = Math.pow(10, digits || 0);\r\n        return Math.round(value * p) \/ p;\r\n      }\r\n      function clamp(value, min, max) { return Math.min(max, Math.max(min, value)); }\r\n      function toNumber(value, fallback) {\r\n        var number = Number(value);\r\n        return Number.isFinite(number) ? number : fallback;\r\n      }\r\n      function formatMl(value) { return round(value, 0).toLocaleString('en-US') + ' ml'; }\r\n      function usFlOz(ml) { return ml \/ 29.5735295625; }\r\n      function ukFlOz(ml) { return ml \/ 28.4130625; }\r\n      function flOzText(ml) { return round(usFlOz(ml), 1) + ' US fl oz \/ ' + round(ukFlOz(ml), 1) + ' UK fl oz'; }\r\n      function shapeLabel(shape) { return shape === 'SS' ? 'Straight-Wall' : 'Neck-In'; }\r\n      function productKey(shape, diameter) { return String(diameter) + '_' + shape; }\r\n      function productForSelection() { return PRODUCT_LINKS[productKey(state.shape, state.diameter)] || null; }\r\n      function productDiameters() {\r\n        return unique(Object.keys(PRODUCT_LINKS).map(function (key) { return Number(key.split('_')[0]); }))\r\n          .filter(function (diameter) { return Number.isFinite(diameter); });\r\n      }\r\n      function productShapesForDiameter(diameter) {\r\n        return unique(Object.keys(PRODUCT_LINKS).filter(function (key) {\r\n          return Number(key.split('_')[0]) === Number(diameter);\r\n        }).map(function (key) { return key.split('_')[1]; }));\r\n      }\r\n\r\n      var HEIGHT_RULES = {\r\n        NI: { 45: [85, 180], 52: [98, 240], 57: [100, 240], 60: [100, 240], 65: [98, 300], 70: [100, 253] },\r\n        SS: { 45: [85, 180], 52: [98, 240], 57: [100, 240], 60: [100, 240], 65: [98, 240], 70: [100, 253] }\r\n      };\r\n\r\n      var PROFILE = {\r\n        NI: {\r\n          bottleCenter: 112.59,\r\n          bottomY: 528.78,\r\n          mouthY: 81.96,\r\n          mouthLeft: 72.6,\r\n          mouthRight: 153.54,\r\n          bodyTop: 150.36,\r\n          bodyBottom: 511.2,\r\n          bodyLeft: 26.7,\r\n          bodyRight: 198.48,\r\n          stretchBottomY: 510.78,\r\n          bottomLeft: 26.7,\r\n          bottomRight: 198.48,\r\n          bottomDimY: 528.78,\r\n          fillId: 'accFillNI',\r\n          profileId: 'accProfileNI',\r\n          liquidRectId: 'accLiquidRectNI'\r\n        },\r\n        SS: {\r\n          bottleCenter: 123,\r\n          bottomY: 541.38,\r\n          mouthY: 92.94,\r\n          mouthLeft: 83.22,\r\n          mouthRight: 164.16,\r\n          bodyTop: 153.42,\r\n          bodyBottom: 532.08,\r\n          bodyLeft: 38.88,\r\n          bodyRight: 207.54,\r\n          stretchBottomY: 531.9,\r\n          bottomLeft: 33.12,\r\n          bottomRight: 212.4,\r\n          bottomDimY: 541.38,\r\n          fillId: 'accFillSS',\r\n          profileId: 'accProfileSS',\r\n          liquidRectId: 'accLiquidRectSS'\r\n        }\r\n      };\r\n\r\n      function rangeFor(shape, diameter) {\r\n        return (HEIGHT_RULES[shape] && HEIGHT_RULES[shape][diameter]) || [100, 240];\r\n      }\r\n\r\n      function exactRow(shape, diameter, height) {\r\n        return DATA.find(function (row) { return row.shape === shape && row.d === Number(diameter) && row.h === Number(height); }) || null;\r\n      }\r\n\r\n      function rowsByShapeDiameter(shape, diameter) {\r\n        return DATA.filter(function (row) { return row.shape === shape && row.d === Number(diameter); })\r\n          .sort(function (a, b) { return a.h - b.h; });\r\n      }\r\n\r\n      function interpolateRows(rows, height) {\r\n        if (!rows.length) return null;\r\n        if (rows.length === 1) return rows[0].ml;\r\n        if (height <= rows[0].h) {\r\n          return rows[0].ml + (height - rows[0].h) * (rows[1].ml - rows[0].ml) \/ (rows[1].h - rows[0].h);\r\n        }\r\n        for (var i = 0; i < rows.length - 1; i += 1) {\r\n          var a = rows[i];\r\n          var b = rows[i + 1];\r\n          if (height >= a.h && height <= b.h) {\r\n            if (b.h === a.h) return a.ml;\r\n            return a.ml + (height - a.h) * (b.ml - a.ml) \/ (b.h - a.h);\r\n          }\r\n        }\r\n        var p = rows[rows.length - 2];\r\n        var q = rows[rows.length - 1];\r\n        return q.ml + (height - q.h) * (q.ml - p.ml) \/ (q.h - p.h);\r\n      }\r\n\r\n      function capacityAtKnownDiameter(shape, diameter, height) {\r\n        var rows = rowsByShapeDiameter(shape, diameter);\r\n        var row = exactRow(shape, diameter, height);\r\n        return { ml: row ? row.ml : interpolateRows(rows, height), exact: !!row, rows: rows };\r\n      }\r\n\r\n      function estimateCapacity(shape, diameter, height) {\r\n        var direct = capacityAtKnownDiameter(shape, diameter, height);\r\n        if (direct.ml !== null && Number.isFinite(direct.ml)) {\r\n          return { ml: direct.ml, source: direct.exact ? 'Exact table value' : 'Interpolated from table data', exact: direct.exact };\r\n        }\r\n\r\n        var diameters = unique(DATA.filter(function (row) { return row.shape === shape; }).map(function (row) { return row.d; })).sort(function (a, b) { return a - b; });\r\n        if (!diameters.length) diameters = unique(DATA.map(function (row) { return row.d; })).sort(function (a, b) { return a - b; });\r\n\r\n        var lower = null;\r\n        var upper = null;\r\n        diameters.forEach(function (d) {\r\n          if (d < diameter) lower = d;\r\n          if (d > diameter && upper === null) upper = d;\r\n        });\r\n\r\n        if (lower !== null && upper !== null) {\r\n          var lowMl = interpolateRows(rowsByShapeDiameter(shape, lower), height);\r\n          var highMl = interpolateRows(rowsByShapeDiameter(shape, upper), height);\r\n          if (Number.isFinite(lowMl) && Number.isFinite(highMl)) {\r\n            var ml = lowMl + (diameter - lower) * (highMl - lowMl) \/ (upper - lower);\r\n            return { ml: ml, source: 'Estimated from diameter interpolation', exact: false };\r\n          }\r\n        }\r\n\r\n        var nearest = diameters.reduce(function (best, d) {\r\n          return best === null || Math.abs(d - diameter) < Math.abs(best - diameter) ? d : best;\r\n        }, null);\r\n        var nearestMl = nearest !== null ? interpolateRows(rowsByShapeDiameter(shape, nearest), height) : null;\r\n        if (Number.isFinite(nearestMl)) {\r\n          return { ml: nearestMl * Math.pow(diameter \/ nearest, 2), source: 'Estimated by diameter scaling', exact: false };\r\n        }\r\n        return { ml: 0, source: 'No capacity data', exact: false };\r\n      }\r\n\r\n      function addOption(select, value, label) {\r\n        var opt = document.createElement('option');\r\n        opt.value = value;\r\n        opt.textContent = label;\r\n        select.appendChild(opt);\r\n      }\r\n\r\n      function sortedShapes(shapes) {\r\n        var order = { NI: 1, SS: 2 };\r\n        return unique(shapes).sort(function (a, b) { return (order[a] || 99) - (order[b] || 99); });\r\n      }\r\n\r\n      function availableDiameters() {\r\n        return unique(DATA.map(function (row) { return row.d; }).concat(productDiameters())).sort(function (a, b) { return a - b; });\r\n      }\r\n\r\n      function availableShapesForDiameter(diameter) {\r\n        var dataShapes = DATA.filter(function (row) { return row.d === Number(diameter); }).map(function (row) { return row.shape; });\r\n        return sortedShapes(dataShapes.concat(productShapesForDiameter(diameter)));\r\n      }\r\n\r\n      function populateDiameters() {\r\n        var select = $('accDiameter');\r\n        select.innerHTML = '';\r\n        var diameters = availableDiameters();\r\n        diameters.forEach(function (diameter) { addOption(select, String(diameter), '\u03a6' + diameter + ' mm'); });\r\n        if (diameters.indexOf(state.diameter) === -1) state.diameter = diameters.indexOf(DEFAULTS.diameter) !== -1 ? DEFAULTS.diameter : diameters[0];\r\n        select.value = String(state.diameter);\r\n      }\r\n\r\n      function populateShapes() {\r\n        var select = $('accShape');\r\n        var shapes = availableShapesForDiameter(state.diameter);\r\n        select.innerHTML = '';\r\n        shapes.forEach(function (shape) { addOption(select, shape, shapeLabel(shape)); });\r\n        if (shapes.indexOf(state.shape) === -1) state.shape = shapes[0] || DEFAULTS.shape;\r\n        select.value = state.shape;\r\n        select.disabled = shapes.length <= 1;\r\n      }\r\n\r\n      function setLine(line, x1, y1, x2, y2) {\r\n        line.setAttribute('x1', round(x1, 2));\r\n        line.setAttribute('y1', round(y1, 2));\r\n        line.setAttribute('x2', round(x2, 2));\r\n        line.setAttribute('y2', round(y2, 2));\r\n      }\r\n\r\n      function setText(text, x, y, value) {\r\n        text.setAttribute('x', round(x, 2));\r\n        text.setAttribute('y', round(y, 2));\r\n        if (value !== undefined) text.textContent = value;\r\n      }\r\n\r\n      function clearHeightError() {\r\n        var error = $('accHeightError');\r\n        var input = $('accHeight');\r\n        if (error) {\r\n          error.textContent = '';\r\n          error.classList.remove('is-visible');\r\n        }\r\n        if (input) input.classList.remove('is-error');\r\n      }\r\n\r\n      function showHeightError(message) {\r\n        var error = $('accHeightError');\r\n        var input = $('accHeight');\r\n        if (error) {\r\n          error.textContent = message;\r\n          error.classList.add('is-visible');\r\n        }\r\n        if (input) input.classList.add('is-error');\r\n      }\r\n\r\n      var PROFILE_GEOMETRY = null;\r\n      var VISUAL_BODY_MM_TO_PX = 1.55;\r\n      var REFERENCE_HEIGHT = DEFAULTS.height;\r\n\r\n      function formatSvgNumber(value) {\r\n        return String(round(value, 3)).replace(\/\\.0+$\/, '');\r\n      }\r\n\r\n      function visualMetrics(profile) {\r\n        var sx = clamp(state.diameter \/ 65, 0.72, 1.12);\r\n        var baseBodyLength = profile.bodyBottom - profile.bodyTop;\r\n        var requestedDelta = (state.height - REFERENCE_HEIGHT) * VISUAL_BODY_MM_TO_PX;\r\n        var dynamicBodyLength = clamp(baseBodyLength + requestedDelta, 130, 560);\r\n        var deltaY = dynamicBodyLength - baseBodyLength;\r\n        return {\r\n          sx: sx,\r\n          deltaY: deltaY,\r\n          bodyBottomY: profile.bodyBottom + deltaY,\r\n          bottomY: profile.bottomY + deltaY\r\n        };\r\n      }\r\n\r\n      function xPoint(profile, x, metrics) {\r\n        return profile.bottleCenter + (x - profile.bottleCenter) * metrics.sx;\r\n      }\r\n\r\n      function yPoint(profile, y, metrics) {\r\n        var stretchBottomY = profile.stretchBottomY || profile.bodyBottom;\r\n        return y >= stretchBottomY - 0.001 ? y + metrics.deltaY : y;\r\n      }\r\n\r\n      function point(profile, x, y, metrics) {\r\n        return {\r\n          x: xPoint(profile, x, metrics),\r\n          y: yPoint(profile, y, metrics)\r\n        };\r\n      }\r\n\r\n      function captureProfileGeometry() {\r\n        PROFILE_GEOMETRY = {};\r\n        ['NI', 'SS'].forEach(function (shape) {\r\n          var group = $(PROFILE[shape].profileId);\r\n          var clipSelector = shape === 'NI' ? '#accClipNeckIn path' : '#accClipStraight path';\r\n          var clipPath = root.querySelector(clipSelector);\r\n          PROFILE_GEOMETRY[shape] = {\r\n            lines: Array.from(group.querySelectorAll('line')).map(function (node) {\r\n              return {\r\n                node: node,\r\n                x1: toNumber(node.getAttribute('x1'), 0),\r\n                y1: toNumber(node.getAttribute('y1'), 0),\r\n                x2: toNumber(node.getAttribute('x2'), 0),\r\n                y2: toNumber(node.getAttribute('y2'), 0)\r\n              };\r\n            }),\r\n            polylines: Array.from(group.querySelectorAll('polyline')).map(function (node) {\r\n              return {\r\n                node: node,\r\n                points: (node.getAttribute('points') || '').trim().split(\/\\s+\/).map(function (pair) {\r\n                  var xy = pair.split(',');\r\n                  return { x: toNumber(xy[0], 0), y: toNumber(xy[1], 0) };\r\n                })\r\n              };\r\n            }),\r\n            clipPath: clipPath ? { node: clipPath, d: clipPath.getAttribute('d') || '' } : null\r\n          };\r\n        });\r\n      }\r\n\r\n      function transformAbsolutePathY(d, profile, metrics) {\r\n        var index = 0;\r\n        return d.replace(\/-?\\d*\\.?\\d+(?:e[-+]?\\d+)?\/gi, function (match) {\r\n          var value = Number(match);\r\n          var nextValue = index % 2 === 1 ? yPoint(profile, value, metrics) : value;\r\n          index += 1;\r\n          return formatSvgNumber(nextValue);\r\n        });\r\n      }\r\n\r\n      function applyDynamicProfile(shape, profile, metrics) {\r\n        if (!PROFILE_GEOMETRY || !PROFILE_GEOMETRY[shape]) return;\r\n        var geometry = PROFILE_GEOMETRY[shape];\r\n\r\n        geometry.lines.forEach(function (line) {\r\n          setLine(\r\n            line.node,\r\n            line.x1,\r\n            yPoint(profile, line.y1, metrics),\r\n            line.x2,\r\n            yPoint(profile, line.y2, metrics)\r\n          );\r\n        });\r\n\r\n        geometry.polylines.forEach(function (polyline) {\r\n          var points = polyline.points.map(function (p) {\r\n            return formatSvgNumber(p.x) + ',' + formatSvgNumber(yPoint(profile, p.y, metrics));\r\n          }).join(' ');\r\n          polyline.node.setAttribute('points', points);\r\n        });\r\n\r\n        if (geometry.clipPath) {\r\n          geometry.clipPath.node.setAttribute('d', transformAbsolutePathY(geometry.clipPath.d, profile, metrics));\r\n        }\r\n      }\r\n\r\n      function updateHeightRules(options) {\r\n        options = options || {};\r\n        var r = rangeFor(state.shape, state.diameter);\r\n        var input = $('accHeight');\r\n        var rawHeight = options.rawHeight !== undefined ? options.rawHeight : state.height;\r\n        var parsedHeight = toNumber(rawHeight, state.height);\r\n        if (!Number.isFinite(parsedHeight)) parsedHeight = DEFAULTS.height;\r\n        var clampedHeight = clamp(parsedHeight, r[0], r[1]);\r\n\r\n        input.min = r[0];\r\n        input.max = r[1];\r\n        $('accHeightHelp').textContent = 'Allowed range: ' + r[0] + '\u2013' + r[1] + ' mm';\r\n\r\n        state.height = clampedHeight;\r\n        input.value = String(round(state.height, 0));\r\n\r\n        if (options.showError && parsedHeight !== clampedHeight) {\r\n          showHeightError('Height must be between ' + r[0] + ' and ' + r[1] + ' mm. It has been adjusted to ' + round(clampedHeight, 0) + ' mm.');\r\n        } else {\r\n          clearHeightError();\r\n        }\r\n\r\n        return parsedHeight !== clampedHeight;\r\n      }\r\n\r\n      function updateSvg(fullMl, liquidMl) {\r\n        var shape = state.shape;\r\n        var profile = PROFILE[shape];\r\n        var metrics = visualMetrics(profile);\r\n        var transform = 'translate(' + profile.bottleCenter + ' 0) scale(' + metrics.sx + ' 1) translate(' + (-profile.bottleCenter) + ' 0)';\r\n        $('accBottleScaler').setAttribute('transform', transform);\r\n        applyDynamicProfile(shape, profile, metrics);\r\n\r\n        ['NI', 'SS'].forEach(function (s) {\r\n          $(PROFILE[s].fillId).classList.toggle('is-active', s === shape);\r\n          $(PROFILE[s].profileId).classList.toggle('is-active', s === shape);\r\n        });\r\n\r\n        var ratio = fullMl > 0 ? clamp(liquidMl \/ fullMl, 0, 1) : DEFAULTS.liquidRatio;\r\n        var liquidY = metrics.bodyBottomY - (metrics.bodyBottomY - profile.bodyTop) * ratio;\r\n        var liquidRect = $(profile.liquidRectId);\r\n        liquidRect.setAttribute('y', round(liquidY, 2));\r\n        var fillableBottomY = metrics.bottomY - 10;\r\n        liquidRect.setAttribute('height', round(Math.max(0, fillableBottomY - liquidY), 2));\r\n\r\n        var mouthL = point(profile, profile.mouthLeft, profile.mouthY, metrics);\r\n        var mouthR = point(profile, profile.mouthRight, profile.mouthY, metrics);\r\n        var bottomL = point(profile, profile.bottomLeft, profile.bottomDimY, metrics);\r\n        var bottomR = point(profile, profile.bottomRight, profile.bottomDimY, metrics);\r\n        var bodyLx = xPoint(profile, profile.bodyLeft + 9, metrics);\r\n        var bodyRx = xPoint(profile, profile.bodyRight - 9, metrics);\r\n\r\n        setLine($('accLiquidLevelLine'), bodyLx, liquidY, bodyRx, liquidY);\r\n\r\n        var mouthY = Math.max(24, mouthL.y - 18);\r\n        setLine($('accMouthExtL'), mouthL.x, mouthL.y, mouthL.x, mouthY + 6);\r\n        setLine($('accMouthExtR'), mouthR.x, mouthR.y, mouthR.x, mouthY + 6);\r\n        setLine($('accMouthLine'), mouthL.x + 7, mouthY + 8, mouthR.x - 7, mouthY + 8);\r\n        setText($('accSvgMouth'), (mouthL.x + mouthR.x) \/ 2, mouthY, '\u00d8' + DEFAULTS.mouth + ' mm');\r\n\r\n        var bottomY = bottomL.y - 18;\r\n        setLine($('accBottomExtL'), bottomL.x, bottomL.y, bottomL.x, bottomY + 7);\r\n        setLine($('accBottomExtR'), bottomR.x, bottomR.y, bottomR.x, bottomY + 7);\r\n        setLine($('accBottomLine'), bottomL.x + 9, bottomY + 8, bottomR.x - 9, bottomY + 8);\r\n        setText($('accSvgBottom'), (bottomL.x + bottomR.x) \/ 2, bottomY, '\u00d8' + state.diameter + ' mm');\r\n\r\n        var heightX = bottomR.x + 42;\r\n        var topRef = mouthL.y;\r\n        setLine($('accHeightExtTop'), mouthR.x, topRef, heightX + 7, topRef);\r\n        setLine($('accHeightExtBottom'), bottomR.x, bottomR.y, heightX + 7, bottomR.y);\r\n        setLine($('accHeightLine'), heightX, topRef + 10, heightX, bottomR.y - 10);\r\n        var heightMidY = (topRef + bottomR.y) \/ 2;\r\n        var heightText = $('accSvgHeight');\r\n        setText(heightText, heightX + 18, heightMidY, round(state.height, 0) + ' mm');\r\n        heightText.setAttribute('transform', 'rotate(-90 ' + round(heightX + 18, 2) + ' ' + round(heightMidY, 2) + ')');\r\n\r\n        var leftBodyX = xPoint(profile, profile.bodyLeft, metrics);\r\n        var rightBodyX = xPoint(profile, profile.bodyRight, metrics);\r\n        var centerX = (leftBodyX + rightBodyX) \/ 2;\r\n        var bodyWidth = Math.abs(rightBodyX - leftBodyX);\r\n        var ingredientY = metrics.bodyBottomY - (metrics.bodyBottomY - profile.bodyTop) * 0.12;\r\n        var ingredients = $('accIngredientsText');\r\n        var fontSize = clamp(bodyWidth * 0.085, 9, 15);\r\n        setText(ingredients, centerX, ingredientY, 'Ingredients');\r\n        ingredients.setAttribute('font-size', round(fontSize, 2));\r\n        ingredients.setAttribute('textLength', round(bodyWidth * 0.58, 2));\r\n        ingredients.setAttribute('lengthAdjust', 'spacingAndGlyphs');\r\n\r\n        var viewWidth = Math.max(315, Math.ceil(heightX + 58));\r\n        var viewHeight = Math.max(560, Math.ceil(bottomR.y + 26));\r\n        $('accCanSvg').setAttribute('viewBox', '-18 0 ' + viewWidth + ' ' + viewHeight);\r\n      }\r\n\r\n      function renderCurrentRows() {\r\n        var body = $('accCurrentRows');\r\n        body.innerHTML = '';\r\n        var rows = rowsByShapeDiameter(state.shape, state.diameter);\r\n        var tableRows = rows.length ? rows.map(function (row) { return Object.assign({}, row, { estimated: false }); }) : [];\r\n\r\n        if (!tableRows.length) {\r\n          var r = rangeFor(state.shape, state.diameter);\r\n          var anchors = [r[0], Math.round((r[0] + r[1]) \/ 2), r[1]];\r\n          tableRows = anchors.map(function (h, index) {\r\n            var cap = estimateCapacity(state.shape, state.diameter, h).ml;\r\n            return { d: state.diameter, h: h, ml: round(cap, 0), us: '\u2014', shape: state.shape, size: '\u03a6' + state.diameter + ' \u00d7 ' + h, estimated: true, no: index };\r\n          });\r\n        }\r\n\r\n        tableRows.forEach(function (row) {\r\n          var tr = document.createElement('tr');\r\n          var active = row.d === state.diameter && row.h === round(state.height, 0) && row.shape === state.shape;\r\n          if (active) tr.className = 'is-active';\r\n          tr.innerHTML = '' +\r\n            '<td>' + row.d + ' x ' + row.h + '<\/td>' +\r\n            '<td>' + shapeLabel(row.shape) + '<\/td>' +\r\n            '<td>' + row.ml + (row.estimated ? ' est.' : '') + '<\/td>' +\r\n            '<td>' + row.us + '<\/td>';\r\n          tr.addEventListener('click', function () {\r\n            state.height = row.h;\r\n            sync(false);\r\n          });\r\n          body.appendChild(tr);\r\n        });\r\n        $('accMiniCount').textContent = tableRows.length + (rows.length ? ' sizes' : ' est.');\r\n      }\r\n\r\n      function updateProductCta() {\r\n        var cta = $('accProductCta');\r\n        if (!cta) return;\r\n\r\n        var product = productForSelection();\r\n        if (!product) {\r\n          cta.hidden = true;\r\n          return;\r\n        }\r\n\r\n        var selectedLabel = 'Selected: \u03a6' + state.diameter + ' mm, ' + shapeLabel(state.shape) + ', height ' + round(state.height, 0) + ' mm.';\r\n        var button = $('accProductBtn');\r\n\r\n        cta.hidden = false;\r\n        $('accProductTitle').textContent = product.title;\r\n        $('accProductDesc').textContent = selectedLabel;\r\n        button.href = product.url;\r\n        button.setAttribute('aria-label', 'View ' + product.title);\r\n      }\r\n\r\n      function render() {\r\n        var cap = estimateCapacity(state.shape, state.diameter, state.height);\r\n        var fullMl = Math.max(0, cap.ml);\r\n        var liquidMl = fullMl * DEFAULTS.liquidRatio;\r\n        var exact = exactRow(state.shape, state.diameter, round(state.height, 0));\r\n\r\n        $('accFullValue').textContent = formatMl(fullMl);\r\n        $('accFullSub').textContent = flOzText(fullMl);\r\n        $('accLiquidValue').textContent = formatMl(liquidMl);\r\n        $('accLiquidSub').textContent = flOzText(liquidMl);\r\n        $('accStatusSize').textContent = '\u03a6' + state.diameter + ' \u00d7 ' + round(state.height, 0);\r\n        $('accStatusShape').textContent = shapeLabel(state.shape);\r\n        $('accStatusMouth').textContent = '\u00d8' + DEFAULTS.mouth + ' mm';\r\n        $('accChipSource').textContent = cap.source;\r\n        $('accChipCanSizeMm').textContent = exact ? 'Metric size ' + exact.mm : 'Metric size \u03a6' + state.diameter + ' \u00d7 ' + round(state.height, 0);\r\n        $('accChipCanSizeUs').textContent = exact ? 'US size ' + exact.us : 'US size \u2014';\r\n\r\n        updateProductCta();\r\n        updateSvg(fullMl, liquidMl);\r\n        renderCurrentRows();\r\n      }\r\n\r\n      function sync(softHeight, notifyClamp) {\r\n        state.diameter = Number($('accDiameter').value);\r\n        state.shape = $('accShape').value || state.shape;\r\n        populateDiameters();\r\n        populateShapes();\r\n        if (softHeight) {\r\n          state.height = toNumber($('accHeight').value, state.height);\r\n        }\r\n        updateHeightRules({ rawHeight: state.height, showError: !!notifyClamp });\r\n        $('accShape').value = state.shape;\r\n        $('accDiameter').value = String(state.diameter);\r\n        render();\r\n      }\r\n\r\n      function init() {\r\n        captureProfileGeometry();\r\n        populateDiameters();\r\n        populateShapes();\r\n        $('accShape').value = state.shape;\r\n        $('accDiameter').value = String(state.diameter);\r\n        updateHeightRules({ rawHeight: state.height, showError: false });\r\n\r\n        $('accShape').addEventListener('change', function () { sync(false, true); });\r\n        $('accDiameter').addEventListener('change', function () { sync(false, true); });\r\n        $('accHeight').addEventListener('input', function () {\r\n          clearHeightError();\r\n          state.height = toNumber(this.value, state.height);\r\n          render();\r\n        });\r\n        $('accHeight').addEventListener('change', function () { sync(true, true); });\r\n        $('accHeight').addEventListener('blur', function () { sync(true, true); });\r\n        $('accHeight').addEventListener('keydown', function (event) {\r\n          if (event.key === 'Enter') {\r\n            event.preventDefault();\r\n            sync(true, true);\r\n            this.blur();\r\n          }\r\n        });\r\n        sync(false, false);\r\n      }\r\n\r\n      init();\r\n    })();\r\n  <\/script>\r\n<\/section>\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>","protected":false},"excerpt":{"rendered":"<p>Accueil \/ Centre d&#039;outils d&#039;emballage A\u00e9rosols en acier Calculateur de capacit\u00e9 pour a\u00e9rosols en acier Choisissez le diam\u00e8tre, la hauteur et la forme. Aper\u00e7u dynamique Ingr\u00e9dients \u00d825,4 mm \u00d865 mm 198 mm Taille s\u00e9lectionn\u00e9e \u03a665 \u00d7 198 Forme Col vers l&#039;int\u00e9rieur Ouverture \u00d825,4 mm Taille et capacit\u00e9 Diam\u00e8tre du fond \u03a645 mm \u03a652 mm \u03a657 mm \u03a660 mm \u03a665 mm \u03a670 mm Forme Col vers l&#039;int\u00e9rieur Paroi droite Hauteur Plage autoris\u00e9e\u00a0: 98\u2013300 [\u2026]<\/p>","protected":false},"author":1,"featured_media":0,"parent":48526,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-48516","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/pages\/48516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/comments?post=48516"}],"version-history":[{"count":12,"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/pages\/48516\/revisions"}],"predecessor-version":[{"id":48616,"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/pages\/48516\/revisions\/48616"}],"up":[{"embeddable":true,"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/pages\/48526"}],"wp:attachment":[{"href":"https:\/\/www.cnshining.com\/fr\/wp-json\/wp\/v2\/media?parent=48516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}