


<style id="elementor-post-21914">.elementor-21914 .elementor-element.elementor-element-1dd16d4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:-134px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-21914 .elementor-element.elementor-element-5793f3b{--display:flex;--justify-content:center;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-21914 .elementor-element.elementor-element-7c069d8 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-21914 .elementor-element.elementor-element-7c069d8{text-align:center;}.elementor-21914 .elementor-element.elementor-element-7c069d8 .elementor-heading-title{font-family:"Roboto", Sans-serif;font-size:29px;font-weight:600;-webkit-text-stroke-color:#000;stroke:#000;text-shadow:0px 0px 0px rgba(0,0,0,0.3);color:#33558B;}.elementor-21914 .elementor-element.elementor-element-7c069d8 .elementor-heading-title a{transition-duration:0s;}.elementor-21914 .elementor-element.elementor-element-98e4224{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:-31px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-21914 .elementor-element.elementor-element-b159c58{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-21914 .elementor-element.elementor-element-6c9afe8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:-36px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-21914 .elementor-element.elementor-element-dc7330c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}@media(max-width:1024px){.elementor-21914 .elementor-element.elementor-element-7c069d8 > .elementor-widget-container{padding:0px 0px 0px 0px;}}@media(max-width:767px){.elementor-21914 .elementor-element.elementor-element-723c2ea > .elementor-widget-container{margin:97px 0px 0px 0px;}.elementor-21914 .elementor-element.elementor-element-5793f3b{--margin-top:-25px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-21914 .elementor-element.elementor-element-7c069d8 > .elementor-widget-container{padding:010px 010px 5px 010px;}.elementor-21914 .elementor-element.elementor-element-7c069d8{text-align:center;}.elementor-21914 .elementor-element.elementor-element-7c069d8 .elementor-heading-title{font-size:17px;-webkit-text-stroke-width:0px;stroke-width:0px;}}@media(min-width:768px){.elementor-21914 .elementor-element.elementor-element-5793f3b{--content-width:1600px;}}</style>{"id":21914,"date":"2026-09-28T22:06:35","date_gmt":"2026-09-28T18:06:35","guid":{"rendered":"https:\/\/datvale.ge\/%e1%83%95%e1%83%94%e1%83%9c%e1%83%a2%e1%83%98%e1%83%9a%e1%83%90%e1%83%aa%e1%83%98%e1%83%90\/"},"modified":"2026-10-07T18:59:44","modified_gmt":"2026-10-07T14:59:44","slug":"ventilation-calculator","status":"publish","type":"page","link":"https:\/\/datvale.ge\/en\/ventilation-calculator\/","title":{"rendered":"Ventilation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21914\" class=\"elementor elementor-21914 elementor-20969\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1dd16d4 e-flex e-con-boxed e-con e-parent\" data-id=\"1dd16d4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-723c2ea elementor-widget elementor-widget-html\" data-id=\"723c2ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"dv-kalkulatorebi-banner\">\r\n\r\n  <img decoding=\"async\"\r\n    src=\"https:\/\/datvale.ge\/wp-content\/uploads\/2026\/10\/remontis-kalkulatori-2.webp\"\r\n    alt=\"Datvale Calculators\"\r\n  >\r\n\r\n<\/div>\r\n\r\n<style>\r\n\r\n.dv-kalkulatorebi-banner,\r\n.dv-kalkulatorebi-banner *{\r\n  box-sizing:border-box;\r\n}\r\n\r\n.dv-kalkulatorebi-banner{\r\n  position:relative;\r\n  overflow:hidden;\r\n\r\n  width:100%;\r\n  height:215px;\r\n\r\n  margin:18px 0;\r\n\r\n  border-radius:22px;\r\n\r\n  background:#eef1f4;\r\n}\r\n\r\n.dv-kalkulatorebi-banner img{\r\n  display:block;\r\n\r\n  width:100%;\r\n  height:100%;\r\n\r\n  margin:0;\r\n  padding:0;\r\n\r\n  border:0;\r\n\r\n  object-fit:cover;\r\n  object-position:center;\r\n\r\n  image-rendering:auto;\r\n}\r\n\r\n\r\n\/* TABLET *\/\r\n\r\n@media(max-width:900px){\r\n\r\n  .dv-kalkulatorebi-banner{\r\n    height:190px;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* MOBILE *\/\r\n\r\n@media(max-width:700px){\r\n\r\n  .dv-kalkulatorebi-banner{\r\n    height:183px;\r\n\r\n    margin:10px 0;\r\n\r\n    border-radius:14px;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* SMALL MOBILE *\/\r\n\r\n@media(max-width:380px){\r\n\r\n  .dv-kalkulatorebi-banner{\r\n    height:165px;\r\n  }\r\n\r\n}\r\n\r\n<\/style>\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-5793f3b e-flex e-con-boxed e-con e-parent\" data-id=\"5793f3b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c069d8 elementor-widget elementor-widget-heading\" data-id=\"7c069d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ventilation Cost 2026 \u2013 Ventilation Calculator<\/h1>\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-98e4224 e-flex e-con-boxed e-con e-parent\" data-id=\"98e4224\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0d4f9a8 elementor-widget elementor-widget-html\" data-id=\"0d4f9a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"dv-vent-calculator\">\r\n<style>\r\n#dv-vent-calculator,#dv-vent-calculator *{box-sizing:border-box}\r\n#dv-vent-calculator{\r\n  --b:#0b3a78;\r\n  --b2:#1764bd;\r\n  --t:#173558;\r\n  --m:#5f7287;\r\n  --bd:#e3ebf5;\r\n  position:relative;\r\n  width:100%;\r\n  max-width:1260px;\r\n  margin:26px auto;\r\n  padding:42px 22px;\r\n  border:1px solid var(--bd);\r\n  border-radius:24px;\r\n  background:\r\n    radial-gradient(circle at top right,rgba(52,86,150,.09),transparent 34%),\r\n    linear-gradient(180deg,#f8fbff 0%,#eef4fb 100%);\r\n  color:var(--t);\r\n  font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;\r\n  box-shadow:0 16px 42px rgba(11,58,120,.10)\r\n}\r\n\r\n#dv-vent-calculator .dv-calculator{\r\n  width:100%;\r\n  max-width:1180px;\r\n  margin:auto\r\n}\r\n\r\n#dv-vent-calculator .card,\r\n#dv-vent-calculator .result-card,\r\n#dv-vent-calculator .summary,\r\n#dv-vent-calculator .info,\r\n#dv-vent-calculator .related,\r\n#dv-vent-calculator .performance{\r\n  border:1px solid var(--bd);\r\n  border-radius:22px;\r\n  background:#fff;\r\n  box-shadow:0 16px 40px rgba(11,58,120,.10)\r\n}\r\n\r\n#dv-vent-calculator .card{\r\n  padding:28px;\r\n  margin-bottom:24px\r\n}\r\n\r\n#dv-vent-calculator .title{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:11px;\r\n  margin:0 0 22px;\r\n  font-size:24px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .num{\r\n  display:inline-flex;\r\n  width:36px;\r\n  height:36px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  border-radius:50%;\r\n  background:linear-gradient(135deg,var(--b),var(--b2));\r\n  color:#fff;\r\n  font-size:14px\r\n}\r\n\r\n#dv-vent-calculator .grid{\r\n  display:grid;\r\n  grid-template-columns:repeat(3,minmax(0,1fr));\r\n  gap:18px\r\n}\r\n\r\n#dv-vent-calculator label{\r\n  display:block;\r\n  margin-bottom:8px;\r\n  font-size:14px;\r\n  font-weight:850\r\n}\r\n\r\n#dv-vent-calculator .wrap{\r\n  position:relative\r\n}\r\n\r\n#dv-vent-calculator input,\r\n#dv-vent-calculator select{\r\n  width:100%;\r\n  height:56px;\r\n  border:1px solid #d8e3ef;\r\n  border-radius:14px;\r\n  outline:none;\r\n  background:#f8fbff;\r\n  color:var(--t);\r\n  font-size:16px;\r\n  font-weight:800\r\n}\r\n\r\n#dv-vent-calculator input{\r\n  padding:0 52px 0 15px\r\n}\r\n\r\n#dv-vent-calculator select{\r\n  padding:0 42px 0 15px\r\n}\r\n\r\n#dv-vent-calculator input:focus,\r\n#dv-vent-calculator select:focus{\r\n  border-color:var(--b2);\r\n  background:#fff;\r\n  box-shadow:0 0 0 4px rgba(23,100,189,.10)\r\n}\r\n\r\n#dv-vent-calculator .unit{\r\n  position:absolute;\r\n  right:14px;\r\n  top:50%;\r\n  transform:translateY(-50%);\r\n  color:var(--m);\r\n  font-size:13px;\r\n  font-weight:850\r\n}\r\n\r\n#dv-vent-calculator .note{\r\n  margin-top:20px;\r\n  padding:14px 16px;\r\n  border:1px solid #dce7f2;\r\n  border-radius:14px;\r\n  background:#f8fbff;\r\n  color:#526b84;\r\n  font-size:13px;\r\n  line-height:1.55;\r\n  font-weight:650\r\n}\r\n\r\n#dv-vent-calculator .calc{\r\n  width:100%;\r\n  min-height:58px;\r\n  margin-top:22px;\r\n  border:0;\r\n  border-radius:14px;\r\n  cursor:pointer;\r\n  background:linear-gradient(135deg,var(--b),var(--b2));\r\n  color:#fff;\r\n  font-size:17px;\r\n  font-weight:950;\r\n  box-shadow:0 12px 28px rgba(11,58,120,.22)\r\n}\r\n\r\n#dv-vent-calculator .calc:disabled{\r\n  opacity:.65\r\n}\r\n\r\n#dv-vent-calculator .err{\r\n  display:none;\r\n  margin-top:14px;\r\n  padding:13px 15px;\r\n  border:1px solid rgba(174,32,32,.18);\r\n  border-radius:12px;\r\n  background:#fff2f2;\r\n  color:#a32020;\r\n  font-size:14px;\r\n  font-weight:850\r\n}\r\n\r\n#dv-vent-calculator .output{\r\n  display:none;\r\n  scroll-margin-top:140px\r\n}\r\n\r\n#dv-vent-calculator .output.show{\r\n  display:block\r\n}\r\n\r\n#dv-vent-calculator .performance{\r\n  max-width:1080px;\r\n  margin:0 auto 18px;\r\n  padding:22px\r\n}\r\n\r\n#dv-vent-calculator .pgrid{\r\n  display:grid;\r\n  grid-template-columns:repeat(4,minmax(0,1fr));\r\n  gap:14px\r\n}\r\n\r\n#dv-vent-calculator .pitem,\r\n#dv-vent-calculator .sitem{\r\n  padding:18px;\r\n  border:1px solid #e1e9f3;\r\n  border-radius:16px;\r\n  background:#f8fbff;\r\n  text-align:center\r\n}\r\n\r\n#dv-vent-calculator .plabel,\r\n#dv-vent-calculator .slabel{\r\n  display:block;\r\n  margin-bottom:7px;\r\n  color:var(--m);\r\n  font-size:13px;\r\n  font-weight:850\r\n}\r\n\r\n#dv-vent-calculator .pval{\r\n  font-size:18px;\r\n  font-weight:950;\r\n  line-height:1.25\r\n}\r\n\r\n#dv-vent-calculator .results{\r\n  display:grid;\r\n  grid-template-columns:1fr;\r\n  gap:18px;\r\n  max-width:1080px;\r\n  margin:auto\r\n}\r\n\r\n#dv-vent-calculator .result-card{\r\n  overflow:hidden\r\n}\r\n\r\n#dv-vent-calculator .rhead{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:10px;\r\n  padding:17px 20px;\r\n  background:linear-gradient(135deg,var(--b),var(--b2));\r\n  color:#fff\r\n}\r\n\r\n#dv-vent-calculator .rhead h3{\r\n  margin:0;\r\n  color:#fff;\r\n  font-size:18px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .ricon{\r\n  display:inline-flex;\r\n  width:34px;\r\n  height:34px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  border-radius:10px;\r\n  background:rgba(255,255,255,.14)\r\n}\r\n\r\n#dv-vent-calculator .rbody{\r\n  padding:10px 18px 15px\r\n}\r\n\r\n#dv-vent-calculator .row{\r\n  display:grid;\r\n  grid-template-columns:minmax(0,1fr) auto;\r\n  gap:15px;\r\n  align-items:center;\r\n  padding:12px 0;\r\n  border-bottom:1px dashed #d9e4ef\r\n}\r\n\r\n#dv-vent-calculator .row:last-child{\r\n  border-bottom:0\r\n}\r\n\r\n#dv-vent-calculator .rname{\r\n  color:#425a74;\r\n  font-size:14px;\r\n  font-weight:650\r\n}\r\n\r\n#dv-vent-calculator .rval{\r\n  text-align:right;\r\n  white-space:nowrap;\r\n  font-size:15px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .ctotal{\r\n  margin:7px 0 2px;\r\n  padding:14px 15px;\r\n  border:1px solid #d8e3ef;\r\n  border-radius:13px;\r\n  background:#f4f8fd;\r\n  font-size:15px;\r\n  font-weight:950;\r\n  text-align:right\r\n}\r\n\r\n#dv-vent-calculator .summary{\r\n  max-width:1080px;\r\n  margin:22px auto 0;\r\n  padding:26px\r\n}\r\n\r\n#dv-vent-calculator .sgrid{\r\n  display:grid;\r\n  grid-template-columns:repeat(4,minmax(0,1fr));\r\n  gap:14px\r\n}\r\n\r\n#dv-vent-calculator .sval{\r\n  font-size:22px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .grand{\r\n  margin-top:16px;\r\n  padding:29px 20px;\r\n  border-radius:18px;\r\n  background:linear-gradient(135deg,var(--b),var(--b2));\r\n  color:#fff;\r\n  text-align:center;\r\n  box-shadow:0 14px 30px rgba(11,58,120,.20)\r\n}\r\n\r\n#dv-vent-calculator .grand small{\r\n  display:block;\r\n  margin-bottom:8px;\r\n  color:rgba(255,255,255,.82);\r\n  font-size:14px;\r\n  font-weight:850\r\n}\r\n\r\n#dv-vent-calculator .grand strong{\r\n  display:block;\r\n  color:#fff;\r\n  font-size:clamp(34px,6vw,52px);\r\n  font-weight:1000\r\n}\r\n\r\n#dv-vent-calculator .pdf{\r\n  width:100%;\r\n  min-height:56px;\r\n  margin-top:15px;\r\n  border:0;\r\n  border-radius:14px;\r\n  cursor:pointer;\r\n  background:linear-gradient(135deg,#13795b,#0e9a70);\r\n  color:#fff;\r\n  font-size:16px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .info,\r\n#dv-vent-calculator .related{\r\n  max-width:1080px;\r\n  margin:20px auto 0;\r\n  padding:22px\r\n}\r\n\r\n#dv-vent-calculator .info h3{\r\n  margin:0 0 10px;\r\n  font-size:20px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .info p{\r\n  margin:0;\r\n  color:#526b84;\r\n  font-size:13px;\r\n  line-height:1.65;\r\n  font-weight:650\r\n}\r\n\r\n#dv-vent-calculator .source{\r\n  margin-top:12px;\r\n  color:#70849a;\r\n  font-size:12px;\r\n  line-height:1.55;\r\n  font-weight:650\r\n}\r\n\r\n#dv-vent-calculator .relgrid{\r\n  display:grid;\r\n  grid-template-columns:repeat(3,minmax(0,1fr));\r\n  gap:14px\r\n}\r\n\r\n#dv-vent-calculator .rellink{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:12px;\r\n  padding:17px 16px;\r\n  border:1px solid #d8e3ef;\r\n  border-radius:16px;\r\n  background:#f8fbff;\r\n  color:var(--b);\r\n  text-decoration:none!important\r\n}\r\n\r\n#dv-vent-calculator .relicon{\r\n  display:inline-flex;\r\n  width:42px;\r\n  height:42px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  border-radius:12px;\r\n  color:#fff;\r\n  background:linear-gradient(135deg,var(--b),var(--b2));\r\n  font-size:20px\r\n}\r\n\r\n#dv-vent-calculator .reltext{\r\n  min-width:0;\r\n  flex:1\r\n}\r\n\r\n#dv-vent-calculator .reltext strong{\r\n  display:block;\r\n  margin-bottom:4px;\r\n  color:var(--b);\r\n  font-size:15px;\r\n  font-weight:950\r\n}\r\n\r\n#dv-vent-calculator .reltext small{\r\n  display:block;\r\n  color:var(--m);\r\n  font-size:12px;\r\n  line-height:1.45\r\n}\r\n\r\n#dv-vent-calculator .arrow{\r\n  font-size:18px;\r\n  font-weight:950\r\n}\r\n\r\n@media(max-width:900px){\r\n  #dv-vent-calculator .grid{\r\n    grid-template-columns:repeat(2,minmax(0,1fr))\r\n  }\r\n\r\n  #dv-vent-calculator .sgrid,\r\n  #dv-vent-calculator .pgrid{\r\n    grid-template-columns:repeat(2,minmax(0,1fr))\r\n  }\r\n\r\n  #dv-vent-calculator .relgrid{\r\n    grid-template-columns:1fr\r\n  }\r\n}\r\n\r\n@media(max-width:600px){\r\n  #dv-vent-calculator{\r\n    padding:24px 12px\r\n  }\r\n\r\n  #dv-vent-calculator .card,\r\n  #dv-vent-calculator .summary,\r\n  #dv-vent-calculator .performance,\r\n  #dv-vent-calculator .related{\r\n    padding:18px!important\r\n  }\r\n\r\n  #dv-vent-calculator .grid,\r\n  #dv-vent-calculator .sgrid,\r\n  #dv-vent-calculator .pgrid{\r\n    grid-template-columns:1fr\r\n  }\r\n\r\n  #dv-vent-calculator .row{\r\n    grid-template-columns:1fr;\r\n    gap:5px\r\n  }\r\n\r\n  #dv-vent-calculator .rval,\r\n  #dv-vent-calculator .ctotal{\r\n    text-align:left;\r\n    white-space:normal\r\n  }\r\n}\r\n<\/style>\r\n\r\n\r\n<div class=\"dv-calculator\">\r\n\r\n<div class=\"card\">\r\n\r\n<h3 class=\"title\">\r\nSelect the Main Ventilation Parameters\r\n<\/h3>\r\n\r\n<div class=\"grid\">\r\n\r\n<div>\r\n<label for=\"va\">Property Area<\/label>\r\n<div class=\"wrap\">\r\n<input id=\"va\" type=\"number\" min=\"10\" max=\"5000\" step=\"1\" placeholder=\"e.g. 100\">\r\n<span class=\"unit\">m\u00b2<\/span>\r\n<\/div>\r\n<\/div>\r\n\r\n<div>\r\n<label for=\"vh\">Ceiling Height<\/label>\r\n<div class=\"wrap\">\r\n<input id=\"vh\" type=\"number\" min=\"2.2\" max=\"8\" step=\"0.1\" value=\"2.8\">\r\n<span class=\"unit\">m<\/span>\r\n<\/div>\r\n<\/div>\r\n\r\n<div>\r\n<label for=\"vp\">Number of People<\/label>\r\n<div class=\"wrap\">\r\n<input id=\"vp\" type=\"number\" min=\"1\" max=\"500\" step=\"1\" placeholder=\"e.g. 4\">\r\n<span class=\"unit\">people<\/span>\r\n<\/div>\r\n<\/div>\r\n\r\n<div>\r\n<label for=\"vo\">Property Type<\/label>\r\n<select id=\"vo\">\r\n<option value=\"apartment\">Apartment<\/option>\r\n<option value=\"house\">Private House<\/option>\r\n<option value=\"office\">Office<\/option>\r\n<option value=\"commercial\">Commercial Space<\/option>\r\n<option value=\"cafe\">Restaurant \/ Cafe \u2014 Dining Area<\/option>\r\n<\/select>\r\n<\/div>\r\n\r\n<div>\r\n<label for=\"vs\">Ventilation System<\/label>\r\n<select id=\"vs\">\r\n<option value=\"exhaust\">Exhaust Only<\/option>\r\n<option value=\"supply\">Supply + Exhaust<\/option>\r\n<option value=\"recovery\" selected>Supply + Exhaust with Heat Recovery<\/option>\r\n<option value=\"central\">Central System<\/option>\r\n<\/select>\r\n<\/div>\r\n\r\n<div>\r\n<label for=\"vheat\">Heater \/ Air Heater<\/label>\r\n<select id=\"vheat\">\r\n<option value=\"no\">No<\/option>\r\n<option value=\"yes\">Yes<\/option>\r\n<\/select>\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n<div class=\"note\">\r\nThe calculation covers general ventilation. For restaurants and cafes, it does not include professional kitchen hoods, grease traps, or specialized smoke extraction systems.\r\n<\/div>\r\n\r\n<button class=\"calc\" id=\"vcalc\" type=\"button\">\r\nCalculate Ventilation Cost\r\n<\/button>\r\n\r\n<div class=\"err\" id=\"verr\">\r\nPlease enter the property area, ceiling height, and number of people correctly.\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<div class=\"output\" id=\"vout\">\r\n\r\n<div class=\"performance\">\r\n\r\n<h3 class=\"title\">\r\n<span class=\"num\">1<\/span>\r\nSystem Recommendation\r\n<\/h3>\r\n\r\n<div class=\"pgrid\">\r\n\r\n<div class=\"pitem\">\r\n<span class=\"plabel\">Required Airflow<\/span>\r\n<span class=\"pval\" id=\"pflow\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"pitem\">\r\n<span class=\"plabel\">Recommended System<\/span>\r\n<span class=\"pval\" id=\"psys\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"pitem\">\r\n<span class=\"plabel\">Duct Length<\/span>\r\n<span class=\"pval\" id=\"pduct\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"pitem\">\r\n<span class=\"plabel\">Diffusers \/ Grilles<\/span>\r\n<span class=\"pval\" id=\"poutlets\">\u2014<\/span>\r\n<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n<div class=\"results\">\r\n\r\n<div class=\"result-card\">\r\n<div class=\"rhead\">\r\n<span class=\"ricon\">\u2699\ufe0f<\/span>\r\n<h3>Equipment<\/h3>\r\n<\/div>\r\n\r\n<div class=\"rbody\">\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\" id=\"nmain\">Ventilation Unit<\/span>\r\n<span class=\"rval\" id=\"vmain\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Heat Recovery Unit<\/span>\r\n<span class=\"rval\" id=\"vrec\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Filters<\/span>\r\n<span class=\"rval\" id=\"vfilter\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Heater \/ Air Heater<\/span>\r\n<span class=\"rval\" id=\"vheater\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Automation<\/span>\r\n<span class=\"rval\" id=\"vauto\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"ctotal\" id=\"tequip\">\u2014<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n<div class=\"result-card\">\r\n<div class=\"rhead\">\r\n<span class=\"ricon\">\ud83c\udf00<\/span>\r\n<h3>Air Ducts<\/h3>\r\n<\/div>\r\n\r\n<div class=\"rbody\">\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\" id=\"nduct\">Air Duct<\/span>\r\n<span class=\"rval\" id=\"vduct\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Insulation<\/span>\r\n<span class=\"rval\" id=\"vins\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Fittings<\/span>\r\n<span class=\"rval\" id=\"vfit\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Elbows<\/span>\r\n<span class=\"rval\" id=\"velb\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Tees<\/span>\r\n<span class=\"rval\" id=\"vtee\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Reducers<\/span>\r\n<span class=\"rval\" id=\"vred\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Brackets \/ Clamps<\/span>\r\n<span class=\"rval\" id=\"vclamp\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"ctotal\" id=\"tduct\">\u2014<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n<div class=\"result-card\">\r\n<div class=\"rhead\">\r\n<span class=\"ricon\">\ud83d\udca8<\/span>\r\n<h3>Air Distribution Components<\/h3>\r\n<\/div>\r\n\r\n<div class=\"rbody\">\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Diffusers \/ Air Valves<\/span>\r\n<span class=\"rval\" id=\"vdiff\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Ventilation Grilles<\/span>\r\n<span class=\"rval\" id=\"vgrill\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"ctotal\" id=\"tdist\">\u2014<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n<div class=\"result-card\">\r\n<div class=\"rhead\">\r\n<span class=\"ricon\">\ud83d\udd27<\/span>\r\n<h3>Additional Components<\/h3>\r\n<\/div>\r\n\r\n<div class=\"rbody\">\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Silencer<\/span>\r\n<span class=\"rval\" id=\"vsil\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Backdraft Damper<\/span>\r\n<span class=\"rval\" id=\"vback\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Fire Damper, if required<\/span>\r\n<span class=\"rval\" id=\"vfire\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">External Grille \/ Hood<\/span>\r\n<span class=\"rval\" id=\"vext\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"ctotal\" id=\"tadd\">\u2014<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n<div class=\"result-card\">\r\n<div class=\"rhead\">\r\n<span class=\"ricon\">\ud83d\udee0\ufe0f<\/span>\r\n<h3>Labor<\/h3>\r\n<\/div>\r\n\r\n<div class=\"rbody\">\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Duct Installation<\/span>\r\n<span class=\"rval\" id=\"vlabor1\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Equipment Installation<\/span>\r\n<span class=\"rval\" id=\"vlabor2\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Insulation Installation<\/span>\r\n<span class=\"rval\" id=\"vlabor3\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Electrical Connection<\/span>\r\n<span class=\"rval\" id=\"vlabor4\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"row\">\r\n<span class=\"rname\">Commissioning \/ Balancing<\/span>\r\n<span class=\"rval\" id=\"vlabor5\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"ctotal\" id=\"tlabor\">\u2014<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<div class=\"summary\">\r\n\r\n<h3 class=\"title\">\r\n<span class=\"num\">2<\/span>\r\nCost Summary\r\n<\/h3>\r\n\r\n<div class=\"sgrid\">\r\n\r\n<div class=\"sitem\">\r\n<span class=\"slabel\">Materials<\/span>\r\n<span class=\"sval\" id=\"smat\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"sitem\">\r\n<span class=\"slabel\">Equipment<\/span>\r\n<span class=\"sval\" id=\"sequip\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"sitem\">\r\n<span class=\"slabel\">Installation<\/span>\r\n<span class=\"sval\" id=\"slabor\">\u2014<\/span>\r\n<\/div>\r\n\r\n<div class=\"sitem\">\r\n<span class=\"slabel\">Additional<\/span>\r\n<span class=\"sval\" id=\"sadd\">\u2014<\/span>\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n<div class=\"grand\">\r\n<small>Estimated Total Ventilation System Cost<\/small>\r\n<strong id=\"stotal\">\u2014<\/strong>\r\n<\/div>\r\n\r\n<button class=\"pdf\" id=\"vpdf\" type=\"button\">\r\n\ud83d\udcc4 Download PDF\r\n<\/button>\r\n\r\n<\/div>\r\n\r\n\r\n<div class=\"info\">\r\n\r\n<h3>How Is the Calculation Made?<\/h3>\r\n\r\n<p>\r\nThe system calculates the property volume, required air exchange, and airflow demand based on the number of people. It then selects the higher airflow requirement, recommended duct diameter, estimated duct length, and number of air distribution outlets.\r\n<\/p>\r\n\r\n<div class=\"source\">\r\nPrices are estimated calculator rates based on average market costs of products and installation work in Georgia. A site inspection and HVAC design are required for the final project.\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<div class=\"related\">\r\n\r\n<div class=\"relgrid\">\r\n\r\n<a class=\"rellink\" href=\"https:\/\/datvale.ge\/en\/renovation-calculator\/\" target=\"_blank\" rel=\"noopener\">\r\n<span class=\"relicon\">\ud83d\udee0\ufe0f<\/span>\r\n<span class=\"reltext\">\r\n<strong>Renovation Calculator<\/strong>\r\n<small>Calculate the estimated total renovation cost<\/small>\r\n<\/span>\r\n<span class=\"arrow\">\u2192<\/span>\r\n<\/a>\r\n\r\n<a class=\"rellink\" href=\"https:\/\/datvale.ge\/en\/construction-calculator\/\" target=\"_blank\" rel=\"noopener\">\r\n<span class=\"relicon\">\ud83c\udfd7\ufe0f<\/span>\r\n<span class=\"reltext\">\r\n<strong>Construction Calculator<\/strong>\r\n<small>Calculate the cost of house construction<\/small>\r\n<\/span>\r\n<span class=\"arrow\">\u2192<\/span>\r\n<\/a>\r\n\r\n<a class=\"rellink\" href=\"https:\/\/datvale.ge\/en\/plumbing-heating-calculator\/\" target=\"_blank\" rel=\"noopener\">\r\n<span class=\"relicon\">\ud83d\udd25<\/span>\r\n<span class=\"reltext\">\r\n<strong>Plumbing & Heating<\/strong>\r\n<small>Explore other Datvale calculators<\/small>\r\n<\/span>\r\n<span class=\"arrow\">\u2192<\/span>\r\n<\/a>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n<script src=\"https:\/\/datvale.ge\/wp-content\/uploads\/datvale-assets\/jspdf.umd.min.js\"><\/script>\r\n\r\n<script>\r\n(function(){\r\n\r\n\"use strict\";\r\n\r\nconst root=document.getElementById(\"dv-vent-calculator\");\r\nif(!root)return;\r\n\r\nconst $=id=>root.querySelector(\"#\"+id);\r\n\r\n\r\n\/* Property types *\/\r\n\r\nconst profiles={\r\n  apartment:{\r\n    ach:.75,\r\n    person:30,\r\n    outlet:110,\r\n    label:\"Apartment\"\r\n  },\r\n\r\n  house:{\r\n    ach:.75,\r\n    person:30,\r\n    outlet:110,\r\n    label:\"Private House\"\r\n  },\r\n\r\n  office:{\r\n    ach:1.35,\r\n    person:40,\r\n    outlet:125,\r\n    label:\"Office\"\r\n  },\r\n\r\n  commercial:{\r\n    ach:1.6,\r\n    person:35,\r\n    outlet:130,\r\n    label:\"Commercial Space\"\r\n  },\r\n\r\n  cafe:{\r\n    ach:2.2,\r\n    person:40,\r\n    outlet:140,\r\n    label:\"Restaurant \/ Cafe \u2014 Dining Area\"\r\n  }\r\n};\r\n\r\n\r\nconst labels={\r\n  exhaust:\"Exhaust Only\",\r\n  supply:\"Supply + Exhaust\",\r\n  recovery:\"Supply + Exhaust with Heat Recovery\",\r\n  central:\"Central Ventilation System\"\r\n};\r\n\r\n\r\n\/* Updated rates *\/\r\n\r\nconst rates={\r\n  diff:21,\r\n  grill:28,\r\n  sil:95,\r\n  back:35,\r\n  ext:65,\r\n  fire:250,\r\n\r\n  fit:28,\r\n  elb:32,\r\n  tee:45,\r\n  red:38,\r\n  clamp:6,\r\n\r\n  ins:18,\r\n\r\n  ductLabor:35,\r\n  insLabor:12,\r\n  electric:220\r\n};\r\n\r\n\r\nconst n=id=>{\r\n  const v=parseFloat(\r\n    String($(id)?.value||\"\").replace(\",\",\".\")\r\n  );\r\n\r\n  return Number.isFinite(v)?v:0;\r\n};\r\n\r\n\r\nconst money=v=>\r\n  new Intl.NumberFormat(\r\n    \"en-US\",\r\n    {maximumFractionDigits:0}\r\n  ).format(Math.round(v))+\" \u20be\";\r\n\r\n\r\nconst txt=(id,v)=>{\r\n  if($(id)){\r\n    $(id).textContent=v;\r\n  }\r\n};\r\n\r\n\r\nconst ceil=(v,s)=>Math.ceil(v\/s)*s;\r\n\r\n\r\n\/* Recommended duct diameter *\/\r\n\r\nfunction dia(f){\r\n  return f<=180?125:\r\n         f<=350?160:\r\n         f<=700?200:\r\n         f<=1100?250:\r\n         315;\r\n}\r\n\r\n\r\n\/* Duct price *\/\r\n\r\nfunction ductRate(d){\r\n  return d<=125?25:\r\n         d<=160?30:\r\n         d<=200?38:\r\n         d<=250?48:\r\n         60;\r\n}\r\n\r\n\r\n\/* Fans *\/\r\n\r\nfunction fan(f){\r\n  return f<=200?130:\r\n         f<=350?170:\r\n         f<=565?320:\r\n         f<=800?390:\r\n         f<=1110?750:\r\n         f<=1670?950:\r\n         1250;\r\n}\r\n\r\n\r\n\/* Heat recovery units *\/\r\n\r\nfunction rec(f){\r\n  return f<=350?3200:\r\n         f<=650?4300:\r\n         f<=1100?6200:\r\n         f<=1600?8500:\r\n         f<=2200?11000:\r\n         14000;\r\n}\r\n\r\n\r\n\/* Central ventilation units *\/\r\n\r\nfunction ahu(f){\r\n  return f<=500?3000:\r\n         f<=800?4200:\r\n         f<=1200?5800:\r\n         f<=2000?7800:\r\n         10500;\r\n}\r\n\r\n\r\n\/* Filters *\/\r\n\r\nfunction filt(f){\r\n  return f<=500?140:\r\n         f<=1100?220:\r\n         350;\r\n}\r\n\r\n\r\n\/* Air heater *\/\r\n\r\nfunction heat(f){\r\n  return f<=500?350:\r\n         f<=1100?550:\r\n         850;\r\n}\r\n\r\n\r\n\/* Automation *\/\r\n\r\nfunction auto(f){\r\n  return f<=500?450:\r\n         f<=1100?700:\r\n         1100;\r\n}\r\n\r\n\r\nlet last=null;\r\n\r\n\r\n\/* Main calculation *\/\r\n\r\nfunction calculate(showError){\r\n\r\n  const area=n(\"va\"),\r\n        h=n(\"vh\"),\r\n        people=n(\"vp\"),\r\n        o=$(\"vo\").value,\r\n        s=$(\"vs\").value,\r\n        heater=$(\"vheat\").value===\"yes\",\r\n        err=$(\"verr\"),\r\n        out=$(\"vout\");\r\n\r\n\r\n  if(\r\n    area<10||\r\n    area>5000||\r\n    h<2.2||\r\n    h>8||\r\n    people<1||\r\n    people>500\r\n  ){\r\n\r\n    if(showError){\r\n      err.style.display=\"block\";\r\n    }\r\n\r\n    out.classList.remove(\"show\");\r\n\r\n    return false;\r\n  }\r\n\r\n\r\n  err.style.display=\"none\";\r\n\r\n\r\n  const p=profiles[o];\r\n\r\n  const volume=area*h;\r\n\r\n\r\n  const flow=ceil(\r\n    Math.max(\r\n      volume*p.ach,\r\n      people*p.person\r\n    ),\r\n    50\r\n  );\r\n\r\n\r\n  const d=dia(flow);\r\n\r\n\r\n  const outlets=Math.max(\r\n    2,\r\n    Math.ceil(flow\/p.outlet)\r\n  );\r\n\r\n\r\n  \/* Estimated duct length *\/\r\n\r\n  let df=.22;\r\n\r\n  if(s===\"exhaust\"){\r\n    df=.15;\r\n  }\r\n\r\n  if(s===\"recovery\"){\r\n    df=.25;\r\n  }\r\n\r\n  if(s===\"central\"){\r\n    df=.28;\r\n  }\r\n\r\n\r\n  const dl=ceil(\r\n    Math.max(\r\n      8,\r\n      area*df+outlets*1.6\r\n    ),\r\n    1\r\n  );\r\n\r\n\r\n  const fitc=Math.max(\r\n    3,\r\n    Math.ceil(dl\/3.5)\r\n  );\r\n\r\n\r\n  const elbc=Math.max(\r\n    2,\r\n    Math.ceil(outlets*.8)\r\n  );\r\n\r\n\r\n  const teec=Math.max(\r\n    0,\r\n    outlets-1\r\n  );\r\n\r\n\r\n  const redc=\r\n    s===\"exhaust\"\r\n    ?1\r\n    :2;\r\n\r\n\r\n  const clampc=Math.max(\r\n    6,\r\n    Math.ceil(dl\/1.5)\r\n  );\r\n\r\n\r\n  \/* Diameter coefficient *\/\r\n\r\n  const k=\r\n    d<=125?1:\r\n    d<=160?1.1:\r\n    d<=200?1.25:\r\n    d<=250?1.45:\r\n    1.7;\r\n\r\n\r\n  \/* Equipment *\/\r\n\r\n  let main=0,\r\n      recu=0,\r\n      filters=0,\r\n      heaterCost=0,\r\n      automation=0,\r\n      mainName=\"Ventilation Unit\";\r\n\r\n\r\n  if(s===\"exhaust\"){\r\n\r\n    main=fan(flow);\r\n\r\n    mainName=\"Exhaust Fan\";\r\n\r\n    automation=\r\n      flow>350\r\n      ?180\r\n      :100;\r\n  }\r\n\r\n\r\n  if(s===\"supply\"){\r\n\r\n    main=fan(flow)*2;\r\n\r\n    mainName=\"Supply + Exhaust Fans\";\r\n\r\n    filters=filt(flow);\r\n\r\n    automation=auto(flow);\r\n  }\r\n\r\n\r\n  if(s===\"recovery\"){\r\n\r\n    recu=rec(flow);\r\n\r\n    mainName=\"Ventilation Unit\";\r\n\r\n    filters=filt(flow);\r\n\r\n    automation=auto(flow);\r\n  }\r\n\r\n\r\n  if(s===\"central\"){\r\n\r\n    main=ahu(flow);\r\n\r\n    mainName=\"Central Ventilation Unit\";\r\n\r\n    filters=filt(flow)*1.4;\r\n\r\n    automation=auto(flow)*1.25;\r\n  }\r\n\r\n\r\n  if(\r\n    heater&&\r\n    s!==\"exhaust\"\r\n  ){\r\n    heaterCost=heat(flow);\r\n  }\r\n\r\n\r\n  const equip=\r\n    main+\r\n    recu+\r\n    filters+\r\n    heaterCost+\r\n    automation;\r\n\r\n\r\n  \/* Air ducts *\/\r\n\r\n  const duct=\r\n    dl*ductRate(d);\r\n\r\n\r\n  const ins=\r\n    s===\"exhaust\"\r\n    ?dl*rates.ins*.35\r\n    :dl*rates.ins;\r\n\r\n\r\n  const fit=\r\n    fitc*rates.fit*k;\r\n\r\n\r\n  const elb=\r\n    elbc*rates.elb*k;\r\n\r\n\r\n  const tee=\r\n    teec*rates.tee*k;\r\n\r\n\r\n  const red=\r\n    redc*rates.red*k;\r\n\r\n\r\n  const clamp=\r\n    clampc*rates.clamp;\r\n\r\n\r\n  const ductTotal=\r\n    duct+\r\n    ins+\r\n    fit+\r\n    elb+\r\n    tee+\r\n    red+\r\n    clamp;\r\n\r\n\r\n  \/* Air distribution components *\/\r\n\r\n  const diffc=\r\n    s===\"exhaust\"\r\n    ?Math.max(\r\n      1,\r\n      Math.ceil(outlets*.65)\r\n    )\r\n    :outlets;\r\n\r\n\r\n  const grillc=\r\n    s===\"exhaust\"\r\n    ?Math.max(\r\n      1,\r\n      Math.ceil(outlets*.35)\r\n    )\r\n    :Math.max(\r\n      2,\r\n      Math.ceil(outlets*.35)\r\n    );\r\n\r\n\r\n  const diff=\r\n    diffc*rates.diff;\r\n\r\n\r\n  const grill=\r\n    grillc*rates.grill;\r\n\r\n\r\n  const dist=\r\n    diff+\r\n    grill;\r\n\r\n\r\n  \/* Additional components *\/\r\n\r\n  const silc=\r\n    flow>700\r\n    ?2\r\n    :1;\r\n\r\n\r\n  const sil=\r\n    silc*rates.sil*k;\r\n\r\n\r\n  const backc=\r\n    (\r\n      s===\"supply\"||\r\n      s===\"recovery\"||\r\n      s===\"central\"\r\n    )\r\n    ?2\r\n    :1;\r\n\r\n\r\n  const back=\r\n    backc*rates.back*k;\r\n\r\n\r\n  const firec=\r\n    (\r\n      o===\"commercial\"||\r\n      o===\"cafe\"\r\n    )\r\n    ?Math.max(\r\n      1,\r\n      Math.ceil(outlets\/5)\r\n    )\r\n    :0;\r\n\r\n\r\n  const fire=\r\n    firec*rates.fire;\r\n\r\n\r\n  const extc=\r\n    s===\"exhaust\"\r\n    ?1\r\n    :2;\r\n\r\n\r\n  const ext=\r\n    extc*rates.ext*k;\r\n\r\n\r\n  const add=\r\n    sil+\r\n    back+\r\n    fire+\r\n    ext;\r\n\r\n\r\n  \/* Labor *\/\r\n\r\n  const l1=\r\n    dl*rates.ductLabor*k;\r\n\r\n\r\n  const l2=\r\n    (\r\n      flow>1100\r\n      ?850\r\n      :flow>500\r\n      ?550\r\n      :300\r\n    )*\r\n    (\r\n      s===\"supply\"\r\n      ?1.35\r\n      :1\r\n    );\r\n\r\n\r\n  const l3=\r\n    s===\"exhaust\"\r\n    ?dl*rates.insLabor*.35\r\n    :dl*rates.insLabor;\r\n\r\n\r\n  const l4=\r\n    rates.electric*\r\n    (\r\n      s===\"exhaust\"\r\n      ?1\r\n      :1.35\r\n    );\r\n\r\n\r\n  const l5=\r\n    flow>1100\r\n    ?800\r\n    :flow>500\r\n    ?500\r\n    :300;\r\n\r\n\r\n  const labor=\r\n    l1+\r\n    l2+\r\n    l3+\r\n    l4+\r\n    l5;\r\n\r\n\r\n  \/* Summary *\/\r\n\r\n  const mat=\r\n    ductTotal+\r\n    dist;\r\n\r\n\r\n  const total=\r\n    mat+\r\n    equip+\r\n    labor+\r\n    add;\r\n\r\n\r\n  last={\r\n    area,\r\n    h,\r\n    people,\r\n    o,\r\n    s,\r\n    flow,\r\n    d,\r\n    dl,\r\n    outlets,\r\n\r\n    mainName,\r\n    main,\r\n    recu,\r\n    filters,\r\n    heaterCost,\r\n    automation,\r\n    equip,\r\n\r\n    duct,\r\n    ins,\r\n    fitc,\r\n    fit,\r\n    elbc,\r\n    elb,\r\n    teec,\r\n    tee,\r\n    redc,\r\n    red,\r\n    clampc,\r\n    clamp,\r\n    ductTotal,\r\n\r\n    diffc,\r\n    diff,\r\n    grillc,\r\n    grill,\r\n    dist,\r\n\r\n    silc,\r\n    sil,\r\n    backc,\r\n    back,\r\n    firec,\r\n    fire,\r\n    extc,\r\n    ext,\r\n    add,\r\n\r\n    l1,\r\n    l2,\r\n    l3,\r\n    l4,\r\n    l5,\r\n    labor,\r\n\r\n    mat,\r\n    total\r\n  };\r\n\r\n\r\n  \/* System recommendation *\/\r\n\r\n  txt(\r\n    \"pflow\",\r\n    flow+\" m\u00b3\/h\"\r\n  );\r\n\r\n  txt(\r\n    \"psys\",\r\n    labels[s]\r\n  );\r\n\r\n  txt(\r\n    \"pduct\",\r\n    dl+\" \u10db\"\r\n  );\r\n\r\n  txt(\r\n    \"poutlets\",\r\n    outlets+\" pcs\"\r\n  );\r\n\r\n\r\n  \/* Equipment *\/\r\n\r\n  txt(\r\n    \"nmain\",\r\n    mainName\r\n  );\r\n\r\n  txt(\r\n    \"vmain\",\r\n    main\r\n    ?money(main)\r\n    :\"Not included\"\r\n  );\r\n\r\n  txt(\r\n    \"vrec\",\r\n    recu\r\n    ?money(recu)\r\n    :\"Not included\"\r\n  );\r\n\r\n  txt(\r\n    \"vfilter\",\r\n    filters\r\n    ?money(filters)\r\n    :\"Not included\"\r\n  );\r\n\r\n  txt(\r\n    \"vheater\",\r\n    heaterCost\r\n    ?money(heaterCost)\r\n    :\"Not included\"\r\n  );\r\n\r\n  txt(\r\n    \"vauto\",\r\n    automation\r\n    ?money(automation)\r\n    :\"Not included\"\r\n  );\r\n\r\n  txt(\r\n    \"tequip\",\r\n    \"Equipment: \"+money(equip)\r\n  );\r\n\r\n\r\n  \/* Air ducts *\/\r\n\r\n  txt(\r\n    \"nduct\",\r\n    \"Air Duct \u00d8\"+\r\n    d+\r\n    \" mm \u2014 \"+\r\n    dl+\r\n    \" \u10db\"\r\n  );\r\n\r\n  txt(\r\n    \"vduct\",\r\n    money(duct)\r\n  );\r\n\r\n  txt(\r\n    \"vins\",\r\n    money(ins)\r\n  );\r\n\r\n  txt(\r\n    \"vfit\",\r\n    fitc+\r\n    \" pcs \u2022 \"+\r\n    money(fit)\r\n  );\r\n\r\n  txt(\r\n    \"velb\",\r\n    elbc+\r\n    \" pcs \u2022 \"+\r\n    money(elb)\r\n  );\r\n\r\n  txt(\r\n    \"vtee\",\r\n    teec+\r\n    \" pcs \u2022 \"+\r\n    money(tee)\r\n  );\r\n\r\n  txt(\r\n    \"vred\",\r\n    redc+\r\n    \" pcs \u2022 \"+\r\n    money(red)\r\n  );\r\n\r\n  txt(\r\n    \"vclamp\",\r\n    clampc+\r\n    \" pcs \u2022 \"+\r\n    money(clamp)\r\n  );\r\n\r\n  txt(\r\n    \"tduct\",\r\n    \"Air Ducts: \"+\r\n    money(ductTotal)\r\n  );\r\n\r\n\r\n  \/* Air distribution components *\/\r\n\r\n  txt(\r\n    \"vdiff\",\r\n    diffc+\r\n    \" pcs \u2022 \"+\r\n    money(diff)\r\n  );\r\n\r\n  txt(\r\n    \"vgrill\",\r\n    grillc+\r\n    \" pcs \u2022 \"+\r\n    money(grill)\r\n  );\r\n\r\n  txt(\r\n    \"tdist\",\r\n    \"Air Distribution: \"+\r\n    money(dist)\r\n  );\r\n\r\n\r\n  \/* Additional *\/\r\n\r\n  txt(\r\n    \"vsil\",\r\n    silc+\r\n    \" pcs \u2022 \"+\r\n    money(sil)\r\n  );\r\n\r\n  txt(\r\n    \"vback\",\r\n    backc+\r\n    \" pcs \u2022 \"+\r\n    money(back)\r\n  );\r\n\r\n  txt(\r\n    \"vfire\",\r\n    firec\r\n    ?firec+\r\n    \" pcs \u2022 \"+\r\n    money(fire)\r\n    :\"Not included\"\r\n  );\r\n\r\n  txt(\r\n    \"vext\",\r\n    extc+\r\n    \" pcs \u2022 \"+\r\n    money(ext)\r\n  );\r\n\r\n  txt(\r\n    \"tadd\",\r\n    \"Additional: \"+\r\n    money(add)\r\n  );\r\n\r\n\r\n  \/* Labor *\/\r\n\r\n  txt(\r\n    \"vlabor1\",\r\n    money(l1)\r\n  );\r\n\r\n  txt(\r\n    \"vlabor2\",\r\n    money(l2)\r\n  );\r\n\r\n  txt(\r\n    \"vlabor3\",\r\n    money(l3)\r\n  );\r\n\r\n  txt(\r\n    \"vlabor4\",\r\n    money(l4)\r\n  );\r\n\r\n  txt(\r\n    \"vlabor5\",\r\n    money(l5)\r\n  );\r\n\r\n  txt(\r\n    \"tlabor\",\r\n    \"Labor: \"+\r\n    money(labor)\r\n  );\r\n\r\n\r\n  \/* Final summary *\/\r\n\r\n  txt(\r\n    \"smat\",\r\n    money(mat)\r\n  );\r\n\r\n  txt(\r\n    \"sequip\",\r\n    money(equip)\r\n  );\r\n\r\n  txt(\r\n    \"slabor\",\r\n    money(labor)\r\n  );\r\n\r\n  txt(\r\n    \"sadd\",\r\n    money(add)\r\n  );\r\n\r\n  txt(\r\n    \"stotal\",\r\n    money(total)\r\n  );\r\n\r\n\r\n  out.classList.add(\"show\");\r\n\r\n\r\n  setTimeout(\r\n    ()=>out.scrollIntoView({\r\n      behavior:\"smooth\",\r\n      block:\"start\"\r\n    }),\r\n    80\r\n  );\r\n\r\n\r\n  return true;\r\n}\r\n\r\n\r\n\/* First free calculation *\/\r\n\r\nconst FREE=\r\n  \"dv_ventilation_free_used_v1\";\r\n\r\n\r\nconst used=()=>{\r\n\r\n  try{\r\n\r\n    return localStorage.getItem(FREE)===\"1\";\r\n\r\n  }catch(e){\r\n\r\n    return false;\r\n\r\n  }\r\n\r\n};\r\n\r\n\r\nconst mark=()=>{\r\n\r\n  try{\r\n\r\n    localStorage.setItem(\r\n      FREE,\r\n      \"1\"\r\n    );\r\n\r\n  }catch(e){}\r\n\r\n};\r\n\r\n\r\n\/* Authentication check *\/\r\n\r\nfunction logged(){\r\n\r\n  if(\r\n    window.cpdf_auth&&\r\n    typeof window.cpdf_auth.isLoggedIn!==\"undefined\"\r\n  ){\r\n\r\n    const v=\r\n      window.cpdf_auth.isLoggedIn;\r\n\r\n\r\n    if(\r\n      v===true||\r\n      v===1||\r\n      v===\"1\"||\r\n      v===\"true\"\r\n    ){\r\n      return true;\r\n    }\r\n\r\n\r\n    if(\r\n      v===false||\r\n      v===0||\r\n      v===\"0\"||\r\n      v===\"false\"||\r\n      v===\"\"||\r\n      v===null\r\n    ){\r\n      return false;\r\n    }\r\n\r\n  }\r\n\r\n\r\n  return document.body.classList.contains(\r\n    \"logged-in\"\r\n  );\r\n}\r\n\r\n\r\n\/* Registration window *\/\r\n\r\nfunction reg(){\r\n\r\n  if(\r\n    typeof window.openAuthModal===\"function\"\r\n  ){\r\n\r\n    window.openAuthModal(\r\n      \"register\",\r\n      \"\/en\/ventilation-calculator\/\"\r\n    );\r\n\r\n    return;\r\n  }\r\n\r\n\r\n  const t=\r\n    document.querySelector(\r\n      '.cpdf-auth[data-auth-action=\"register\"]'\r\n    );\r\n\r\n\r\n  if(t){\r\n\r\n    t.setAttribute(\r\n      \"data-redirect\",\r\n      \"\/en\/ventilation-calculator\/\"\r\n    );\r\n\r\n    t.click();\r\n\r\n    return;\r\n  }\r\n\r\n\r\n  location.href=\r\n    \"\/my-account\/\";\r\n\r\n}\r\n\r\n\r\n\/* Package window *\/\r\n\r\nfunction pack(){\r\n\r\n  if(\r\n    window.jQuery&&\r\n    window.jQuery(\"#membership-modal\").length\r\n  ){\r\n\r\n    window.jQuery(\r\n      \"#membership-modal\"\r\n    ).css(\r\n      \"display\",\r\n      \"block\"\r\n    );\r\n\r\n    return;\r\n  }\r\n\r\n\r\n  const t=\r\n    document.querySelector(\r\n      \"#membership-purchase-btn,.membership-purchase-btn,[data-membership-modal]\"\r\n    );\r\n\r\n\r\n  if(t){\r\n\r\n    t.click();\r\n\r\n    return;\r\n  }\r\n\r\n\r\n  location.href=\r\n    \"\/en\/packages\/\";\r\n\r\n}\r\n\r\n\r\n\/* Access check *\/\r\n\r\nasync function access(){\r\n\r\n  if(!used()){\r\n\r\n    return{\r\n      allowed:true,\r\n      first:true\r\n    };\r\n\r\n  }\r\n\r\n\r\n  if(!logged()){\r\n\r\n    reg();\r\n\r\n    return{\r\n      allowed:false,\r\n      first:false\r\n    };\r\n\r\n  }\r\n\r\n\r\n  if(\r\n    !window.cpdf_auth?.ajaxurl||\r\n    !window.jQuery\r\n  ){\r\n\r\n    pack();\r\n\r\n    return{\r\n      allowed:false,\r\n      first:false\r\n    };\r\n\r\n  }\r\n\r\n\r\n  try{\r\n\r\n    const r=\r\n      await window.jQuery.ajax({\r\n\r\n        url:\r\n          window.cpdf_auth.ajaxurl,\r\n\r\n        type:\r\n          \"POST\",\r\n\r\n        data:{\r\n          action:\"cpdf_check_membership\"\r\n        },\r\n\r\n        timeout:\r\n          20000\r\n\r\n      });\r\n\r\n\r\n    if(\r\n      r?.success&&\r\n      r?.data?.can_calculate\r\n    ){\r\n\r\n      return{\r\n        allowed:true,\r\n        first:false\r\n      };\r\n\r\n    }\r\n\r\n  }catch(e){}\r\n\r\n\r\n  pack();\r\n\r\n\r\n  return{\r\n    allowed:false,\r\n    first:false\r\n  };\r\n\r\n}\r\n\r\n\r\n\/* Calculate button *\/\r\n\r\nlet busy=false;\r\n\r\n\r\n$(\"vcalc\").addEventListener(\r\n  \"click\",\r\n  async function(e){\r\n\r\n    e.preventDefault();\r\n\r\n    e.stopPropagation();\r\n\r\n    e.stopImmediatePropagation();\r\n\r\n\r\n    if(busy){\r\n      return;\r\n    }\r\n\r\n\r\n    busy=true;\r\n\r\n\r\n    const old=\r\n      this.textContent;\r\n\r\n\r\n    this.disabled=true;\r\n\r\n    this.textContent=\r\n      \"Checking access...\";\r\n\r\n\r\n    try{\r\n\r\n      const a=\r\n        await access();\r\n\r\n\r\n      if(!a.allowed){\r\n        return;\r\n      }\r\n\r\n\r\n      if(!calculate(true)){\r\n        return;\r\n      }\r\n\r\n\r\n      if(a.first){\r\n        mark();\r\n      }\r\n\r\n\r\n    }finally{\r\n\r\n      this.disabled=false;\r\n\r\n      this.textContent=old;\r\n\r\n      busy=false;\r\n\r\n    }\r\n\r\n  },\r\n  true\r\n);\r\n\r\n\r\n\/* PDF canvas text *\/\r\n\r\nfunction canvasText(\r\n  text,\r\n  opt={}\r\n){\r\n\r\n  const o=\r\n    Object.assign(\r\n      {\r\n        w:1200,\r\n        p:18,\r\n        fs:28,\r\n        fw:700,\r\n        c:\"#173558\",\r\n        bg:null,\r\n        align:\"left\"\r\n      },\r\n      opt\r\n    );\r\n\r\n\r\n  const c=\r\n    document.createElement(\r\n      \"canvas\"\r\n    );\r\n\r\n\r\n  const x=\r\n    c.getContext(\r\n      \"2d\"\r\n    );\r\n\r\n\r\n  x.font=\r\n    o.fw+\r\n    \" \"+\r\n    o.fs+\r\n    'px \"Segoe UI\",Arial,sans-serif';\r\n\r\n\r\n  const max=\r\n    o.w-o.p*2;\r\n\r\n\r\n  const words=\r\n    String(text).split(\r\n      \/\\s+\/\r\n    );\r\n\r\n\r\n  const lines=[];\r\n\r\n\r\n  let line=\"\";\r\n\r\n\r\n  for(const w of words){\r\n\r\n    const t=\r\n      line\r\n      ?line+\" \"+w\r\n      :w;\r\n\r\n\r\n    if(\r\n      x.measureText(t).width>max&&\r\n      line\r\n    ){\r\n\r\n      lines.push(line);\r\n\r\n      line=w;\r\n\r\n    }else{\r\n\r\n      line=t;\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  if(line){\r\n    lines.push(line);\r\n  }\r\n\r\n\r\n  c.width=o.w;\r\n\r\n\r\n  c.height=\r\n    Math.max(\r\n      70,\r\n      lines.length*\r\n      o.fs*\r\n      1.4+\r\n      o.p*2\r\n    );\r\n\r\n\r\n  const g=\r\n    c.getContext(\r\n      \"2d\"\r\n    );\r\n\r\n\r\n  g.font=\r\n    o.fw+\r\n    \" \"+\r\n    o.fs+\r\n    'px \"Segoe UI\",Arial,sans-serif';\r\n\r\n\r\n  g.textBaseline=\r\n    \"top\";\r\n\r\n\r\n  if(o.bg){\r\n\r\n    g.fillStyle=\r\n      o.bg;\r\n\r\n    g.fillRect(\r\n      0,\r\n      0,\r\n      c.width,\r\n      c.height\r\n    );\r\n\r\n  }\r\n\r\n\r\n  g.fillStyle=\r\n    o.c;\r\n\r\n\r\n  g.textAlign=\r\n    o.align;\r\n\r\n\r\n  const px=\r\n    o.align===\"center\"\r\n    ?c.width\/2\r\n    :o.align===\"right\"\r\n    ?c.width-o.p\r\n    :o.p;\r\n\r\n\r\n  lines.forEach(\r\n    (z,i)=>\r\n      g.fillText(\r\n        z,\r\n        px,\r\n        o.p+\r\n        i*\r\n        o.fs*\r\n        1.4\r\n      )\r\n  );\r\n\r\n\r\n  return c.toDataURL(\r\n    \"image\/png\"\r\n  );\r\n\r\n}\r\n\r\n\r\n\/* PDF download *\/\r\n\r\n$(\"vpdf\").addEventListener(\r\n  \"click\",\r\n  async function(){\r\n\r\n    if(\r\n      !$(\"vout\").classList.contains(\r\n        \"show\"\r\n      )\r\n    ){\r\n\r\n      const a=\r\n        await access();\r\n\r\n\r\n      if(!a.allowed){\r\n        return;\r\n      }\r\n\r\n\r\n      if(!calculate(true)){\r\n        return;\r\n      }\r\n\r\n\r\n      if(a.first){\r\n        mark();\r\n      }\r\n\r\n    }\r\n\r\n\r\n    if(!last){\r\n      return;\r\n    }\r\n\r\n\r\n    const J=\r\n      window.jspdf?.jsPDF;\r\n\r\n\r\n    if(!J){\r\n\r\n      alert(\r\n        \"The jsPDF generator could not be loaded.\"\r\n      );\r\n\r\n      return;\r\n    }\r\n\r\n\r\n    const old=\r\n      this.innerHTML;\r\n\r\n\r\n    this.disabled=true;\r\n\r\n\r\n    this.textContent=\r\n      \"Preparing PDF...\";\r\n\r\n\r\n    try{\r\n\r\n      const d=\r\n        new J({\r\n          unit:\"mm\",\r\n          format:\"a4\",\r\n          compress:true\r\n        });\r\n\r\n\r\n      const pw=\r\n        d.internal.pageSize.getWidth();\r\n\r\n\r\n      const ph=\r\n        d.internal.pageSize.getHeight();\r\n\r\n\r\n      const m=14;\r\n\r\n\r\n      const cw=\r\n        pw-m*2;\r\n\r\n\r\n      let y=14;\r\n\r\n\r\n      function add(\r\n        t,\r\n        o={}\r\n      ){\r\n\r\n        const im=\r\n          canvasText(\r\n            t,\r\n            o\r\n          );\r\n\r\n\r\n        const pr=\r\n          d.getImageProperties(\r\n            im\r\n          );\r\n\r\n\r\n        const h=\r\n          cw*\r\n          pr.height\/\r\n          pr.width;\r\n\r\n\r\n        if(\r\n          y+h>\r\n          ph-14\r\n        ){\r\n\r\n          d.addPage();\r\n\r\n          y=14;\r\n\r\n        }\r\n\r\n\r\n        d.addImage(\r\n          im,\r\n          \"PNG\",\r\n          m,\r\n          y,\r\n          cw,\r\n          h,\r\n          undefined,\r\n          \"FAST\"\r\n        );\r\n\r\n\r\n        y+=h+2;\r\n\r\n      }\r\n\r\n\r\n      add(\r\n        \"Ventilation System Cost Estimate\",\r\n        {\r\n          fs:38,\r\n          fw:800,\r\n          c:\"#0b3a78\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n\r\n      add(\r\n        \"Datvale.ge\",\r\n        {\r\n          fs:20,\r\n          fw:700,\r\n          c:\"#526b84\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n\r\n      add(\r\n        \"Property: \"+\r\n        profiles[last.o].label+\r\n        \" | Area: \"+\r\n        last.area+\r\n        \" m\u00b2 | Ceiling: \"+\r\n        last.h+\r\n        \" m | People: \"+\r\n        last.people,\r\n        {\r\n          fs:22,\r\n          fw:650,\r\n          bg:\"#f4f8fd\"\r\n        }\r\n      );\r\n\r\n\r\n      add(\r\n        \"Required Airflow: \"+\r\n        last.flow+\r\n        \" m\u00b3\/h | System: \"+\r\n        labels[last.s]+\r\n        \" | Duct: \u00d8\"+\r\n        last.d+\r\n        \" mm | Length: \"+\r\n        last.dl+\r\n        \" \u10db\",\r\n        {\r\n          fs:22,\r\n          fw:700,\r\n          bg:\"#eef5fc\"\r\n        }\r\n      );\r\n\r\n\r\n      add(\r\n        \"Equipment: \"+\r\n        money(last.equip)+\r\n        \" | Materials: \"+\r\n        money(last.mat)+\r\n        \" | Installation: \"+\r\n        money(last.labor)+\r\n        \" | Additional: \"+\r\n        money(last.add),\r\n        {\r\n          fs:24,\r\n          fw:750\r\n        }\r\n      );\r\n\r\n\r\n      add(\r\n        \"Total: \"+\r\n        money(last.total),\r\n        {\r\n          fs:42,\r\n          fw:900,\r\n          c:\"#fff\",\r\n          bg:\"#0b3a78\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n\r\n      add(\r\n        \"Note: This calculation is an estimate. The final price depends on the project, actual duct routing, brand, capacity, and installation complexity.\",\r\n        {\r\n          fs:19,\r\n          fw:600,\r\n          c:\"#526b84\"\r\n        }\r\n      );\r\n\r\n\r\n      d.save(\r\n        \"datvale-ventilation-cost-estimate.pdf\"\r\n      );\r\n\r\n\r\n    }catch(e){\r\n\r\n      alert(\r\n        \"The PDF could not be created.\"\r\n      );\r\n\r\n\r\n    }finally{\r\n\r\n      this.disabled=false;\r\n\r\n      this.innerHTML=old;\r\n\r\n    }\r\n\r\n  }\r\n);\r\n\r\n})();\r\n<\/script>\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-b159c58 e-flex e-con-boxed e-con e-parent\" data-id=\"b159c58\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f25c89e elementor-widget elementor-widget-html\" data-id=\"f25c89e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<a\r\n  href=\"https:\/\/datvale.ge\/en\/property-insurance\/\"\r\n  class=\"dv-property-offer\"\r\n  aria-label=\"Calculate the cost of property insurance\"\r\n>\r\n\r\n  <div class=\"dv-property-offer-copy\">\r\n\r\n    <strong>\r\n      Calculate the cost of property insurance\r\n    <\/strong>\r\n\r\n    <span>\r\n      Get a special offer for your apartment or house\r\n    <\/span>\r\n\r\n  <\/div>\r\n\r\n  <div class=\"dv-property-offer-button\">\r\n    Calculate Price\r\n    <b>\u2192<\/b>\r\n  <\/div>\r\n\r\n<\/a>\r\n\r\n\r\n<style>\r\n\r\n.dv-property-offer,\r\n.dv-property-offer *{\r\n  box-sizing:border-box;\r\n}\r\n\r\n.dv-property-offer{\r\n  position:relative;\r\n  overflow:hidden;\r\n\r\n  width:100%;\r\n\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:space-between;\r\n\r\n  gap:20px;\r\n\r\n  padding:18px 20px;\r\n\r\n  border:1px solid rgba(110,73,22,.16);\r\n  border-radius:18px;\r\n\r\n  background:\r\n    radial-gradient(\r\n      circle at 90% 0%,\r\n      rgba(255,255,255,.88),\r\n      transparent 28%\r\n    ),\r\n    linear-gradient(\r\n      135deg,\r\n      #f4dfb4 0%,\r\n      #d6aa5c 48%,\r\n      #b88132 100%\r\n    );\r\n\r\n  box-shadow:\r\n    0 14px 34px rgba(106,70,19,.20),\r\n    inset 0 1px 0 rgba(255,255,255,.58);\r\n\r\n  text-decoration:none !important;\r\n\r\n  transition:\r\n    transform .22s ease,\r\n    box-shadow .22s ease;\r\n}\r\n\r\n.dv-property-offer::before{\r\n  content:\"\";\r\n\r\n  position:absolute;\r\n  top:-80px;\r\n  right:90px;\r\n\r\n  width:170px;\r\n  height:170px;\r\n\r\n  border-radius:50%;\r\n\r\n  background:\r\n    radial-gradient(\r\n      circle,\r\n      rgba(255,255,255,.36),\r\n      transparent 68%\r\n    );\r\n\r\n  pointer-events:none;\r\n}\r\n\r\n.dv-property-offer:hover{\r\n  transform:translateY(-2px);\r\n\r\n  box-shadow:\r\n    0 18px 42px rgba(106,70,19,.27),\r\n    inset 0 1px 0 rgba(255,255,255,.62);\r\n\r\n  text-decoration:none !important;\r\n}\r\n\r\n\r\n.dv-property-offer-copy{\r\n  position:relative;\r\n  z-index:2;\r\n\r\n  min-width:0;\r\n\r\n  display:flex;\r\n  flex-direction:column;\r\n\r\n  gap:4px;\r\n}\r\n\r\n.dv-property-offer-copy strong{\r\n  color:#2e2111;\r\n\r\n  font-size:19px;\r\n  line-height:1.2;\r\n\r\n  font-weight:950;\r\n\r\n  letter-spacing:-.01em;\r\n}\r\n\r\n.dv-property-offer-copy span{\r\n  color:rgba(46,33,17,.78);\r\n\r\n  font-size:13px;\r\n  line-height:1.35;\r\n\r\n  font-weight:700;\r\n}\r\n\r\n\r\n.dv-property-offer-button{\r\n  position:relative;\r\n  z-index:2;\r\n\r\n  flex:0 0 auto;\r\n\r\n  display:inline-flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  gap:7px;\r\n\r\n  min-height:46px;\r\n\r\n  padding:11px 16px;\r\n\r\n  border:1px solid rgba(46,33,17,.10);\r\n  border-radius:11px;\r\n\r\n  background:#21170c;\r\n\r\n  color:#ffffff;\r\n\r\n  font-size:13px;\r\n  line-height:1;\r\n\r\n  font-weight:900;\r\n\r\n  white-space:nowrap;\r\n\r\n  box-shadow:\r\n    0 7px 18px rgba(33,23,12,.20);\r\n}\r\n\r\n.dv-property-offer-button b{\r\n  font-size:15px;\r\n  line-height:1;\r\n\r\n  transition:transform .2s ease;\r\n}\r\n\r\n.dv-property-offer:hover\r\n.dv-property-offer-button b{\r\n  transform:translateX(2px);\r\n}\r\n\r\n\r\n\/* TABLET *\/\r\n\r\n@media(max-width:900px){\r\n\r\n  .dv-property-offer{\r\n    padding:16px 17px;\r\n\r\n    border-radius:15px;\r\n  }\r\n\r\n  .dv-property-offer-copy strong{\r\n    font-size:17px;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* MOBILE *\/\r\n\r\n@media(max-width:600px){\r\n\r\n  .dv-property-offer{\r\n    gap:10px;\r\n\r\n    padding:12px;\r\n\r\n    border-radius:13px;\r\n  }\r\n\r\n  .dv-property-offer-copy{\r\n    gap:2px;\r\n  }\r\n\r\n  .dv-property-offer-copy strong{\r\n    font-size:14px;\r\n    line-height:1.2;\r\n  }\r\n\r\n  .dv-property-offer-copy span{\r\n    font-size:10.5px;\r\n    line-height:1.25;\r\n  }\r\n\r\n  .dv-property-offer-button{\r\n    min-height:37px;\r\n\r\n    padding:8px 10px;\r\n\r\n    border-radius:8px;\r\n\r\n    font-size:10.5px;\r\n  }\r\n\r\n  .dv-property-offer-button b{\r\n    font-size:12px;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* SMALL MOBILE *\/\r\n\r\n@media(max-width:380px){\r\n\r\n  .dv-property-offer{\r\n    gap:8px;\r\n\r\n    padding:10px;\r\n  }\r\n\r\n  .dv-property-offer-copy strong{\r\n    font-size:13px;\r\n  }\r\n\r\n  .dv-property-offer-copy span{\r\n    font-size:9.5px;\r\n  }\r\n\r\n  .dv-property-offer-button{\r\n    padding:7px 8px;\r\n\r\n    font-size:10px;\r\n  }\r\n\r\n}\r\n\r\n<\/style>\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-6c9afe8 e-flex e-con-boxed e-con e-parent\" data-id=\"6c9afe8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-06cc193 elementor-widget elementor-widget-html\" data-id=\"06cc193\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"dv-partners\">\r\n\r\n  <div class=\"dv-partners-head\">\r\n\r\n    <span>DATVALE.GE PARTNERS<\/span>\r\n\r\n    <h2>Special Offers<\/h2>\r\n\r\n    <p>\r\n      Take advantage of special offers from Datvale partner companies\r\n      for renovation, construction and interior projects.\r\n    <\/p>\r\n\r\n  <\/div>\r\n\r\n\r\n  <div class=\"dv-partners-grid\">\r\n\r\n\r\n    <!-- NEW LIGHT -->\r\n\r\n    <article class=\"dv-card\">\r\n\r\n      <div class=\"dv-logo\">\r\n\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/datvale.ge\/wp-content\/uploads\/2025\/06\/dbd6fc01-a56b-490f-b2a5-59f3445fe63a.jpg\"\r\n          alt=\"New Light\"\r\n          loading=\"lazy\"\r\n        >\r\n\r\n        <span class=\"dv-badge\">\r\n          -15%\r\n        <\/span>\r\n\r\n      <\/div>\r\n\r\n\r\n      <button\r\n        class=\"dv-toggle\"\r\n        type=\"button\"\r\n        aria-expanded=\"false\"\r\n      >\r\n        View Offer\r\n      <\/button>\r\n\r\n\r\n      <div class=\"dv-details\">\r\n\r\n        <h3>New Light<\/h3>\r\n\r\n\r\n        <div class=\"dv-type\">\r\n          Lighting Store\r\n        <\/div>\r\n\r\n\r\n        <p>\r\n          A wide selection of international lighting brands, including\r\n          Philips, Eglo, Artemide, Luceplan, Vibia, Osram and more.\r\n        <\/p>\r\n\r\n\r\n        <div class=\"dv-links\">\r\n\r\n          <a href=\"https:\/\/newlight.ge\/\" target=\"_blank\" rel=\"noopener\">\r\n            newlight.ge\r\n          <\/a>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/article>\r\n\r\n\r\n\r\n    <!-- NOVA -->\r\n\r\n    <article class=\"dv-card\">\r\n\r\n      <div class=\"dv-logo\">\r\n\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/datvale.ge\/wp-content\/uploads\/2025\/08\/\u10da\u10dd\u10d2\u10dd\u10d4\u10d1\u10d8-26-2.png\"\r\n          alt=\"Nova\"\r\n          loading=\"lazy\"\r\n        >\r\n\r\n        <span class=\"dv-badge\">\r\n          Up to 20%\r\n        <\/span>\r\n\r\n      <\/div>\r\n\r\n\r\n      <button\r\n        class=\"dv-toggle\"\r\n        type=\"button\"\r\n        aria-expanded=\"false\"\r\n      >\r\n        View Offer\r\n      <\/button>\r\n\r\n\r\n      <div class=\"dv-details\">\r\n\r\n        <h3>Nova<\/h3>\r\n\r\n\r\n        <div class=\"dv-type\">\r\n          Construction & Renovation Hypermarket\r\n        <\/div>\r\n\r\n\r\n        <p>\r\n          A wide range of construction and renovation products,\r\n          including own-brand manufacturing and international brands\r\n          for renovation and construction projects.\r\n        <\/p>\r\n\r\n\r\n        <div class=\"dv-links\">\r\n\r\n          <a href=\"https:\/\/nova.ge\/\" target=\"_blank\" rel=\"noopener\">\r\n            nova.ge\r\n          <\/a>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/article>\r\n\r\n\r\n\r\n    <!-- VITRA -->\r\n\r\n    <article class=\"dv-card\">\r\n\r\n      <div class=\"dv-logo\">\r\n\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/datvale.ge\/wp-content\/uploads\/2025\/06\/\u10da\u10dd\u10d2\u10dd\u10d4\u10d1\u10d8-28.png\"\r\n          alt=\"VitrA Georgia\"\r\n          loading=\"lazy\"\r\n        >\r\n\r\n        <span class=\"dv-badge\">\r\n          -15%\r\n        <\/span>\r\n\r\n      <\/div>\r\n\r\n\r\n      <button\r\n        class=\"dv-toggle\"\r\n        type=\"button\"\r\n        aria-expanded=\"false\"\r\n      >\r\n        View Offer\r\n      <\/button>\r\n\r\n\r\n      <div class=\"dv-details\">\r\n\r\n        <h3>VitrA Georgia<\/h3>\r\n\r\n\r\n        <div class=\"dv-type\">\r\n          Sanitary Ware & Ceramic Tiles\r\n        <\/div>\r\n\r\n\r\n        <p>\r\n          A wide selection of bathroom sanitary ware and ceramic tiles\r\n          for creating a modern and functional bathroom.\r\n        <\/p>\r\n\r\n\r\n        <div class=\"dv-links\">\r\n\r\n          <a href=\"https:\/\/vitra.com.ge\/ka\/\" target=\"_blank\" rel=\"noopener\">\r\n            vitra.com.ge\r\n          <\/a>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/article>\r\n\r\n\r\n\r\n    <!-- CAPAROL -->\r\n\r\n    <article class=\"dv-card\">\r\n\r\n      <div class=\"dv-logo\">\r\n\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/datvale.ge\/wp-content\/uploads\/2025\/10\/24.09.2025-33.png\"\r\n          alt=\"Caparol\"\r\n          loading=\"lazy\"\r\n        >\r\n\r\n        <span class=\"dv-badge\">\r\n          -10%\r\n        <\/span>\r\n\r\n      <\/div>\r\n\r\n\r\n      <button\r\n        class=\"dv-toggle\"\r\n        type=\"button\"\r\n        aria-expanded=\"false\"\r\n      >\r\n        View Offer\r\n      <\/button>\r\n\r\n\r\n      <div class=\"dv-details\">\r\n\r\n        <h3>Caparol<\/h3>\r\n\r\n\r\n        <div class=\"dv-type\">\r\n          Paints & Finishing Materials\r\n        <\/div>\r\n\r\n\r\n        <p>\r\n          An international brand of interior and facade paints,\r\n          decorative coatings and finishing materials.\r\n        <\/p>\r\n\r\n\r\n        <div class=\"dv-address\">\r\n\r\n          <span>\r\n            Tbilisi \u2014 8 Petre Kavtaradze St. \u2022 599 44 55 67\r\n          <\/span>\r\n\r\n          <span>\r\n            Tbilisi \u2014 15 Samtredia St. \u2022 599 58 26 25\r\n          <\/span>\r\n\r\n          <span>\r\n            Batumi \u2014 35 Pushkin St. \u2022 558 04 04 96\r\n          <\/span>\r\n\r\n        <\/div>\r\n\r\n\r\n        <div class=\"dv-links\">\r\n\r\n          <a href=\"https:\/\/caparol.ge\" target=\"_blank\" rel=\"noopener\">\r\n            caparol.ge\r\n          <\/a>\r\n\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n    <\/article>\r\n\r\n\r\n  <\/div>\r\n\r\n\r\n  <!-- ALL PARTNERS -->\r\n\r\n  <div class=\"dv-all-partners\">\r\n\r\n    <a href=\"https:\/\/datvale.ge\/en\/partners\/\">\r\n      All Partners\r\n    <\/a>\r\n\r\n  <\/div>\r\n\r\n<\/section>\r\n\r\n\r\n<style>\r\n\r\n.dv-partners,\r\n.dv-partners *{\r\n  box-sizing:border-box;\r\n}\r\n\r\n\r\n.dv-partners{\r\n  --blue:#0b4187;\r\n  --blue2:#176bc5;\r\n  --text:#173a61;\r\n  --muted:#65788c;\r\n  --border:#e1e9f2;\r\n  --light:#f7faff;\r\n\r\n  width:100%;\r\n  max-width:1200px;\r\n\r\n  margin:40px auto;\r\n  padding:0 15px;\r\n\r\n  font-family:\r\n    system-ui,\r\n    -apple-system,\r\n    BlinkMacSystemFont,\r\n    \"Segoe UI\",\r\n    sans-serif;\r\n}\r\n\r\n\r\n\/* HEADER *\/\r\n\r\n.dv-partners-head{\r\n  max-width:760px;\r\n\r\n  margin:0 auto 28px;\r\n\r\n  text-align:center;\r\n}\r\n\r\n\r\n.dv-partners-head > span{\r\n  display:block;\r\n\r\n  margin-bottom:7px;\r\n\r\n  color:var(--blue2);\r\n\r\n  font-size:12px;\r\n  font-weight:900;\r\n  letter-spacing:.08em;\r\n}\r\n\r\n\r\n.dv-partners-head h2{\r\n  margin:0 0 9px;\r\n\r\n  color:var(--text);\r\n\r\n  font-size:clamp(27px,4vw,38px);\r\n  line-height:1.15;\r\n  font-weight:950;\r\n}\r\n\r\n\r\n.dv-partners-head p{\r\n  margin:0;\r\n\r\n  color:var(--muted);\r\n\r\n  font-size:15px;\r\n  line-height:1.6;\r\n}\r\n\r\n\r\n\/* GRID *\/\r\n\r\n.dv-partners-grid{\r\n  display:grid;\r\n\r\n  grid-template-columns:\r\n    repeat(4,minmax(0,1fr));\r\n\r\n  gap:16px;\r\n\r\n  align-items:start;\r\n}\r\n\r\n\r\n\/* CARD *\/\r\n\r\n.dv-card{\r\n  position:relative;\r\n\r\n  width:100%;\r\n  height:220px;\r\n\r\n  overflow:hidden;\r\n\r\n  border:\r\n    1px solid var(--border);\r\n\r\n  border-radius:20px;\r\n\r\n  background:#fff;\r\n\r\n  box-shadow:\r\n    0 8px 28px rgba(27,61,98,.08);\r\n\r\n  transition:\r\n    transform .22s ease,\r\n    box-shadow .22s ease,\r\n    border-color .22s ease;\r\n}\r\n\r\n\r\n.dv-card:hover{\r\n  transform:translateY(-3px);\r\n\r\n  border-color:#cfdeed;\r\n\r\n  box-shadow:\r\n    0 15px 36px rgba(27,61,98,.13);\r\n}\r\n\r\n\r\n.dv-card.dv-open{\r\n  height:auto;\r\n  overflow:visible;\r\n}\r\n\r\n\r\n\/* LOGO *\/\r\n\r\n.dv-logo{\r\n  position:relative;\r\n\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  width:100%;\r\n  height:158px;\r\n\r\n  padding:20px;\r\n\r\n  background:#fff;\r\n}\r\n\r\n\r\n.dv-logo img{\r\n  display:block;\r\n\r\n  width:auto;\r\n  height:auto;\r\n\r\n  max-width:100%;\r\n  max-height:105px;\r\n\r\n  object-fit:contain;\r\n}\r\n\r\n\r\n\/* BADGE *\/\r\n\r\n.dv-badge{\r\n  position:absolute;\r\n\r\n  top:12px;\r\n  right:12px;\r\n\r\n  z-index:2;\r\n\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  min-height:31px;\r\n\r\n  padding:6px 10px;\r\n\r\n  border-radius:100px;\r\n\r\n  background:\r\n    linear-gradient(\r\n      135deg,\r\n      var(--blue),\r\n      var(--blue2)\r\n    );\r\n\r\n  color:#fff;\r\n\r\n  font-size:11px;\r\n  line-height:1;\r\n  font-weight:950;\r\n\r\n  box-shadow:\r\n    0 6px 15px rgba(11,65,135,.23);\r\n}\r\n\r\n\r\n\/* BUTTON *\/\r\n\r\n.dv-toggle{\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  width:calc(100% - 28px);\r\n  height:46px;\r\n\r\n  margin:0 14px 16px;\r\n\r\n  padding:10px 12px;\r\n\r\n  border:0;\r\n\r\n  border-radius:12px;\r\n\r\n  background:\r\n    linear-gradient(\r\n      135deg,\r\n      var(--blue),\r\n      var(--blue2)\r\n    );\r\n\r\n  color:#fff;\r\n\r\n  font:inherit;\r\n\r\n  font-size:13px;\r\n  font-weight:900;\r\n\r\n  cursor:pointer;\r\n\r\n  box-shadow:\r\n    0 7px 18px rgba(11,65,135,.18);\r\n\r\n  transition:\r\n    transform .2s ease,\r\n    box-shadow .2s ease,\r\n    background .2s ease;\r\n}\r\n\r\n\r\n.dv-toggle:hover{\r\n  transform:translateY(-1px);\r\n\r\n  box-shadow:\r\n    0 10px 23px rgba(11,65,135,.25);\r\n}\r\n\r\n\r\n\/* DETAILS *\/\r\n\r\n.dv-details{\r\n  display:none;\r\n\r\n  padding:18px;\r\n\r\n  border-top:\r\n    1px solid var(--border);\r\n\r\n  background:var(--light);\r\n}\r\n\r\n\r\n.dv-card.dv-open .dv-details{\r\n  display:block;\r\n}\r\n\r\n\r\n\/* OPEN BUTTON *\/\r\n\r\n.dv-card.dv-open .dv-toggle{\r\n  margin-bottom:14px;\r\n\r\n  background:#eaf2fb;\r\n\r\n  color:var(--blue);\r\n\r\n  box-shadow:none;\r\n}\r\n\r\n\r\n\/* NAME *\/\r\n\r\n.dv-details h3{\r\n  margin:0 0 7px;\r\n\r\n  color:var(--text);\r\n\r\n  font-size:18px;\r\n  line-height:1.3;\r\n  font-weight:950;\r\n}\r\n\r\n\r\n\/* TYPE *\/\r\n\r\n.dv-type{\r\n  display:inline-block;\r\n\r\n  margin-bottom:12px;\r\n\r\n  padding:5px 9px;\r\n\r\n  border-radius:7px;\r\n\r\n  background:#e8f1fb;\r\n\r\n  color:var(--blue);\r\n\r\n  font-size:11px;\r\n  line-height:1.35;\r\n  font-weight:850;\r\n}\r\n\r\n\r\n\/* DESCRIPTION *\/\r\n\r\n.dv-details p{\r\n  margin:0;\r\n\r\n  color:#49637d;\r\n\r\n  font-size:13px;\r\n  line-height:1.62;\r\n}\r\n\r\n\r\n\/* LINKS *\/\r\n\r\n.dv-links{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n\r\n  gap:8px;\r\n\r\n  margin-top:14px;\r\n}\r\n\r\n\r\n.dv-links a{\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  flex:1 1 auto;\r\n\r\n  min-height:40px;\r\n\r\n  padding:9px 12px;\r\n\r\n  border:\r\n    1px solid #d2dfed;\r\n\r\n  border-radius:10px;\r\n\r\n  background:#fff;\r\n\r\n  color:\r\n    var(--blue)!important;\r\n\r\n  font-size:12px;\r\n  font-weight:900;\r\n\r\n  text-decoration:none!important;\r\n\r\n  transition:\r\n    background .2s ease,\r\n    border-color .2s ease;\r\n}\r\n\r\n\r\n.dv-links a:hover{\r\n  background:#edf5fd;\r\n\r\n  border-color:#bcd2e8;\r\n}\r\n\r\n\r\n\/* CAPAROL ADDRESSES *\/\r\n\r\n.dv-address{\r\n  display:flex;\r\n  flex-direction:column;\r\n\r\n  gap:6px;\r\n\r\n  margin-top:13px;\r\n}\r\n\r\n\r\n.dv-address span{\r\n  display:block;\r\n\r\n  padding:8px 10px;\r\n\r\n  border:\r\n    1px solid #e2eaf3;\r\n\r\n  border-radius:9px;\r\n\r\n  background:#fff;\r\n\r\n  color:#526a82;\r\n\r\n  font-size:11px;\r\n  line-height:1.45;\r\n}\r\n\r\n\r\n\/* ALL PARTNERS BUTTON *\/\r\n\r\n.dv-all-partners{\r\n  display:flex;\r\n  justify-content:center;\r\n\r\n  margin-top:22px;\r\n}\r\n\r\n\r\n.dv-all-partners a{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n\r\n  min-height:46px;\r\n\r\n  padding:10px 22px;\r\n\r\n  border-radius:12px;\r\n\r\n  background:\r\n    linear-gradient(\r\n      135deg,\r\n      var(--blue),\r\n      var(--blue2)\r\n    );\r\n\r\n  color:#fff!important;\r\n\r\n  font-size:13px;\r\n  font-weight:900;\r\n\r\n  text-decoration:none!important;\r\n\r\n  box-shadow:\r\n    0 7px 18px rgba(11,65,135,.18);\r\n\r\n  transition:\r\n    transform .2s ease,\r\n    box-shadow .2s ease;\r\n}\r\n\r\n\r\n.dv-all-partners a:hover{\r\n  transform:translateY(-1px);\r\n\r\n  box-shadow:\r\n    0 10px 23px rgba(11,65,135,.25);\r\n}\r\n\r\n\r\n\/* TABLET *\/\r\n\r\n@media(max-width:950px){\r\n\r\n  .dv-partners-grid{\r\n    grid-template-columns:\r\n      repeat(2,minmax(0,1fr));\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* MOBILE *\/\r\n\r\n@media(max-width:700px){\r\n\r\n  .dv-partners{\r\n    margin:28px auto;\r\n\r\n    padding:0 9px;\r\n  }\r\n\r\n\r\n  .dv-partners-head{\r\n    margin-bottom:20px;\r\n  }\r\n\r\n\r\n  .dv-partners-head p{\r\n    font-size:14px;\r\n  }\r\n\r\n\r\n  .dv-partners-grid{\r\n    grid-template-columns:\r\n      repeat(2,minmax(0,1fr));\r\n\r\n    gap:10px;\r\n  }\r\n\r\n\r\n  .dv-card{\r\n    height:174px;\r\n\r\n    border-radius:15px;\r\n  }\r\n\r\n\r\n  .dv-logo{\r\n    height:120px;\r\n\r\n    padding:12px;\r\n  }\r\n\r\n\r\n  .dv-logo img{\r\n    max-height:82px;\r\n  }\r\n\r\n\r\n  .dv-badge{\r\n    top:7px;\r\n    right:7px;\r\n\r\n    min-height:25px;\r\n\r\n    padding:5px 7px;\r\n\r\n    font-size:9px;\r\n  }\r\n\r\n\r\n  .dv-toggle{\r\n    width:calc(100% - 16px);\r\n    height:40px;\r\n\r\n    margin:0 8px 14px;\r\n\r\n    padding:7px;\r\n\r\n    border-radius:9px;\r\n\r\n    font-size:10.5px;\r\n  }\r\n\r\n\r\n  .dv-details{\r\n    padding:14px 11px;\r\n  }\r\n\r\n\r\n  .dv-details h3{\r\n    font-size:16px;\r\n  }\r\n\r\n\r\n  .dv-type{\r\n    margin-bottom:10px;\r\n\r\n    font-size:10px;\r\n  }\r\n\r\n\r\n  .dv-details p{\r\n    font-size:11.5px;\r\n\r\n    line-height:1.6;\r\n  }\r\n\r\n\r\n  .dv-links{\r\n    flex-direction:column;\r\n  }\r\n\r\n\r\n  .dv-links a{\r\n    width:100%;\r\n  }\r\n\r\n\r\n  .dv-address span{\r\n    font-size:10.5px;\r\n  }\r\n\r\n\r\n  .dv-all-partners{\r\n    margin-top:18px;\r\n  }\r\n\r\n\r\n  .dv-all-partners a{\r\n    min-height:42px;\r\n\r\n    padding:9px 18px;\r\n\r\n    font-size:11px;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* VERY SMALL MOBILE *\/\r\n\r\n@media(max-width:340px){\r\n\r\n  .dv-partners-grid{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<script>\r\n\r\n(function(){\r\n\r\n  const section =\r\n    document.querySelector('.dv-partners');\r\n\r\n\r\n  if(!section){\r\n    return;\r\n  }\r\n\r\n\r\n  const buttons =\r\n    section.querySelectorAll('.dv-toggle');\r\n\r\n\r\n  buttons.forEach(function(button){\r\n\r\n    button.addEventListener(\r\n      'click',\r\n      function(){\r\n\r\n        const card =\r\n          button.closest('.dv-card');\r\n\r\n\r\n        const isOpen =\r\n          card.classList.contains('dv-open');\r\n\r\n\r\n        \/*\r\n         * Close all open cards\r\n         *\/\r\n\r\n        section\r\n          .querySelectorAll('.dv-card.dv-open')\r\n          .forEach(function(openCard){\r\n\r\n            openCard\r\n              .classList\r\n              .remove('dv-open');\r\n\r\n\r\n            const openButton =\r\n              openCard.querySelector('.dv-toggle');\r\n\r\n\r\n            if(openButton){\r\n\r\n              openButton.textContent =\r\n                'View Offer';\r\n\r\n\r\n              openButton.setAttribute(\r\n                'aria-expanded',\r\n                'false'\r\n              );\r\n\r\n            }\r\n\r\n          });\r\n\r\n\r\n        \/*\r\n         * Open the selected card\r\n         *\/\r\n\r\n        if(!isOpen){\r\n\r\n          card\r\n            .classList\r\n            .add('dv-open');\r\n\r\n\r\n          button.textContent =\r\n            'Close Offer';\r\n\r\n\r\n          button.setAttribute(\r\n            'aria-expanded',\r\n            'true'\r\n          );\r\n\r\n        }\r\n\r\n      }\r\n    );\r\n\r\n  });\r\n\r\n})();\r\n\r\n<\/script>\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-dc7330c e-flex e-con-boxed e-con e-parent\" data-id=\"dc7330c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57b4fcc elementor-widget elementor-widget-text-editor\" data-id=\"57b4fcc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Ventilation System and Cost<\/h2>\n<p>A <strong>ventilation system<\/strong> is important for maintaining proper air exchange in residential, office, and commercial spaces. The final cost depends on the property area, ceiling height, number of people, selected system, air ducts, diffusers, heat recovery unit, and installation complexity.<\/p>\n<p>The <strong>ventilation cost<\/strong> can vary significantly depending on the type of system and equipment used. Datvale\u2019s <strong>Ventilation Calculator<\/strong> allows you to estimate the cost of equipment, materials, installation, and additional components in advance.<\/p>\n<h2>Ventilation Installation Cost<\/h2>\n<p>The <strong>ventilation installation cost<\/strong> includes more than labor alone. To calculate the full budget, you should also consider the ventilation unit, air ducts, fittings, insulation, diffusers, grilles, automation, and other required components.<\/p>\n<p>The more complex the duct route and the larger the property, the more materials and installation work may be required.<\/p>\n<p>Based on these parameters, the calculator automatically estimates the <strong>ventilation system cost<\/strong>.<\/p>\n<h2>Ventilation Cost<\/h2>\n<p>The <strong>ventilation cost<\/strong> depends on the selected system, required airflow capacity, equipment brand, duct length, and additional features.<\/p>\n<p>A simple exhaust-only system is generally less expensive than a supply and exhaust system with heat recovery.<\/p>\n<p>If the project includes a heat recovery unit, automation, air heater, or silencer, the total cost will increase accordingly.<\/p>\n<h2>Types of Ventilation Systems<\/h2>\n<p>When choosing a ventilation system, it is important to consider the purpose of the property and the required airflow.<\/p>\n<p>In the calculator, you can select:<\/p>\n<ul>\n<li>Exhaust-only ventilation<\/li>\n<li>Supply and exhaust ventilation<\/li>\n<li>Supply and exhaust ventilation with heat recovery<\/li>\n<li>Central ventilation system<\/li>\n<\/ul>\n<p>The selected type directly affects the <strong>ventilation system cost<\/strong>.<\/p>\n<h2>Heat Recovery Unit Cost<\/h2>\n<p>A heat recovery unit is used to retain part of the heat during air exchange.<\/p>\n<p>The <strong>heat recovery unit cost<\/strong> depends on its airflow capacity, technical specifications, filtration system, and brand.<\/p>\n<p>A lower-capacity model may be sufficient for a small residential space, while a larger property may require more powerful equipment.<\/p>\n<p>The calculator estimates the approximate cost of a suitable heat recovery unit based on the required airflow.<\/p>\n<h2>How Much Airflow Does a Property Need?<\/h2>\n<p>One of the main indicators when selecting a ventilation system is the required airflow, usually measured in m\u00b3\/h.<\/p>\n<p>The required airflow depends on:<\/p>\n<ul>\n<li>Property area<\/li>\n<li>Ceiling height<\/li>\n<li>Room volume<\/li>\n<li>Number of people<\/li>\n<li>Property type<\/li>\n<\/ul>\n<p>The <strong>Ventilation Calculator<\/strong> automatically calculates the required airflow based on these parameters.<\/p>\n<p>For example, a large office or commercial space may require a higher-capacity system than a residential apartment of the same size.<\/p>\n<h2>Air Ducts and Ventilation Ductwork<\/h2>\n<p>Air ducts are an important part of the ventilation system.<\/p>\n<p>Their cost depends on length, diameter, shape, and material.<\/p>\n<p>The system may include:<\/p>\n<ul>\n<li>Round air ducts<\/li>\n<li>Rectangular ducts<\/li>\n<li>Elbows<\/li>\n<li>Tees<\/li>\n<li>Reducers<\/li>\n<li>Clamps<\/li>\n<li>Insulation<\/li>\n<\/ul>\n<p>The longer and more complex the duct route, the higher the <strong>ventilation installation cost<\/strong> may be.<\/p>\n<h2>Diffusers, Grilles, and Air Valves<\/h2>\n<p>Air is supplied to and extracted from rooms through special air distribution components.<\/p>\n<p>These may include:<\/p>\n<ul>\n<li>Diffusers<\/li>\n<li>Ventilation grilles<\/li>\n<li>Air valves<\/li>\n<\/ul>\n<p>The required quantity depends on airflow, number of rooms, and the system design.<\/p>\n<p>The calculator automatically estimates the approximate number of required components.<\/p>\n<h2>Additional Components<\/h2>\n<p>A complete <strong>ventilation system<\/strong> may also include additional components.<\/p>\n<p>For example:<\/p>\n<ul>\n<li>Silencer<\/li>\n<li>Backdraft damper<\/li>\n<li>Fire damper<\/li>\n<li>External grille<\/li>\n<li>Air heater<\/li>\n<li>Filters<\/li>\n<li>Automation<\/li>\n<\/ul>\n<p>These components affect the comfort, safety, and control of the system and are reflected in the final budget.<\/p>\n<h2>Ventilation Installation<\/h2>\n<p>Professional <strong>ventilation installation<\/strong> includes more than simply installing the ducts. The entire system must be assembled and configured correctly.<\/p>\n<p>Installation work may include:<\/p>\n<ul>\n<li>Air duct installation<\/li>\n<li>Ventilation unit installation<\/li>\n<li>Insulation installation<\/li>\n<li>Electrical connection<\/li>\n<li>Installation of diffusers and grilles<\/li>\n<li>System commissioning<\/li>\n<li>Airflow balancing<\/li>\n<\/ul>\n<p>Proper installation is important for efficient and stable system operation.<\/p>\n<h2>What Affects the Final Ventilation Cost?<\/h2>\n<p>The final cost is mainly affected by:<\/p>\n<ul>\n<li>Property area<\/li>\n<li>Ceiling height<\/li>\n<li>Number of people<\/li>\n<li>Required airflow<\/li>\n<li>Ventilation system type<\/li>\n<li>Heat recovery unit cost<\/li>\n<li>Air duct length<\/li>\n<li>Duct diameter<\/li>\n<li>Number of diffusers and grilles<\/li>\n<li>Automation<\/li>\n<li>Insulation<\/li>\n<li>Installation complexity<\/li>\n<\/ul>\n<p>Changes in these factors can significantly affect the <strong>ventilation cost<\/strong>.<\/p>\n<h2>How to Use the Ventilation Calculator<\/h2>\n<p>First, enter the property area, ceiling height, and number of people.<\/p>\n<p>Then select the property type and the preferred <strong>ventilation system<\/strong>.<\/p>\n<p>If necessary, you can also select an air heater or other additional features.<\/p>\n<p>The calculator automatically estimates:<\/p>\n<ul>\n<li>Required airflow<\/li>\n<li>Recommended system<\/li>\n<li>Estimated duct length<\/li>\n<li>Number of diffusers and grilles<\/li>\n<li>Equipment cost<\/li>\n<li>Material cost<\/li>\n<li>Installation cost<\/li>\n<li>Additional expenses<\/li>\n<\/ul>\n<p>The result will help you estimate the <strong>ventilation system cost<\/strong> in advance and plan the <strong>ventilation installation cost<\/strong> more accurately.<\/p>\n<p>Follow us on <a href=\"https:\/\/facebook.com\/datvale.ge\">Facebook<\/a> and <a href=\"https:\/\/youtube.com\/@datvale\" target=\"_blank\" rel=\"noopener\">YouTube<\/a>.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ventilation Cost 2026 \u2013 Ventilation Calculator Select the Main Ventilation Parameters Property Area m\u00b2 Ceiling Height m Number of People people Property Type ApartmentPrivate HouseOfficeCommercial SpaceRestaurant \/ Cafe \u2014 Dining Area Ventilation System Exhaust OnlySupply + ExhaustSupply + Exhaust with Heat RecoveryCentral System Heater \/ Air Heater NoYes The calculation covers general ventilation. For restaurants&#8230;<\/p>\n","protected":false},"author":67,"featured_media":0,"parent":0,"menu_order":22,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-21914","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages\/21914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/comments?post=21914"}],"version-history":[{"count":1,"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages\/21914\/revisions"}],"predecessor-version":[{"id":22131,"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages\/21914\/revisions\/22131"}],"wp:attachment":[{"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/media?parent=21914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}