{"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-02T02:03:21","modified_gmt":"2026-06-02T02:03:21","slug":"calculadora-de-capacidad-de-latas-de-aerosol-de-acero","status":"publish","type":"page","link":"https:\/\/www.cnshining.com\/es\/centro-de-herramientas-de-embalaje\/calculadora-de-capacidad-de-latas-de-aerosol-de-acero","title":{"rendered":"Calculadora de capacidad de latas de aerosol de acero"},"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\/es\" 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\">Hogar \/<\/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\/es\/centro-de-herramientas-de-embalaje\/\" target=\"_blank\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Centro de herramientas de embalaje<\/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 h1,\r\n    #acc-calculator h2,\r\n    #acc-calculator h3,\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 h1 {\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 h2 {\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 h3 {\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\">Lata de aerosol de acero<\/div>\r\n      <h1>Calculadora de capacidad de latas de aerosol de acero<\/h1>\r\n      <p>Elige el di\u00e1metro, la altura y la forma.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"acc-workspace\">\r\n      <section class=\"acc-preview-panel\" aria-label=\"Vista previa de la lata de aerosol de acero\">\r\n        <div class=\"acc-section-title\">\r\n          <div>\r\n            <h2>Vista previa din\u00e1mica<\/h2>\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=\"Diagrama de lata de aerosol de acero\">\r\n            <defs>\r\n              <lineargradient id=\"accMetalGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\r\n                <stop offset=\"0%\" stop-color=\"#d6dde6\" \/>\r\n                <stop offset=\"18%\" stop-color=\"#eef2f7\" \/>\r\n                <stop offset=\"48%\" stop-color=\"#dfe6ee\" \/>\r\n                <stop offset=\"74%\" stop-color=\"#f7f9fc\" \/>\r\n                <stop offset=\"100%\" stop-color=\"#c7d1de\" \/>\r\n              <\/lineargradient>\r\n              <lineargradient id=\"accLiquidGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\r\n                <stop offset=\"0%\" stop-color=\"#9ec5f4\" \/>\r\n                <stop offset=\"45%\" stop-color=\"#c8e1ff\" \/>\r\n                <stop offset=\"100%\" stop-color=\"#8dbbef\" \/>\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\" \/>\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\" \/>\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\">\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=\"0\" width=\"280\" height=\"560\" 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 527.34 28.32 527.88 28.62 528.3 29.04 528.6 29.58 528.72\" 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 131.94 30.6 132.06 30.18 132.36 29.88 132.78 29.76 133.32\" 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 519.72 29.04 519.84 28.62 520.14 28.32 520.56 28.2 521.1\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"26.76 511.2 26.94 513 27.36 514.74 27.9 516.48 28.68 518.1 29.58 519.66\" 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 139.56 29.88 140.1 30.18 140.52 30.6 140.82 31.14 140.94\" 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 528.3 196.2 528.18 196.62 527.88 196.92 527.46 197.04 526.92\" 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 133.74 195.36 133.2 195.06 132.78 194.64 132.48 194.1 132.36\" 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 520.68 196.92 520.14 196.62 519.72 196.2 519.42 195.66 519.3\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"195.66 519.24 196.56 517.68 197.34 516.06 197.88 514.32 198.3 512.58 198.48 510.78\" class=\"acc-profile-line\"><\/polyline>\r\n                <polyline points=\"194.1 141.36 194.64 141.24 195.06 140.94 195.36 140.52 195.48 139.98\" 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 144.48 31.26 144.06 31.74 143.46 32.16 142.74 32.4 142.02\" 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 142.44 193.08 143.16 193.5 143.88 193.98 144.48 194.58 144.9\" 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=\"30\" y1=\"210\" x2=\"195\" y2=\"210\"><\/line>\r\n              <text id=\"accIngredientsText\" class=\"acc-ingredient-text\" x=\"112\" y=\"480\">Ingredientes<\/text>\r\n              <g id=\"accDimensionGroup\">\r\n                <line id=\"accMouthExtL\" class=\"acc-dim-extension\" x1=\"72\" y1=\"82\" x2=\"72\" y2=\"62\"><\/line>\r\n                <line id=\"accMouthExtR\" class=\"acc-dim-extension\" x1=\"154\" y1=\"82\" x2=\"154\" y2=\"62\"><\/line>\r\n                <line id=\"accMouthLine\" class=\"acc-dim-line\" x1=\"82\" y1=\"66\" x2=\"144\" y2=\"66\"><\/line>\r\n                <text id=\"accSvgMouth\" class=\"acc-dim-text\" x=\"113\" y=\"58\" text-anchor=\"middle\">\u00d825,4 mm<\/text>\r\n\r\n                <line id=\"accBottomExtL\" class=\"acc-dim-extension\" x1=\"27\" y1=\"529\" x2=\"27\" y2=\"508\"><\/line>\r\n                <line id=\"accBottomExtR\" class=\"acc-dim-extension\" x1=\"198\" y1=\"529\" x2=\"198\" y2=\"508\"><\/line>\r\n                <line id=\"accBottomLine\" class=\"acc-dim-line\" x1=\"36\" y1=\"512\" x2=\"189\" y2=\"512\"><\/line>\r\n                <text id=\"accSvgBottom\" class=\"acc-dim-text\" x=\"112\" y=\"502\" text-anchor=\"middle\">\u00d865 mm<\/text>\r\n\r\n                <line id=\"accHeightExtTop\" class=\"acc-dim-extension\" x1=\"198\" y1=\"82\" x2=\"242\" y2=\"82\"><\/line>\r\n                <line id=\"accHeightExtBottom\" class=\"acc-dim-extension\" x1=\"198\" y1=\"529\" x2=\"242\" y2=\"529\"><\/line>\r\n                <line id=\"accHeightLine\" class=\"acc-dim-line\" x1=\"236\" y1=\"91\" x2=\"236\" y2=\"520\"><\/line>\r\n                <text id=\"accSvgHeight\" class=\"acc-dim-text\" x=\"254\" y=\"305\" transform=\"rotate(-90 254 305)\" 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>Tama\u00f1o seleccionado<\/span>\r\n            <strong id=\"accStatusSize\">\u2014<\/strong>\r\n          <\/div>\r\n          <div class=\"acc-status\">\r\n            <span>Forma<\/span>\r\n            <strong id=\"accStatusShape\">\u2014<\/strong>\r\n          <\/div>\r\n          <div class=\"acc-status\">\r\n            <span>Boca<\/span>\r\n            <strong id=\"accStatusMouth\">\u2014<\/strong>\r\n          <\/div>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"acc-panel\" aria-label=\"Controles de capacidad\">\r\n        <div class=\"acc-section-title\">\r\n          <div>\r\n            <h2>Tama\u00f1o y capacidad<\/h2>\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\">Di\u00e1metro inferior<\/label>\r\n            <select id=\"accDiameter\" class=\"acc-native-select\"><\/select>\r\n          <\/div>\r\n          <div class=\"acc-field\">\r\n            <label for=\"accShape\">Forma<\/label>\r\n            <select id=\"accShape\" class=\"acc-native-select\">\r\n              <option value=\"NI\">Cuello hacia adentro<\/option>\r\n              <option value=\"SS\">Pared recta<\/option>\r\n            <\/select>\r\n          <\/div>\r\n          <div class=\"acc-field\" style=\"grid-column: 1 \/ -1;\">\r\n            <label for=\"accHeight\">Altura<\/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\">Rango permitido \u2014<\/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>Capacidad completa<\/span>\r\n            <strong id=\"accFullValue\">\u2014<\/strong>\r\n            <small id=\"accFullSub\">onzas l\u00edquidas estadounidenses \/ onzas l\u00edquidas brit\u00e1nicas<\/small>\r\n          <\/div>\r\n          <div class=\"acc-result-card is-primary\">\r\n            <span>Gas l\u00edquido<\/span>\r\n            <strong id=\"accLiquidValue\">\u2014<\/strong>\r\n            <small id=\"accLiquidSub\">onzas l\u00edquidas estadounidenses \/ onzas l\u00edquidas brit\u00e1nicas<\/small>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"acc-chip-row\">\r\n          <span class=\"acc-chip\" id=\"accChipSource\">\u2014<\/span>\r\n          <span class=\"acc-chip\" id=\"accChipCanSizeMm\">Tama\u00f1o m\u00e9trico \u2014<\/span>\r\n          <span class=\"acc-chip\" id=\"accChipCanSizeUs\">Talla estadounidense \u2014<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"acc-product-cta\" id=\"accProductCta\" hidden>\r\n          <div class=\"acc-product-copy\">\r\n            <span>P\u00e1gina del producto correspondiente<\/span>\r\n            <strong id=\"accProductTitle\">\u2014<\/strong>\r\n            <p id=\"accProductDesc\">Abra la p\u00e1gina del producto correspondiente al di\u00e1metro y la forma de lata seleccionados.<\/p>\r\n          <\/div>\r\n          <a id=\"accProductBtn\" class=\"acc-product-btn\" href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Ver producto<\/a>\r\n        <\/div>\r\n\r\n        <div class=\"acc-mini-table\" aria-label=\"Tabla de altura de di\u00e1metro actual\">\r\n          <div class=\"acc-mini-head\">\r\n            <h3>Alturas de di\u00e1metro recomendadas<\/h3>\r\n            <div class=\"acc-chip\" id=\"accMiniCount\">\u2014<\/div>\r\n          <\/div>\r\n          <div class=\"acc-mini-scroll\">\r\n            <table>\r\n              <thead>\r\n                <tr>\r\n                  <th>Tama\u00f1o de la lata (mm)<\/th>\r\n                  <th>Forma<\/th>\r\n                  <th>Volumen (ml)<\/th>\r\n                  <th>Tama\u00f1o de lata (EE. UU.)<\/th>\r\n                <\/tr>\r\n              <\/thead>\r\n              <tbody id=\"accCurrentRows\"><\/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>Inicio \/ Centro de herramientas de embalaje Lata de aerosol de acero Calculadora de capacidad de lata de aerosol de acero Elija di\u00e1metro, altura y forma. Vista previa din\u00e1mica Ingredientes \u00d825,4 mm \u00d865 mm 198 mm Tama\u00f1o seleccionado \u2014 Forma \u2014 Boca \u2014 Tama\u00f1o y capacidad Di\u00e1metro inferior Forma Cuello-en-Pared recta Altura Rango permitido \u2014 Capacidad total \u2014 US fl oz \/ UK fl oz [\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\/es\/wp-json\/wp\/v2\/pages\/48516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/comments?post=48516"}],"version-history":[{"count":9,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages\/48516\/revisions"}],"predecessor-version":[{"id":48575,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages\/48516\/revisions\/48575"}],"up":[{"embeddable":true,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages\/48526"}],"wp:attachment":[{"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/media?parent=48516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}