{"id":48366,"date":"2026-05-26T06:39:20","date_gmt":"2026-05-26T06:39:20","guid":{"rendered":"https:\/\/www.cnshining.com\/?page_id=48366"},"modified":"2026-06-02T02:03:09","modified_gmt":"2026-06-02T02:03:09","slug":"calculadora-de-capacidad-de-botellas-de-aluminio","status":"publish","type":"page","link":"https:\/\/www.cnshining.com\/es\/centro-de-herramientas-de-embalaje\/calculadora-de-capacidad-de-botellas-de-aluminio","title":{"rendered":"Calculadora de capacidad de botellas de aluminio"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"48366\" class=\"elementor elementor-48366\" 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-d381fd4 elementor-icon-list--layout-inline elementor-align-center elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"d381fd4\" 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=\"abc-calculator\" class=\"sp-bottle-capacity-calculator\" data-sp-bottle-capacity-calculator>\r\n  <style>\r\n    #abc-calculator,\r\n    #abc-calculator * {\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    #abc-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-silver: #eef3fa;\r\n      --sp-shadow: 0 20px 48px rgba(8, 42, 94, .08);\r\n      --abc-value-size: 24px;\r\n\r\n      max-width: 1180px;\r\n      margin: 28px auto;\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    #abc-calculator h2,\r\n    #abc-calculator h3,\r\n    #abc-calculator p {\r\n      margin: 0;\r\n    }\r\n\r\n    #abc-calculator .abc-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(24px, 5vw, 56px);\r\n      box-shadow: 0 12px 30px rgba(15, 36, 74, .04);\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator .abc-hero {\r\n      width: 100%;\r\n      margin-bottom: clamp(24px, 4vw, 36px);\r\n    }\r\n\r\n    #abc-calculator .abc-badge {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      padding: 8px 14px;\r\n      margin-bottom: 18px;\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: 800;\r\n      letter-spacing: .02em;\r\n      text-transform: uppercase;\r\n    }\r\n\r\n    #abc-calculator .abc-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      flex: 0 0 auto;\r\n    }\r\n\r\n    #abc-calculator .abc-intro h2 {\r\n      margin-bottom: 18px;\r\n      color: var(--sp-blue-dark);\r\n      font-size: clamp(28px, 4vw, 40px);\r\n      line-height: .98;\r\n      letter-spacing: -.05em;\r\n      max-width: 980px;\r\n    }\r\n\r\n    #abc-calculator .abc-intro p {\r\n      max-width: 980px;\r\n      color: var(--sp-muted);\r\n      font-size: clamp(16px, 2vw, 18px);\r\n      line-height: 1.75;\r\n    }\r\n\r\n    #abc-calculator .abc-feature-row {\r\n      display: grid;\r\n      grid-template-columns: repeat(3, minmax(0, 1fr));\r\n      gap: 14px;\r\n      margin-top: 28px;\r\n      width: 100%;\r\n    }\r\n\r\n    #abc-calculator .abc-feature {\r\n      background: #fff;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 18px;\r\n      padding: 16px;\r\n      min-height: 112px;\r\n    }\r\n\r\n    #abc-calculator .abc-feature strong {\r\n      display: block;\r\n      color: var(--sp-blue-dark);\r\n      font-size: 18px;\r\n      line-height: 1.25;\r\n      letter-spacing: -.02em;\r\n      margin-bottom: 8px;\r\n    }\r\n\r\n    #abc-calculator .abc-feature span {\r\n      display: block;\r\n      color: var(--sp-muted);\r\n      font-size: 13px;\r\n      line-height: 1.45;\r\n    }\r\n\r\n    #abc-calculator .abc-workspace {\r\n      display: grid;\r\n      grid-template-columns: minmax(360px, 1.18fr) minmax(360px, .82fr);\r\n      gap: clamp(22px, 4vw, 36px);\r\n      align-items: start;\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator .abc-preview-column {\r\n      display: flex;\r\n      flex-direction: column;\r\n      gap: 18px;\r\n    }\r\n\r\n    #abc-calculator .abc-panel,\r\n    #abc-calculator .abc-preview-panel,\r\n    #abc-calculator .abc-note-panel {\r\n      position: relative;\r\n      background: var(--sp-panel);\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 24px;\r\n      box-shadow: var(--sp-shadow);\r\n    }\r\n\r\n    #abc-calculator .abc-panel {\r\n      padding: clamp(22px, 3vw, 30px);\r\n      overflow: visible;\r\n      z-index: 20;\r\n    }\r\n\r\n    #abc-calculator .abc-preview-panel {\r\n      padding: clamp(22px, 3vw, 30px);\r\n      overflow: hidden;\r\n      min-height: 540px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n    }\r\n\r\n    #abc-calculator .abc-note-panel {\r\n      padding: 18px 20px;\r\n    }\r\n\r\n    #abc-calculator .abc-panel::before,\r\n    #abc-calculator .abc-preview-panel::before {\r\n      content: \"\";\r\n      position: absolute;\r\n      left: 18px;\r\n      right: 18px;\r\n      top: 0;\r\n      height: 4px;\r\n      background: linear-gradient(90deg, var(--sp-blue), var(--sp-blue-dark));\r\n      border-radius: 999px;\r\n    }\r\n\r\n    #abc-calculator .abc-title-row {\r\n      display: flex;\r\n      align-items: flex-start;\r\n      justify-content: space-between;\r\n      gap: 18px;\r\n      margin-bottom: 20px;\r\n      padding-top: 4px;\r\n    }\r\n\r\n    #abc-calculator h3 {\r\n      color: var(--sp-blue-dark);\r\n      font-size: 25px;\r\n      line-height: 1.1;\r\n      letter-spacing: -.03em;\r\n    }\r\n\r\n    #abc-calculator .abc-title-row p {\r\n      margin-top: 8px;\r\n      color: var(--sp-muted);\r\n      font-size: 14px;\r\n    }\r\n\r\n    #abc-calculator .abc-reset,\r\n    #abc-calculator .abc-copy,\r\n    #abc-calculator .abc-clear,\r\n    #abc-calculator .abc-height-quick {\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 13px;\r\n      background: #fff;\r\n      color: var(--sp-blue-dark);\r\n      padding: 12px 14px;\r\n      font-size: 14px;\r\n      font-weight: 800;\r\n      cursor: pointer;\r\n      transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;\r\n      text-transform: none !important;\r\n      white-space: nowrap;\r\n    }\r\n\r\n    #abc-calculator .abc-reset:hover,\r\n    #abc-calculator .abc-copy:hover,\r\n    #abc-calculator .abc-clear:hover,\r\n    #abc-calculator .abc-height-quick:hover {\r\n      transform: translateY(-1px);\r\n      border-color: rgba(19, 99, 223, .4);\r\n      background: #f7fbff;\r\n      box-shadow: 0 10px 24px rgba(22, 32, 51, .05);\r\n    }\r\n\r\n    #abc-calculator .abc-copy {\r\n      border-color: transparent;\r\n      background: linear-gradient(135deg, var(--sp-blue), var(--sp-blue-dark));\r\n      color: #fff;\r\n      box-shadow: 0 12px 28px rgba(19, 99, 223, .18);\r\n    }\r\n\r\n    #abc-calculator .abc-input-grid {\r\n      display: grid;\r\n      grid-template-columns: 1fr;\r\n      gap: 14px;\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator .abc-field {\r\n      display: block;\r\n      position: relative;\r\n      z-index: 1;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 18px;\r\n      background: #fff;\r\n      padding: 14px;\r\n      transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator .abc-field:focus-within,\r\n    #abc-calculator .abc-field.is-open {\r\n      z-index: 10000;\r\n      border-color: rgba(19, 99, 223, .58);\r\n      box-shadow: 0 12px 28px rgba(19, 99, 223, .10);\r\n      transform: translateY(-1px);\r\n    }\r\n\r\n    #abc-calculator .abc-field > span {\r\n      display: block;\r\n      margin-bottom: 2px;\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: .055em;\r\n    }\r\n\r\n    #abc-calculator .abc-field small {\r\n      display: block;\r\n      margin-bottom: 8px;\r\n      color: #8ba0bb;\r\n      font-size: 12px;\r\n    }\r\n\r\n    #abc-calculator .abc-height-range {\r\n      margin: 8px 0 10px;\r\n      color: var(--sp-blue);\r\n      font-size: 13px;\r\n      font-weight: 800;\r\n      line-height: 1.45;\r\n    }\r\n\r\n    #abc-calculator .abc-height-quick-row {\r\n      display: grid;\r\n      grid-template-columns: repeat(3, minmax(0, 1fr));\r\n      gap: 8px;\r\n      margin-top: 12px;\r\n    }\r\n\r\n    #abc-calculator .abc-height-quick {\r\n      padding: 9px 10px;\r\n      font-size: 13px;\r\n      border-radius: 12px;\r\n      background: #f8fbff;\r\n    }\r\n\r\n    #abc-calculator .abc-input-box {\r\n      display: grid;\r\n      grid-template-columns: minmax(0, 1fr) auto;\r\n      gap: 12px;\r\n      align-items: center;\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator input,\r\n    #abc-calculator .abc-field .abc-select-value,\r\n    #abc-calculator .abc-select-trigger,\r\n    #abc-calculator .abc-select-trigger .abc-select-value {\r\n      color: var(--sp-blue-dark) !important;\r\n      font-size: var(--abc-value-size) !important;\r\n      font-weight: 900 !important;\r\n      line-height: 1.15 !important;\r\n      letter-spacing: -.04em !important;\r\n      text-transform: none !important;\r\n    }\r\n\r\n    #abc-calculator input {\r\n      width: 100%;\r\n      min-width: 0;\r\n      border: 0 !important;\r\n      outline: 0 !important;\r\n      box-shadow: none !important;\r\n      background: transparent !important;\r\n      padding: 2px 0 !important;\r\n      appearance: textfield;\r\n    }\r\n\r\n    #abc-calculator input::-webkit-outer-spin-button,\r\n    #abc-calculator input::-webkit-inner-spin-button {\r\n      -webkit-appearance: none;\r\n      margin: 0;\r\n    }\r\n\r\n    #abc-calculator .abc-input-box em {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      min-width: 58px;\r\n      padding: 9px 12px;\r\n      border-radius: 999px;\r\n      background: var(--sp-silver);\r\n      color: var(--sp-blue);\r\n      font-size: 14px;\r\n      font-style: normal;\r\n      font-weight: 900;\r\n      white-space: nowrap;\r\n      text-transform: none !important;\r\n    }\r\n\r\n    #abc-calculator .abc-select {\r\n      position: relative;\r\n      width: 100%;\r\n      z-index: 20;\r\n    }\r\n\r\n    #abc-calculator .abc-select.is-open {\r\n      z-index: 10001;\r\n    }\r\n\r\n    \/* Match dropdown value display with the total height input value style. *\/\r\n    #abc-calculator .abc-select-trigger {\r\n      width: 100%;\r\n      min-height: 0;\r\n      border: 0 !important;\r\n      background: transparent !important;\r\n      padding: 2px 0 !important;\r\n      margin: 0 !important;\r\n      text-align: left;\r\n      cursor: pointer;\r\n      position: relative;\r\n      display: block;\r\n      appearance: none;\r\n      -webkit-appearance: none;\r\n      outline: none !important;\r\n      box-shadow: none !important;\r\n      line-height: 1.15 !important;\r\n      border-radius: 0 !important;\r\n    }\r\n\r\n    #abc-calculator .abc-select-trigger:hover,\r\n    #abc-calculator .abc-select-trigger:focus {\r\n      border: 0 !important;\r\n      background: transparent !important;\r\n      box-shadow: none !important;\r\n      outline: none !important;\r\n      transform: none !important;\r\n    }\r\n\r\n    #abc-calculator .abc-select-trigger::after {\r\n      display: none;\r\n    }\r\n\r\n    #abc-calculator .abc-select.is-open .abc-select-trigger::after {\r\n      display: none;\r\n    }\r\n\r\n    #abc-calculator .abc-select-trigger .abc-select-value {\r\n      display: block !important;\r\n      margin: 0 !important;\r\n      padding: 0 !important;\r\n      line-height: 1.15 !important;\r\n    }\r\n\r\n    #abc-calculator .abc-select-menu {\r\n      position: absolute;\r\n      left: -18px;\r\n      right: -72px;\r\n      top: calc(100% + 14px);\r\n      z-index: 9999;\r\n      display: none;\r\n      padding: 10px 0;\r\n      margin: 0;\r\n      list-style: none;\r\n      background: #ffffff;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 0;\r\n      box-shadow: 0 22px 42px rgba(8, 42, 94, .13);\r\n      max-height: 360px;\r\n      overflow-y: auto;\r\n    }\r\n\r\n    #abc-calculator .abc-select.is-open .abc-select-menu {\r\n      display: block;\r\n      z-index: 10002;\r\n    }\r\n\r\n    #abc-calculator .abc-select-option {\r\n      width: 100%;\r\n      min-height: 56px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: flex-start;\r\n      padding: 12px 22px;\r\n      border: 0;\r\n      border-radius: 0;\r\n      background: #fff;\r\n      color: var(--sp-text);\r\n      font-size: var(--abc-value-size) !important;\r\n      font-weight: 700;\r\n      line-height: 1.2;\r\n      text-align: left;\r\n      cursor: pointer;\r\n      transition: background .14s ease, color .14s ease;\r\n      text-transform: none !important;\r\n    }\r\n\r\n    #abc-calculator .abc-select-option:hover,\r\n    #abc-calculator .abc-select-option:focus {\r\n      background: #f3f7ff;\r\n      color: var(--sp-blue-dark);\r\n      outline: none;\r\n    }\r\n\r\n    #abc-calculator .abc-select-option.is-selected {\r\n      background: var(--sp-blue-dark);\r\n      color: #ffffff;\r\n      font-weight: 800;\r\n    }\r\n\r\n    #abc-calculator .abc-warning {\r\n      margin-top: 16px;\r\n      border: 1px solid #bfdcff;\r\n      border-radius: 16px;\r\n      background: #eef7ff;\r\n      color: #d62828;\r\n      padding: 14px 16px;\r\n      font-size: 14px;\r\n      line-height: 1.7;\r\n    }\r\n\r\n    #abc-calculator .abc-result-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n      gap: 10px;\r\n      margin-top: 18px;\r\n    }\r\n\r\n    #abc-calculator .abc-result {\r\n      padding: 16px;\r\n      border-radius: 16px;\r\n      background: linear-gradient(180deg, #fbfdff, #f5f9ff);\r\n      border: 1px dashed rgba(19, 99, 223, .32);\r\n      min-height: 132px;\r\n    }\r\n\r\n    #abc-calculator .abc-result span {\r\n      display: block;\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      font-weight: 900;\r\n      letter-spacing: .04em;\r\n      text-transform: uppercase;\r\n      margin-bottom: 8px;\r\n    }\r\n\r\n    #abc-calculator .abc-result strong {\r\n      display: block;\r\n      color: var(--sp-blue-dark);\r\n      font-size: 34px;\r\n      line-height: 1.08;\r\n      word-break: break-word;\r\n      text-transform: none !important;\r\n    }\r\n\r\n    #abc-calculator .abc-result b,\r\n    #abc-calculator .abc-result i {\r\n      font-style: normal;\r\n    }\r\n\r\n    #abc-calculator .abc-result small {\r\n      display: block;\r\n      margin-top: 9px;\r\n      color: var(--sp-muted);\r\n      font-size: 12px;\r\n      line-height: 1.45;\r\n    }\r\n\r\n    #abc-calculator .abc-action-row {\r\n      display: grid;\r\n      grid-template-columns: 1fr 1fr 1fr;\r\n      gap: 10px;\r\n      margin-top: 18px;\r\n    }\r\n\r\n    #abc-calculator .abc-note {\r\n      margin-top: 0;\r\n      border-left: 4px solid var(--sp-blue);\r\n      border-radius: 16px;\r\n      background: #edf4ff;\r\n      padding: 15px 16px;\r\n      color: #24465f;\r\n      font-size: 14px;\r\n      line-height: 1.8;\r\n    }\r\n\r\n    #abc-calculator .abc-note strong {\r\n      color: var(--sp-blue-dark);\r\n    }\r\n\r\n    #abc-calculator .abc-svg-wrap {\r\n      width: 100%;\r\n      min-height: 460px;\r\n      background: #fff;\r\n      border: 1px solid var(--sp-line);\r\n      border-radius: 24px;\r\n      padding: 18px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator .abc-svg {\r\n      display: block;\r\n      width: auto;\r\n      height: auto;\r\n      max-width: 100%;\r\n      margin: 0 auto;\r\n      overflow: visible;\r\n    }\r\n\r\n    #abc-calculator .abc-svg-text {\r\n      fill: #64748b;\r\n      font-size: 3.2px;\r\n      font-weight: 800;\r\n      text-transform: none !important;\r\n    }\r\n\r\n    #abc-calculator .abc-svg-text.small {\r\n      font-size: 3px;\r\n    }\r\n\r\n    #abc-calculator .abc-toast {\r\n      position: fixed;\r\n      right: 20px;\r\n      bottom: 20px;\r\n      z-index: 99999;\r\n      transform: translateY(18px);\r\n      opacity: 0;\r\n      pointer-events: none;\r\n      background: #082a5e;\r\n      color: #fff;\r\n      padding: 12px 14px;\r\n      border-radius: 14px;\r\n      box-shadow: 0 18px 50px rgba(8, 42, 94, .22);\r\n      transition: opacity .18s ease, transform .18s ease;\r\n      font-weight: 800;\r\n      font-size: 14px;\r\n    }\r\n\r\n    #abc-calculator .abc-toast.is-visible {\r\n      opacity: 1;\r\n      transform: translateY(0);\r\n    }\r\n\r\n    @media (max-width: 980px) {\r\n      #abc-calculator .abc-workspace {\r\n        grid-template-columns: 1fr;\r\n      }\r\n\r\n      #abc-calculator .abc-preview-panel {\r\n        min-height: auto;\r\n      }\r\n\r\n      #abc-calculator .abc-preview-column {\r\n        gap: 16px;\r\n      }\r\n\r\n      #abc-calculator .abc-feature-row {\r\n        grid-template-columns: repeat(2, minmax(0, 1fr));\r\n      }\r\n    }\r\n\r\n    @media (max-width: 720px) {\r\n      #abc-calculator {\r\n        --abc-value-size: 22px;\r\n      }\r\n\r\n      #abc-calculator .abc-action-row,\r\n      #abc-calculator .abc-result-grid,\r\n      #abc-calculator .abc-feature-row,\r\n      #abc-calculator .abc-height-quick-row {\r\n        grid-template-columns: 1fr;\r\n      }\r\n\r\n      #abc-calculator .abc-select-menu {\r\n        right: -58px;\r\n      }\r\n\r\n      #abc-calculator .abc-svg-wrap {\r\n        min-height: 420px;\r\n      }\r\n    }\r\n\r\n    @media (max-width: 620px) {\r\n      #abc-calculator .abc-shell {\r\n        padding: 22px 16px;\r\n      }\r\n\r\n      #abc-calculator .abc-title-row {\r\n        flex-direction: column;\r\n      }\r\n\r\n      #abc-calculator .abc-reset {\r\n        width: 100%;\r\n      }\r\n\r\n      #abc-calculator .abc-select-menu {\r\n        left: -14px;\r\n        right: -58px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"abc-shell\">\r\n    <div class=\"abc-hero\">\r\n      <div class=\"abc-intro\">\r\n        <div class=\"abc-badge\">Estimador de capacidad de botellas de aluminio<\/div>\r\n        <h2>Calculadora de capacidad de botellas de aluminio<\/h2>\r\n        <p>\r\n          Esta herramienta estima la capacidad de una botella de aluminio com\u00fan de cuerpo recto y hombros redondeados. Primero, seleccione el di\u00e1metro de la base y, a continuaci\u00f3n, introduzca un rango de altura equivalente o utilice los botones de ajuste r\u00e1pido de altura.\r\n        <\/p>\r\n        <div class=\"abc-feature-row\">\r\n          <div class=\"abc-feature\">\r\n            <strong>Di\u00e1metro primero<\/strong>\r\n            <span>Seleccione primero el di\u00e1metro inferior para cargar el rango de altura correspondiente.<\/span>\r\n          <\/div>\r\n          <div class=\"abc-feature\">\r\n            <strong>Valores de altura r\u00e1pida<\/strong>\r\n            <span>Utilice los botones de altura m\u00ednima, media y m\u00e1xima para el di\u00e1metro seleccionado.<\/span>\r\n          <\/div>\r\n          <div class=\"abc-feature\">\r\n            <strong>Tama\u00f1os de boca coincidentes<\/strong>\r\n            <span>Las opciones de boca se limitan autom\u00e1ticamente seg\u00fan el di\u00e1metro de la botella seleccionado.<\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"abc-workspace\">\r\n      <div class=\"abc-preview-column\">\r\n        <section class=\"abc-preview-panel\">\r\n          <div class=\"abc-svg-wrap\">\r\n            <svg id=\"abcBottleSvg\" class=\"abc-svg\" viewbox=\"0 0 260 410\" aria-label=\"Diagrama de botella de aluminio\">\r\n              <defs>\r\n                <lineargradient id=\"abcMetal\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"0\">\r\n                  <stop offset=\"0%\" stop-color=\"#cbd5e1\"><\/stop>\r\n                  <stop offset=\"18%\" stop-color=\"#f8fafc\"><\/stop>\r\n                  <stop offset=\"48%\" stop-color=\"#e2e8f0\"><\/stop>\r\n                  <stop offset=\"76%\" stop-color=\"#ffffff\"><\/stop>\r\n                  <stop offset=\"100%\" stop-color=\"#94a3b8\"><\/stop>\r\n                <\/lineargradient>\r\n                <lineargradient id=\"abcLiquid\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\r\n                  <stop offset=\"0%\" stop-color=\"#dbeafe\" stop-opacity=\"0.75\"><\/stop>\r\n                  <stop offset=\"100%\" stop-color=\"#bfdbfe\" stop-opacity=\"0.9\"><\/stop>\r\n                <\/lineargradient>\r\n                <clippath id=\"abcBottleClip\">\r\n                  <path id=\"abcBottleClipPath\"><\/path>\r\n                <\/clippath>\r\n              <\/defs>\r\n\r\n              <path id=\"abcBottleFill\" fill=\"url(#abcMetal)\" stroke=\"none\"><\/path>\r\n\r\n              <g clip-path=\"url(#abcBottleClip)\">\r\n                <rect id=\"abcWaterRect\" x=\"0\" y=\"120\" width=\"260\" height=\"230\" fill=\"url(#abcLiquid)\"><\/rect>\r\n                <line id=\"abcWaterLine\" x1=\"40\" y1=\"120\" x2=\"150\" y2=\"120\" stroke=\"#60a5fa\" stroke-width=\"0.6\" stroke-dasharray=\"1.8 1.8\"><\/line>\r\n              <\/g>\r\n\r\n              <path id=\"abcBottleStroke\" fill=\"none\" stroke=\"#475569\" stroke-width=\"0.85\"><\/path>\r\n\r\n              <line id=\"abcHeightLine\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <line id=\"abcHeightTopTick\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <line id=\"abcHeightBottomTick\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <text id=\"abcHeightText\" class=\"abc-svg-text\"><\/text>\r\n\r\n              <line id=\"abcDiameterLine\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <line id=\"abcDiameterLeftTick\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <line id=\"abcDiameterRightTick\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <text id=\"abcDiameterText\" class=\"abc-svg-text\"><\/text>\r\n\r\n              <line id=\"abcMouthLine\" stroke=\"#94a3b8\" stroke-width=\"0.45\"><\/line>\r\n              <text id=\"abcMouthText\" class=\"abc-svg-text small\"><\/text>\r\n            <\/svg>\r\n          <\/div>\r\n        <\/section>\r\n\r\n      <\/div>\r\n\r\n      <section class=\"abc-panel\">\r\n        <div class=\"abc-title-row\">\r\n          <div>\r\n            <h3>Entrada de dimensi\u00f3n<\/h3>\r\n            <p>Primero, seleccione el di\u00e1metro. El rango de altura se actualizar\u00e1 autom\u00e1ticamente.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"abc-input-grid\">\r\n          <div class=\"abc-field\" data-dropdown-field>\r\n            <span>Di\u00e1metro de la botella<\/span>\r\n            <small>Primero elige el di\u00e1metro de la botella.<\/small>\r\n            <div class=\"abc-input-box\">\r\n              <div class=\"abc-select\" id=\"abcDiameterDropdown\" data-dropdown=\"diameter\">\r\n                <button type=\"button\" class=\"abc-select-trigger\" aria-haspopup=\"listbox\" aria-expanded=\"false\">\r\n                  <span class=\"abc-select-value\">53<\/span>\r\n                <\/button>\r\n                <div class=\"abc-select-menu\" role=\"listbox\"><\/div>\r\n              <\/div>\r\n              <em>mm<\/em>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <label class=\"abc-field\">\r\n            <span>Altura de la botella<\/span>\r\n            <small>Desde la base de la botella hasta la boca<\/small>\r\n            <div class=\"abc-height-range\" id=\"abcHeightRange\">Rango de altura disponible: 120\u2013235 mm<\/div>\r\n            <div class=\"abc-input-box\">\r\n              <input id=\"abcHeight\" type=\"number\" min=\"120\" max=\"235\" value=\"180\" \/>\r\n              <em>mm<\/em>\r\n            <\/div>\r\n            <div class=\"abc-height-quick-row\">\r\n              <button type=\"button\" class=\"abc-height-quick\" id=\"abcMinHeight\">M\u00ednimo 120<\/button>\r\n              <button type=\"button\" class=\"abc-height-quick\" id=\"abcMidHeight\">Mediados de 178<\/button>\r\n              <button type=\"button\" class=\"abc-height-quick\" id=\"abcMaxHeight\">M\u00e1x. 235<\/button>\r\n            <\/div>\r\n          <\/label>\r\n\r\n          <div class=\"abc-field\" data-dropdown-field>\r\n            <span>Di\u00e1metro de la boca<\/span>\r\n            <small>Tama\u00f1os de boca disponibles para di\u00e1metros seleccionados<\/small>\r\n            <div class=\"abc-input-box\">\r\n              <div class=\"abc-select\" id=\"abcMouthDropdown\" data-dropdown=\"mouth\">\r\n                <button type=\"button\" class=\"abc-select-trigger\" aria-haspopup=\"listbox\" aria-expanded=\"false\">\r\n                  <span class=\"abc-select-value\">24<\/span>\r\n                <\/button>\r\n                <div class=\"abc-select-menu\" role=\"listbox\"><\/div>\r\n              <\/div>\r\n              <em>mm<\/em>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div id=\"abcWarning\" class=\"abc-warning\" style=\"display:none;\">\r\n          Por favor, introduzca una altura dentro del rango disponible.\r\n        <\/div>\r\n\r\n        <div class=\"abc-result-grid\">\r\n          <div class=\"abc-result abc-result-full\">\r\n            <span>Capacidad total<\/span>\r\n            <strong><b id=\"abcFullMl\">0<\/b> mL<\/strong>\r\n            <small>onzas l\u00edquidas estadounidenses: <i id=\"abcFullUsOz\">0<\/i><br>onzas l\u00edquidas del Reino Unido: <i id=\"abcFullUkOz\">0<\/i><\/small>\r\n          <\/div>\r\n\r\n          <div class=\"abc-result abc-result-filling\">\r\n            <span>Capacidad de llenado<\/span>\r\n            <strong><b id=\"abcFillingMl\">0<\/b> mL<\/strong>\r\n            <small>onzas l\u00edquidas estadounidenses: <i id=\"abcFillingUsOz\">0<\/i><br>onzas l\u00edquidas del Reino Unido: <i id=\"abcFillingUkOz\">0<\/i><\/small>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"abc-action-row\">\r\n          <button type=\"button\" class=\"abc-copy\" id=\"abcCopy\">Copiar resultado<\/button>\r\n          <button type=\"button\" class=\"abc-reset\" id=\"abcResetBottom\">Ejemplo de reinicio<\/button>\r\n          <button type=\"button\" class=\"abc-clear\" id=\"abcClear\">Claro<\/button>\r\n        <\/div>\r\n      <\/section>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"abc-toast\" id=\"abcToast\" role=\"status\" aria-live=\"polite\">Copiado<\/div>\r\n\r\n  <script>\r\n    (function () {\r\n      var root = document.getElementById(\"abc-calculator\");\r\n      if (!root || root.dataset.abcReady === \"true\") return;\r\n      root.dataset.abcReady = \"true\";\r\n\r\n      var DEFAULT_HEIGHT = 180;\r\n      var DEFAULT_DIAMETER = 53;\r\n      var DEFAULT_MOUTH = 24;\r\n      var DIAGRAM_SCALE = 1.7;\r\n      var warningTimer = null;\r\n\r\n      var state = {\r\n        diameter: DEFAULT_DIAMETER,\r\n        mouth: DEFAULT_MOUTH\r\n      };\r\n\r\n      var diameterOptions = [22, 25, 28, 35, 40, 45, 50, 53, 59, 66, 74, 80];\r\n\r\n      var diameterMouthMap = {\r\n        22: [18, 20],\r\n        25: [20],\r\n        28: [20, 24],\r\n        35: [20, 24, 28],\r\n        40: [20, 24, 28],\r\n        45: [20, 24, 28],\r\n        50: [24, 28],\r\n        53: [24, 28, 38],\r\n        59: [24, 28, 38],\r\n        66: [28, 38],\r\n        74: [28, 38],\r\n        80: [28, 38]\r\n      };\r\n\r\n      var diameterHeightMap = {\r\n        22: { min: 68, max: 90 },\r\n        25: { min: 75, max: 90 },\r\n        28: { min: 75, max: 100 },\r\n        35: { min: 95, max: 160 },\r\n        40: { min: 80, max: 180 },\r\n        45: { min: 100, max: 190 },\r\n        50: { min: 110, max: 225 },\r\n        53: { min: 120, max: 235 },\r\n        59: { min: 120, max: 250 },\r\n        66: { min: 140, max: 240 },\r\n        74: { min: 160, max: 300 },\r\n        80: { min: 180, max: 300 }\r\n      };\r\n\r\n      var neckShoulderMap = {\r\n        22: {\r\n          18: { neck: 12, shoulder: 7 },\r\n          20: { neck: 13, shoulder: 7 }\r\n        },\r\n        25: {\r\n          20: { neck: 13, shoulder: 7 }\r\n        },\r\n        28: {\r\n          20: { neck: 13, shoulder: 7 },\r\n          24: { neck: 19, shoulder: 10 }\r\n        },\r\n        35: {\r\n          20: { neck: 13, shoulder: 15 },\r\n          24: { neck: 19, shoulder: 10 },\r\n          28: { neck: 16, shoulder: 8 }\r\n        },\r\n        40: {\r\n          20: { neck: 13, shoulder: 17 },\r\n          24: { neck: 19, shoulder: 15 },\r\n          28: { neck: 17, shoulder: 15 }\r\n        },\r\n        45: {\r\n          20: { neck: 13, shoulder: 21 },\r\n          24: { neck: 19, shoulder: 15 },\r\n          28: { neck: 17, shoulder: 15 }\r\n        },\r\n        50: {\r\n          24: { neck: 19, shoulder: 20 },\r\n          28: { neck: 17, shoulder: 22 }\r\n        },\r\n        53: {\r\n          24: { neck: 19, shoulder: 25 },\r\n          28: { neck: 19, shoulder: 25 },\r\n          38: { neck: 25, shoulder: 35, profile: \"bullet\" }\r\n        },\r\n        59: {\r\n          24: { neck: 19, shoulder: 25 },\r\n          28: { neck: 19, shoulder: 25 },\r\n          38: { neck: 25, shoulder: 22 }\r\n        },\r\n        66: {\r\n          28: { neck: 19, shoulder: 30 },\r\n          38: { neck: 25, shoulder: 45, profile: \"bullet\" }\r\n        },\r\n        74: {\r\n          28: { neck: 19, shoulder: 30 },\r\n          38: { neck: 22, shoulder: 43 }\r\n        },\r\n        80: {\r\n          28: { neck: 19, shoulder: 40 },\r\n          38: { neck: 22, shoulder: 43 }\r\n        }\r\n      };\r\n\r\n\r\n      function $(id) {\r\n        return root.querySelector(\"#\" + id);\r\n      }\r\n\r\n      function clamp(value, min, max) {\r\n        return Math.min(Math.max(value, min), max);\r\n      }\r\n\r\n      function roundTo(value, digits) {\r\n        var base = Math.pow(10, digits || 0);\r\n        return Math.round(value * base) \/ base;\r\n      }\r\n\r\n      function formatMm(value) {\r\n        var rounded = Math.round(Number(value || 0) * 100) \/ 100;\r\n        return String(rounded);\r\n      }\r\n\r\n      function setLine(el, x1, y1, x2, y2) {\r\n        el.setAttribute(\"x1\", x1);\r\n        el.setAttribute(\"y1\", y1);\r\n        el.setAttribute(\"x2\", x2);\r\n        el.setAttribute(\"y2\", y2);\r\n      }\r\n\r\n      function getHeight() {\r\n        var value = parseFloat($(\"abcHeight\").value);\r\n        return isNaN(value) ? 0 : value;\r\n      }\r\n\r\n      function getHeightRange() {\r\n        return diameterHeightMap[state.diameter] || { min: 1, max: 999 };\r\n      }\r\n\r\n      function getNeckShoulderDimensions(diameter, mouth, totalHeight) {\r\n        var diameterData = neckShoulderMap[Number(diameter)];\r\n        var dimensions = diameterData ? diameterData[Number(mouth)] : null;\r\n\r\n        if (dimensions) {\r\n          return {\r\n            neck: Number(dimensions.neck),\r\n            shoulder: Number(dimensions.shoulder),\r\n            profile: dimensions.profile || \"standard\"\r\n          };\r\n        }\r\n\r\n        return {\r\n          neck: clamp(totalHeight * 0.11, 18, 45),\r\n          shoulder: clamp(totalHeight * 0.16, 22, 62),\r\n          profile: \"standard\"\r\n        };\r\n      }\r\n\r\n      function showToast(message) {\r\n        var toast = $(\"abcToast\");\r\n        if (!toast) return;\r\n\r\n        toast.textContent = message;\r\n        toast.classList.add(\"is-visible\");\r\n\r\n        clearTimeout(showToast.timer);\r\n        showToast.timer = setTimeout(function () {\r\n          toast.classList.remove(\"is-visible\");\r\n        }, 1400);\r\n      }\r\n\r\n      function showWarning(message) {\r\n        var warning = $(\"abcWarning\");\r\n        warning.textContent = message;\r\n        warning.style.display = \"block\";\r\n\r\n        clearTimeout(warningTimer);\r\n        warningTimer = setTimeout(function () {\r\n          warning.style.display = \"none\";\r\n        }, 3600);\r\n      }\r\n\r\n      function hideWarning() {\r\n        clearTimeout(warningTimer);\r\n        $(\"abcWarning\").style.display = \"none\";\r\n      }\r\n\r\n      function clampHeightToRange() {\r\n        var range = getHeightRange();\r\n        var input = $(\"abcHeight\");\r\n        var current = parseFloat(input.value);\r\n\r\n        if (isNaN(current)) return false;\r\n\r\n        if (current < range.min) {\r\n          input.value = range.min;\r\n          return true;\r\n        }\r\n\r\n        if (current > range.max) {\r\n          input.value = range.max;\r\n          return true;\r\n        }\r\n\r\n        return false;\r\n      }\r\n\r\n      function updateHeightRange() {\r\n        var range = getHeightRange();\r\n        var mid = Math.round((range.min + range.max) \/ 2);\r\n\r\n        $(\"abcHeight\").setAttribute(\"min\", range.min);\r\n        $(\"abcHeight\").setAttribute(\"max\", range.max);\r\n\r\n        $(\"abcHeightRange\").textContent = \"Available height range: \" + range.min + \"\u2013\" + range.max + \" mm\";\r\n        $(\"abcMinHeight\").textContent = \"Min \" + range.min;\r\n        $(\"abcMidHeight\").textContent = \"Mid \" + mid;\r\n        $(\"abcMaxHeight\").textContent = \"Max \" + range.max;\r\n\r\n        clampHeightToRange();\r\n        hideWarning();\r\n      }\r\n\r\n      function validateHeight(showMessage) {\r\n        var H = getHeight();\r\n        var range = getHeightRange();\r\n\r\n        if (!H) return true;\r\n\r\n        if (H < range.min || H > range.max) {\r\n          if (showMessage) {\r\n            showWarning(\r\n              \"For \" + state.diameter + \"mm diameter, height must be between \" +\r\n              range.min + \"mm and \" + range.max + \"mm.\"\r\n            );\r\n          }\r\n          return false;\r\n        }\r\n\r\n        hideWarning();\r\n        return true;\r\n      }\r\n\r\n      function setQuickHeight(type) {\r\n        var range = getHeightRange();\r\n        var value = range.min;\r\n\r\n        if (type === \"mid\") {\r\n          value = Math.round((range.min + range.max) \/ 2);\r\n        }\r\n\r\n        if (type === \"max\") {\r\n          value = range.max;\r\n        }\r\n\r\n        $(\"abcHeight\").value = value;\r\n        hideWarning();\r\n        calculate();\r\n      }\r\n\r\n      function getDropdown(type) {\r\n        return type === \"diameter\" ? $(\"abcDiameterDropdown\") : $(\"abcMouthDropdown\");\r\n      }\r\n\r\n      function setDropdownValue(type, value) {\r\n        var dropdown = getDropdown(type);\r\n        var valueEl = dropdown.querySelector(\".abc-select-value\");\r\n\r\n        valueEl.textContent = String(value);\r\n\r\n        if (type === \"diameter\") {\r\n          state.diameter = Number(value);\r\n        } else {\r\n          state.mouth = Number(value);\r\n        }\r\n\r\n        dropdown.querySelectorAll(\".abc-select-option\").forEach(function (btn) {\r\n          btn.classList.toggle(\"is-selected\", Number(btn.dataset.value) === Number(value));\r\n        });\r\n      }\r\n\r\n      function closeAllDropdowns() {\r\n        root.querySelectorAll(\".abc-select\").forEach(function (dropdown) {\r\n          dropdown.classList.remove(\"is-open\");\r\n          dropdown.querySelector(\".abc-select-trigger\").setAttribute(\"aria-expanded\", \"false\");\r\n\r\n          var field = dropdown.closest(\"[data-dropdown-field]\");\r\n          if (field) field.classList.remove(\"is-open\");\r\n        });\r\n      }\r\n\r\n      function toggleDropdown(type) {\r\n        var dropdown = getDropdown(type);\r\n        var isOpen = dropdown.classList.contains(\"is-open\");\r\n\r\n        closeAllDropdowns();\r\n\r\n        if (!isOpen) {\r\n          dropdown.classList.add(\"is-open\");\r\n          dropdown.querySelector(\".abc-select-trigger\").setAttribute(\"aria-expanded\", \"true\");\r\n\r\n          var field = dropdown.closest(\"[data-dropdown-field]\");\r\n          if (field) field.classList.add(\"is-open\");\r\n        }\r\n      }\r\n\r\n      function buildDropdown(type, options, selectedValue) {\r\n        var dropdown = getDropdown(type);\r\n        var menu = dropdown.querySelector(\".abc-select-menu\");\r\n        var trigger = dropdown.querySelector(\".abc-select-trigger\");\r\n\r\n        menu.innerHTML = \"\";\r\n\r\n        options.forEach(function (value) {\r\n          var option = document.createElement(\"button\");\r\n\r\n          option.type = \"button\";\r\n          option.className = \"abc-select-option\";\r\n          option.dataset.value = String(value);\r\n          option.setAttribute(\"role\", \"option\");\r\n          option.textContent = String(value);\r\n\r\n          if (Number(value) === Number(selectedValue)) {\r\n            option.classList.add(\"is-selected\");\r\n          }\r\n\r\n          option.addEventListener(\"click\", function () {\r\n            var nextValue = Number(option.dataset.value);\r\n\r\n            if (type === \"diameter\") {\r\n              state.diameter = nextValue;\r\n              setDropdownValue(\"diameter\", nextValue);\r\n              syncMouthForDiameter();\r\n              updateHeightRange();\r\n              closeAllDropdowns();\r\n              calculate();\r\n            } else {\r\n              state.mouth = nextValue;\r\n              setDropdownValue(\"mouth\", nextValue);\r\n              hideWarning();\r\n              closeAllDropdowns();\r\n              calculate();\r\n            }\r\n          });\r\n\r\n          menu.appendChild(option);\r\n        });\r\n\r\n        trigger.onclick = function () {\r\n          toggleDropdown(type);\r\n        };\r\n\r\n        setDropdownValue(type, selectedValue);\r\n      }\r\n\r\n      function syncMouthForDiameter() {\r\n        var allowedMouths = diameterMouthMap[state.diameter] || [];\r\n        var nextMouth = state.mouth;\r\n\r\n        if (allowedMouths.indexOf(state.mouth) === -1) {\r\n          nextMouth = allowedMouths[0] || DEFAULT_MOUTH;\r\n        }\r\n\r\n        state.mouth = nextMouth;\r\n        buildDropdown(\"mouth\", allowedMouths, state.mouth);\r\n      }\r\n\r\n      function getShoulderRadiusAtHeight(offset, shoulderH, bodyR, mouthR) {\r\n        if (!shoulderH) return mouthR;\r\n        return bodyR + (mouthR - bodyR) * (offset \/ shoulderH);\r\n      }\r\n\r\n      function getPartialShoulderVolume(fillHeight, shoulderH, bodyR, mouthR) {\r\n        if (fillHeight <= 0) return 0;\r\n        if (fillHeight >= shoulderH) {\r\n          return Math.PI * shoulderH * (Math.pow(bodyR, 2) + bodyR * mouthR + Math.pow(mouthR, 2)) \/ 3;\r\n        }\r\n\r\n        var radiusAtFill = getShoulderRadiusAtHeight(fillHeight, shoulderH, bodyR, mouthR);\r\n        return Math.PI * fillHeight * (\r\n          Math.pow(bodyR, 2) +\r\n          bodyR * radiusAtFill +\r\n          Math.pow(radiusAtFill, 2)\r\n        ) \/ 3;\r\n      }\r\n\r\n      function getFillHeightFromRatio(fillRatio, bodyH, shoulderH, neckH, bodyR, mouthR) {\r\n        var safeRatio = clamp(Number(fillRatio || 0), 0, 1);\r\n        var bodyVolume = Math.PI * Math.pow(bodyR, 2) * Math.max(bodyH, 0);\r\n        var shoulderVolume = Math.PI * Math.max(shoulderH, 0) * (Math.pow(bodyR, 2) + bodyR * mouthR + Math.pow(mouthR, 2)) \/ 3;\r\n        var neckVolume = Math.PI * Math.pow(mouthR, 2) * Math.max(neckH, 0);\r\n        var totalVolume = bodyVolume + shoulderVolume + neckVolume;\r\n\r\n        if (!totalVolume) return 0;\r\n\r\n        var targetVolume = totalVolume * safeRatio;\r\n\r\n        if (targetVolume <= bodyVolume || shoulderH <= 0) {\r\n          return targetVolume \/ (Math.PI * Math.pow(bodyR, 2));\r\n        }\r\n\r\n        if (targetVolume <= bodyVolume + shoulderVolume || neckH <= 0) {\r\n          var shoulderTarget = targetVolume - bodyVolume;\r\n          var low = 0;\r\n          var high = shoulderH;\r\n          var mid = 0;\r\n\r\n          for (var i = 0; i < 28; i++) {\r\n            mid = (low + high) \/ 2;\r\n            if (getPartialShoulderVolume(mid, shoulderH, bodyR, mouthR) < shoulderTarget) {\r\n              low = mid;\r\n            } else {\r\n              high = mid;\r\n            }\r\n          }\r\n\r\n          return bodyH + (low + high) \/ 2;\r\n        }\r\n\r\n        var neckTarget = targetVolume - bodyVolume - shoulderVolume;\r\n        return bodyH + shoulderH + neckTarget \/ (Math.PI * Math.pow(mouthR, 2));\r\n      }\r\n\r\n      function calculate() {\r\n        validateHeight(false);\r\n\r\n        var H = getHeight();\r\n        var D = state.diameter;\r\n        var M = state.mouth;\r\n\r\n        var wallThickness = 0.8;\r\n        var innerHeight = Math.max(H - 2 * wallThickness, 0);\r\n        var innerDiameter = Math.max(D - 2 * wallThickness, 0);\r\n        var innerMouth = Math.max(M - 2 * wallThickness, 0);\r\n\r\n        var neckShoulder = getNeckShoulderDimensions(D, M, H);\r\n        var neckH = neckShoulder.neck;\r\n        var shoulderH = neckShoulder.shoulder;\r\n        var baseDeductionH = clamp(D * 0.07, 3, 9);\r\n        var bodyH = Math.max(innerHeight - neckH - shoulderH - baseDeductionH, 0);\r\n\r\n        var bodyR = innerDiameter \/ 2;\r\n        var mouthR = innerMouth \/ 2;\r\n\r\n        var bodyVolume = Math.PI * Math.pow(bodyR, 2) * bodyH;\r\n        var shoulderVolume = Math.PI * shoulderH * (Math.pow(bodyR, 2) + bodyR * mouthR + Math.pow(mouthR, 2)) \/ 3;\r\n        var neckVolume = Math.PI * Math.pow(mouthR, 2) * neckH;\r\n\r\n        var fullMl = (bodyVolume + shoulderVolume + neckVolume) \/ 1000;\r\n        var fillingMl = fullMl * 0.95;\r\n        var fillRatio = fullMl > 0 ? fillingMl \/ fullMl : 0;\r\n\r\n        $(\"abcFullMl\").textContent = roundTo(fullMl, 0);\r\n        $(\"abcFullUsOz\").textContent = roundTo(fullMl \/ 29.5735295625, 2);\r\n        $(\"abcFullUkOz\").textContent = roundTo(fullMl \/ 28.4130625, 2);\r\n        $(\"abcFillingMl\").textContent = roundTo(fillingMl, 0);\r\n        $(\"abcFillingUsOz\").textContent = roundTo(fillingMl \/ 29.5735295625, 2);\r\n        $(\"abcFillingUkOz\").textContent = roundTo(fillingMl \/ 28.4130625, 2);\r\n\r\n        drawBottle(H, D, M, bodyH, shoulderH, neckH, fillRatio);\r\n      }\r\n\r\n      function drawBottle(height, diameter, mouth, bodyH, shoulderH, neckH, fillRatio) {\r\n        var actualHeight = Math.max(Number(height || 0), 0);\r\n        var actualDiameter = Math.max(Number(diameter || 0), 0);\r\n        var actualMouth = Math.max(Number(mouth || 0), 0);\r\n        var actualMouthForDrawing = Math.max(actualMouth - 1, 1);\r\n\r\n        var displayHeight = Math.max(actualHeight \/ DIAGRAM_SCALE, 1);\r\n        var displayDiameter = Math.max(actualDiameter \/ DIAGRAM_SCALE, 1);\r\n        var displayMouth = Math.max(actualMouthForDrawing \/ DIAGRAM_SCALE, 1);\r\n\r\n        var displayNeckH = Math.max(Number(neckH || 0) \/ DIAGRAM_SCALE, 1);\r\n        var displayShoulderH = Math.max(Number(shoulderH || 0) \/ DIAGRAM_SCALE, 1);\r\n\r\n        if (displayNeckH + displayShoulderH > displayHeight * 0.85) {\r\n          var ratio = displayHeight * 0.85 \/ (displayNeckH + displayShoulderH);\r\n          displayNeckH = displayNeckH * ratio;\r\n          displayShoulderH = displayShoulderH * ratio;\r\n        }\r\n\r\n        var bodyHalf = displayDiameter \/ 2;\r\n        var neckHalf = displayMouth \/ 2;\r\n\r\n        var topSpace = 13;\r\n        var bottomSpace = 18;\r\n        var leftSpace = 28;\r\n        var rightSpace = 48;\r\n\r\n        var shapeWidth = Math.max(displayDiameter, displayMouth);\r\n        var viewW = leftSpace + shapeWidth + rightSpace;\r\n        var viewH = topSpace + displayHeight + bottomSpace;\r\n\r\n        var svg = $(\"abcBottleSvg\");\r\n        svg.setAttribute(\"viewBox\", \"0 0 \" + viewW + \" \" + viewH);\r\n        svg.style.width = viewW + \"mm\";\r\n        svg.style.height = viewH + \"mm\";\r\n\r\n        var x = leftSpace + shapeWidth \/ 2;\r\n        var yTop = topSpace;\r\n        var yBottom = yTop + displayHeight;\r\n        var yNeckEnd = yTop + displayNeckH;\r\n        var yShoulderEnd = yNeckEnd + displayShoulderH;\r\n\r\n        var bottomRound = Math.min(bodyHalf * 0.85, displayHeight * 0.08, 5);\r\n        var shoulderCurve = Math.max(displayShoulderH, 1);\r\n\r\n        var fillPath = [\r\n          \"M\", x - neckHalf, yTop,\r\n          \"L\", x + neckHalf, yTop,\r\n          \"L\", x + neckHalf, yNeckEnd,\r\n          \"C\",\r\n          x + neckHalf, yNeckEnd + shoulderCurve * 0.28,\r\n          x + bodyHalf, yNeckEnd + shoulderCurve * 0.42,\r\n          x + bodyHalf, yShoulderEnd,\r\n          \"L\", x + bodyHalf, yBottom - bottomRound,\r\n          \"C\",\r\n          x + bodyHalf, yBottom - bottomRound * 0.25,\r\n          x + bodyHalf - bottomRound * 0.25, yBottom,\r\n          x + bodyHalf - bottomRound, yBottom,\r\n          \"L\", x - bodyHalf + bottomRound, yBottom,\r\n          \"C\",\r\n          x - bodyHalf + bottomRound * 0.25, yBottom,\r\n          x - bodyHalf, yBottom - bottomRound * 0.25,\r\n          x - bodyHalf, yBottom - bottomRound,\r\n          \"L\", x - bodyHalf, yShoulderEnd,\r\n          \"C\",\r\n          x - bodyHalf, yNeckEnd + shoulderCurve * 0.42,\r\n          x - neckHalf, yNeckEnd + shoulderCurve * 0.28,\r\n          x - neckHalf, yNeckEnd,\r\n          \"Z\"\r\n        ].join(\" \");\r\n\r\n        var strokePath = [\r\n          \"M\", x - neckHalf, yTop,\r\n          \"L\", x - neckHalf, yNeckEnd,\r\n          \"C\",\r\n          x - neckHalf, yNeckEnd + shoulderCurve * 0.28,\r\n          x - bodyHalf, yNeckEnd + shoulderCurve * 0.42,\r\n          x - bodyHalf, yShoulderEnd,\r\n          \"L\", x - bodyHalf, yBottom - bottomRound,\r\n          \"C\",\r\n          x - bodyHalf, yBottom - bottomRound * 0.25,\r\n          x - bodyHalf + bottomRound * 0.25, yBottom,\r\n          x - bodyHalf + bottomRound, yBottom,\r\n          \"L\", x + bodyHalf - bottomRound, yBottom,\r\n          \"C\",\r\n          x + bodyHalf - bottomRound * 0.25, yBottom,\r\n          x + bodyHalf, yBottom - bottomRound * 0.25,\r\n          x + bodyHalf, yBottom - bottomRound,\r\n          \"L\", x + bodyHalf, yShoulderEnd,\r\n          \"C\",\r\n          x + bodyHalf, yNeckEnd + shoulderCurve * 0.42,\r\n          x + neckHalf, yNeckEnd + shoulderCurve * 0.28,\r\n          x + neckHalf, yNeckEnd,\r\n          \"L\", x + neckHalf, yTop\r\n        ].join(\" \");\r\n\r\n        $(\"abcBottleFill\").setAttribute(\"d\", fillPath);\r\n        $(\"abcBottleStroke\").setAttribute(\"d\", strokePath);\r\n        $(\"abcBottleClipPath\").setAttribute(\"d\", fillPath);\r\n\r\n        var displayBodyH = Math.max(yBottom - yShoulderEnd, 0);\r\n        var displayedFillHeight = getFillHeightFromRatio(fillRatio, displayBodyH, displayShoulderH, displayNeckH, bodyHalf, neckHalf);\r\n        var clampedFillHeight = clamp(displayedFillHeight, 0, displayHeight);\r\n        var waterY = yBottom - clampedFillHeight;\r\n        var waterHalfWidth = bodyHalf;\r\n\r\n        if (clampedFillHeight > displayBodyH + displayShoulderH) {\r\n          waterHalfWidth = neckHalf;\r\n        } else if (clampedFillHeight > displayBodyH && displayShoulderH > 0) {\r\n          var shoulderOffset = clampedFillHeight - displayBodyH;\r\n          waterHalfWidth = getShoulderRadiusAtHeight(shoulderOffset, displayShoulderH, bodyHalf, neckHalf);\r\n        }\r\n\r\n        $(\"abcWaterRect\").setAttribute(\"x\", 0);\r\n        $(\"abcWaterRect\").setAttribute(\"y\", waterY);\r\n        $(\"abcWaterRect\").setAttribute(\"width\", viewW);\r\n        $(\"abcWaterRect\").setAttribute(\"height\", Math.max(yBottom - waterY, 0));\r\n\r\n        setLine($(\"abcWaterLine\"), x - waterHalfWidth + 0.8, waterY, x + waterHalfWidth - 0.8, waterY);\r\n\r\n        setLine($(\"abcHeightLine\"), x + bodyHalf + 7, yTop, x + bodyHalf + 7, yBottom);\r\n        setLine($(\"abcHeightTopTick\"), x + bodyHalf + 5, yTop, x + bodyHalf + 9, yTop);\r\n        setLine($(\"abcHeightBottomTick\"), x + bodyHalf + 5, yBottom, x + bodyHalf + 9, yBottom);\r\n\r\n        var heightText = $(\"abcHeightText\");\r\n        heightText.textContent = \"Height \" + formatMm(actualHeight) + \"mm\";\r\n        heightText.setAttribute(\"x\", x + bodyHalf + 13);\r\n        heightText.setAttribute(\"y\", (yTop + yBottom) \/ 2);\r\n        heightText.setAttribute(\r\n          \"transform\",\r\n          \"rotate(90 \" + (x + bodyHalf + 13) + \" \" + ((yTop + yBottom) \/ 2) + \")\"\r\n        );\r\n\r\n        setLine($(\"abcDiameterLine\"), x - bodyHalf, yBottom + 5, x + bodyHalf, yBottom + 5);\r\n        setLine($(\"abcDiameterLeftTick\"), x - bodyHalf, yBottom + 3, x - bodyHalf, yBottom + 7);\r\n        setLine($(\"abcDiameterRightTick\"), x + bodyHalf, yBottom + 3, x + bodyHalf, yBottom + 7);\r\n\r\n        var diameterText = $(\"abcDiameterText\");\r\n        diameterText.textContent = \"Diameter \" + formatMm(actualDiameter) + \"mm\";\r\n        diameterText.setAttribute(\"x\", x);\r\n        diameterText.setAttribute(\"y\", yBottom + 12);\r\n        diameterText.setAttribute(\"text-anchor\", \"middle\");\r\n        diameterText.removeAttribute(\"transform\");\r\n\r\n        setLine($(\"abcMouthLine\"), x - neckHalf, yTop - 3, x + neckHalf, yTop - 3);\r\n\r\n        var mouthText = $(\"abcMouthText\");\r\n        mouthText.textContent = \"Mouth \" + formatMm(actualMouth) + \"mm\";\r\n        mouthText.setAttribute(\"x\", x);\r\n        mouthText.setAttribute(\"y\", yTop - 6);\r\n        mouthText.setAttribute(\"text-anchor\", \"middle\");\r\n      }\r\n\r\n      function resetExample() {\r\n        $(\"abcHeight\").value = DEFAULT_HEIGHT;\r\n        state.diameter = DEFAULT_DIAMETER;\r\n        state.mouth = DEFAULT_MOUTH;\r\n\r\n        buildDropdown(\"diameter\", diameterOptions, state.diameter);\r\n        syncMouthForDiameter();\r\n        updateHeightRange();\r\n        hideWarning();\r\n        calculate();\r\n      }\r\n\r\n      function clearInputs() {\r\n        $(\"abcHeight\").value = \"\";\r\n        state.diameter = DEFAULT_DIAMETER;\r\n        state.mouth = DEFAULT_MOUTH;\r\n\r\n        buildDropdown(\"diameter\", diameterOptions, state.diameter);\r\n        syncMouthForDiameter();\r\n        updateHeightRange();\r\n        hideWarning();\r\n        calculate();\r\n        $(\"abcHeight\").focus();\r\n      }\r\n\r\n      function copyResult() {\r\n        var range = getHeightRange();\r\n\r\n        var text =\r\n          \"Aluminum Bottle Capacity Estimate\\n\" +\r\n          \"Bottom diameter: \" + state.diameter + \" mm\\n\" +\r\n          \"Available height range: \" + range.min + \"\u2013\" + range.max + \" mm\\n\" +\r\n          \"Total height: \" + $(\"abcHeight\").value + \" mm\\n\" +\r\n          \"Mouth diameter: \" + state.mouth + \" mm\\n\" +\r\n          \"Full capacity: \" + $(\"abcFullMl\").textContent + \" mL \/ \" +\r\n          $(\"abcFullUsOz\").textContent + \" US fl oz \/ \" +\r\n          $(\"abcFullUkOz\").textContent + \" UK fl oz\\n\" +\r\n          \"Filling capacity: \" + $(\"abcFillingMl\").textContent + \" mL \/ \" +\r\n          $(\"abcFillingUsOz\").textContent + \" US fl oz \/ \" +\r\n          $(\"abcFillingUkOz\").textContent + \" UK fl oz\\n\" +\r\n          \"Filling capacity rule: approx. 95% of full capacity\\n\" +\r\n          \"Diagram display scale: 1:3\";\r\n\r\n        if (navigator.clipboard && navigator.clipboard.writeText) {\r\n          navigator.clipboard.writeText(text).then(function () {\r\n            showToast(\"Result copied\");\r\n          }).catch(function () {\r\n            showToast(\"Copy failed\");\r\n          });\r\n        } else {\r\n          showToast(\"Copy not supported\");\r\n        }\r\n      }\r\n\r\n      document.addEventListener(\"click\", function (event) {\r\n        if (!root.contains(event.target)) {\r\n          closeAllDropdowns();\r\n        }\r\n      });\r\n\r\n      root.addEventListener(\"keydown\", function (event) {\r\n        if (event.key === \"Escape\") {\r\n          closeAllDropdowns();\r\n        }\r\n      });\r\n\r\n      $(\"abcHeight\").addEventListener(\"input\", function () {\r\n        validateHeight(true);\r\n        calculate();\r\n      });\r\n\r\n      $(\"abcMinHeight\").addEventListener(\"click\", function () {\r\n        setQuickHeight(\"min\");\r\n      });\r\n\r\n      $(\"abcMidHeight\").addEventListener(\"click\", function () {\r\n        setQuickHeight(\"mid\");\r\n      });\r\n\r\n      $(\"abcMaxHeight\").addEventListener(\"click\", function () {\r\n        setQuickHeight(\"max\");\r\n      });\r\n\r\n      $(\"abcResetBottom\").addEventListener(\"click\", resetExample);\r\n      $(\"abcClear\").addEventListener(\"click\", clearInputs);\r\n      $(\"abcCopy\").addEventListener(\"click\", copyResult);\r\n\r\n      buildDropdown(\"diameter\", diameterOptions, state.diameter);\r\n      syncMouthForDiameter();\r\n      updateHeightRange();\r\n      calculate();\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<div class=\"elementor-element elementor-element-e29ffe0 e-flex e-con-boxed e-con e-parent\" data-id=\"e29ffe0\" 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<div class=\"elementor-element elementor-element-3d3882a e-con-full e-flex e-con e-child\" data-id=\"3d3882a\" data-element_type=\"container\">\n\t\t<a class=\"elementor-element elementor-element-2e30c56 e-con-full e-flex e-con e-child\" data-id=\"2e30c56\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/1oz-botella-aluminio-30ml-botella-aluminio%e2%80%8b\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-363f717 img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"363f717\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/1oz-Aluminum-Package-Size-Capacity-rfzjj27fzibtww2plweip20nh1iuk1hyn49s5ofnr6.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 1 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-41986f8 elementor-widget elementor-widget-heading\" data-id=\"41986f8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 1 oz (30 ml)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-98df9cd e-con-full e-flex e-con e-child\" data-id=\"98df9cd\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/personalizado-2-oz-aluminio-botella-60ml-aluminio-botella%e2%80%8b\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5537b7f img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"5537b7f\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/2oz-Aluminum-Package-Size-Capacity-rfzjj27fzibtww2plweip20nh1iuk1hyn49s5ofnr6.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 2 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dfb3535 elementor-widget elementor-widget-heading\" data-id=\"dfb3535\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 2 oz (60 ml)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-cc03fd7 e-con-full e-flex e-con e-child\" data-id=\"cc03fd7\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/personalizado-3-oz-4-oz-botella-de-aluminio-100ml-botella-de-aluminio\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce8dee4 img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"ce8dee4\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/3-4oz-Aluminum-Package-Size-Capacity-rfzjj434d6eek3zzax7ru1jknt9kzfpfbdkr48cveq.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 3 a 4 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a5fa33 elementor-widget elementor-widget-heading\" data-id=\"6a5fa33\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 3 oz y 4 oz<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-780c74b e-con-full e-flex e-con e-child\" data-id=\"780c74b\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/6-oz-8-oz-botella-aluminio-200ml-250ml-300ml-botella-aluminio\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2ceaffc img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"2ceaffc\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/6-8oz-Aluminum-Package-Size-Capacity-rfzjj434d6eek3zzax7ru1jknt9kzfpfbdkr48cveq.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 6 a 8 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a548bbd elementor-widget elementor-widget-heading\" data-id=\"a548bbd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 6 oz y 8 oz<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-1f11cec e-con-full e-flex e-con e-child\" data-id=\"1f11cec\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/10-oz-12-oz-botella-aluminio-300ml-350ml-botella-aluminio\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69d0a42 img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"69d0a42\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/10-12oz-Aluminum-Package-Size-Capacity-rfzjj434d6eek3zzax7ru1jknt9kzfpfbdkr48cveq.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 10 a 12 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-80ac887 elementor-widget elementor-widget-heading\" data-id=\"80ac887\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botellas de aluminio de 10 oz y 12 oz<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-d1ec5b1 e-con-full e-flex e-con e-child\" data-id=\"d1ec5b1\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/personalizado-16-oz-aluminio-botella-500ml-aluminio-botella\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fe86c65 img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"fe86c65\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/16oz-Aluminum-Package-Size-Capacity-rfzjj5ysqugz7bx8zy10z12hul0betwvzmvq2sa32a.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 16 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7eeba52 elementor-widget elementor-widget-heading\" data-id=\"7eeba52\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 16 oz (500 ml)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-fdc6daf e-con-full e-flex e-con e-child\" data-id=\"fdc6daf\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/25oz-botella-aluminio-700-750ml-botella-aluminio\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a365cdc img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"a365cdc\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/24-25oz-Aluminum-Package-Size-Capacity-rfzjj5ysqugz7bx8zy10z12hul0betwvzmvq2sa32a.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 24 a 25 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15c1812 elementor-widget elementor-widget-heading\" data-id=\"15c1812\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 24 oz y 25 oz<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-39f0de8 e-con-full e-flex e-con e-child\" data-id=\"39f0de8\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/33-oz-34-oz-botella-aluminio-1000ml-botella-aluminio\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-627daa7 img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"627daa7\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/33-34oz-Aluminum-Package-Size-Capacity-rfzjj7uh4ijjujuioyua40lf1cr1u84cnw6p1c7apu.webp);\" role=\"img\" aria-label=\"Tama\u00f1o y capacidad del paquete de aluminio de 33 a 34 oz\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f442dc elementor-widget elementor-widget-heading\" data-id=\"6f442dc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 33 oz y 34 oz<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t<a class=\"elementor-element elementor-element-bd0166e e-con-full e-flex e-con e-child\" data-id=\"bd0166e\" data-element_type=\"container\" href=\"https:\/\/www.cnshining.com\/es\/botella-de-aluminio-grande\/\" target=\"_blank\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a6600d img elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"5a6600d\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/www.cnshining.com\/wp-content\/uploads\/elementor\/thumbs\/1L-Aluminum-Package-Size-Capacity-rfzjj0brlu999o5fwvl9k2hqa9s44nahyuyt74ig3m.webp);\" role=\"img\" aria-label=\"&gt;Tama\u00f1o y capacidad del paquete de aluminio de 1 L\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e5dbe8 elementor-widget elementor-widget-heading\" data-id=\"5e5dbe8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Botella de aluminio de 1L<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/a>\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 Estimador de capacidad de botellas de aluminio Calculadora de capacidad de botellas de aluminio Esta herramienta estima la capacidad de una botella de aluminio com\u00fan de cuerpo recto y hombros redondeados. Seleccione primero el di\u00e1metro de la base y luego introduzca un rango de altura correspondiente o utilice los botones de altura r\u00e1pida. Di\u00e1metro primero Seleccione primero el di\u00e1metro de la base para cargar el rango de altura correspondiente. Altura r\u00e1pida [\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-48366","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages\/48366","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=48366"}],"version-history":[{"count":78,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages\/48366\/revisions"}],"predecessor-version":[{"id":48569,"href":"https:\/\/www.cnshining.com\/es\/wp-json\/wp\/v2\/pages\/48366\/revisions\/48569"}],"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=48366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}