


<style id="elementor-post-21790">.elementor-21790 .elementor-element.elementor-element-a78e802{--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-21790 .elementor-element.elementor-element-51df3aa{--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-21790 .elementor-element.elementor-element-8cc2326 > .elementor-widget-container{padding:0px 0px 0px 0px;}.elementor-21790 .elementor-element.elementor-element-8cc2326{text-align:center;}.elementor-21790 .elementor-element.elementor-element-8cc2326 .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-21790 .elementor-element.elementor-element-8cc2326 .elementor-heading-title a{transition-duration:0s;}.elementor-21790 .elementor-element.elementor-element-0e090b5{--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:-35px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-21790 .elementor-element.elementor-element-b814932{--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:-112px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-21790 .elementor-element.elementor-element-e19ecfc{--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-21790 .elementor-element.elementor-element-edc7689{--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 );}.elementor-21790 .elementor-element.elementor-element-409c014{--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-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-21790 .elementor-element.elementor-element-0394f99 img{width:100%;border-radius:25px 25px 25px 25px;}@media(max-width:1024px){.elementor-21790 .elementor-element.elementor-element-8cc2326 > .elementor-widget-container{padding:0px 0px 0px 0px;}}@media(max-width:767px){.elementor-21790 .elementor-element.elementor-element-863c0ef > .elementor-widget-container{margin:97px 0px 0px 0px;}.elementor-21790 .elementor-element.elementor-element-51df3aa{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-21790 .elementor-element.elementor-element-8cc2326 > .elementor-widget-container{padding:010px 010px 5px 010px;}.elementor-21790 .elementor-element.elementor-element-8cc2326{text-align:center;}.elementor-21790 .elementor-element.elementor-element-8cc2326 .elementor-heading-title{font-size:17px;-webkit-text-stroke-width:0px;stroke-width:0px;}.elementor-21790 .elementor-element.elementor-element-0e090b5{--margin-top:-25px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-21790 .elementor-element.elementor-element-b814932{--margin-top:-87px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}}@media(min-width:768px){.elementor-21790 .elementor-element.elementor-element-51df3aa{--content-width:1600px;}}</style>{"id":21790,"date":"2026-08-17T14:21:04","date_gmt":"2026-08-17T10:21:04","guid":{"rendered":"https:\/\/datvale.ge\/%e1%83%91%e1%83%9a%e1%83%9d%e1%83%99%e1%83%98%e1%83%a1-%e1%83%a6%e1%83%9d%e1%83%91%e1%83%98%e1%83%a1-%e1%83%99%e1%83%90%e1%83%9a%e1%83%99%e1%83%a3%e1%83%9a%e1%83%90%e1%83%a2%e1%83%9d%e1%83%a0%e1%83%98\/"},"modified":"2026-10-07T16:50:44","modified_gmt":"2026-10-07T12:50:44","slug":"block-fence-calculator","status":"publish","type":"page","link":"https:\/\/datvale.ge\/en\/block-fence-calculator\/","title":{"rendered":"Block Fence Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21790\" class=\"elementor elementor-21790 elementor-18602\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a78e802 e-flex e-con-boxed e-con e-parent\" data-id=\"a78e802\" 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-863c0ef elementor-widget elementor-widget-html\" data-id=\"863c0ef\" 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-51df3aa e-flex e-con-boxed e-con e-parent\" data-id=\"51df3aa\" 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-8cc2326 elementor-widget elementor-widget-heading\" data-id=\"8cc2326\" 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\">Block Fence Cost 2026 \u2013 Fence 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-0e090b5 e-flex e-con-boxed e-con e-parent\" data-id=\"0e090b5\" 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-74d1a56 elementor-widget elementor-widget-html\" data-id=\"74d1a56\" 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-architecture-calculator\">\r\n\r\n<style>\r\n#dv-architecture-calculator,\r\n#dv-architecture-calculator *{\r\n  box-sizing:border-box;\r\n}\r\n\r\n#dv-architecture-calculator{\r\n  --dv-blue:#0b3a78;\r\n  --dv-blue-2:#1764bd;\r\n  --dv-text:#173558;\r\n  --dv-muted:#5f7287;\r\n  --dv-border:#e3ebf5;\r\n  --dv-success:#13795b;\r\n\r\n  position:relative;\r\n  isolation:isolate;\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(--dv-border);\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(--dv-text);\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-architecture-calculator::before{\r\n  content:\"\";\r\n  position:absolute;\r\n  inset:-180px;\r\n  z-index:-1;\r\n  pointer-events:none;\r\n  background:\r\n    radial-gradient(circle at 12% 0%,rgba(23,100,189,.12),transparent 30%),\r\n    radial-gradient(circle at 92% 10%,rgba(11,58,120,.10),transparent 28%);\r\n}\r\n\r\n#dv-architecture-calculator .dv-calculator{\r\n  width:100%;\r\n  max-width:1180px;\r\n  margin:0 auto;\r\n}\r\n\r\n#dv-architecture-calculator .dv-input-card,\r\n#dv-architecture-calculator .dv-result-card,\r\n#dv-architecture-calculator .dv-summary,\r\n#dv-architecture-calculator .dv-related{\r\n  border:1px solid var(--dv-border);\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-architecture-calculator .dv-input-card{\r\n  padding:28px;\r\n  margin-bottom:24px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-section-title{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  gap:11px;\r\n  margin:0 0 22px;\r\n  color:var(--dv-text);\r\n  font-size:24px;\r\n  font-weight:950;\r\n  line-height:1.18;\r\n  letter-spacing:-.02em;\r\n}\r\n\r\n#dv-architecture-calculator .dv-section-number{\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  flex:0 0 36px;\r\n  border-radius:50%;\r\n  background:linear-gradient(135deg,var(--dv-blue),var(--dv-blue-2));\r\n  color:#fff;\r\n  font-size:14px;\r\n  font-weight:950;\r\n  box-shadow:0 8px 18px rgba(11,58,120,.18);\r\n}\r\n\r\n#dv-architecture-calculator .dv-input-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-architecture-calculator .dv-field{\r\n  min-width:0;\r\n}\r\n\r\n#dv-architecture-calculator .dv-field label{\r\n  display:block;\r\n  min-height:21px;\r\n  margin-bottom:8px;\r\n  color:var(--dv-text);\r\n  font-size:14px;\r\n  font-weight:850;\r\n}\r\n\r\n#dv-architecture-calculator .dv-input-wrap{\r\n  position:relative;\r\n}\r\n\r\n#dv-architecture-calculator .dv-field input,\r\n#dv-architecture-calculator .dv-field select{\r\n  display:block;\r\n  width:100%;\r\n  height:56px;\r\n  margin:0;\r\n  border:1px solid #d8e3ef;\r\n  border-radius:14px;\r\n  outline:none;\r\n  background:#f8fbff;\r\n  color:var(--dv-text);\r\n  font-size:16px;\r\n  font-weight:800;\r\n  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;\r\n}\r\n\r\n#dv-architecture-calculator .dv-field input{\r\n  padding:0 52px 0 15px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-field select{\r\n  padding:0 42px 0 15px;\r\n  cursor:pointer;\r\n}\r\n\r\n#dv-architecture-calculator .dv-field input:focus,\r\n#dv-architecture-calculator .dv-field select:focus{\r\n  border-color:var(--dv-blue-2);\r\n  background:#fff;\r\n  box-shadow:0 0 0 4px rgba(23,100,189,.10);\r\n}\r\n\r\n#dv-architecture-calculator .dv-unit{\r\n  position:absolute;\r\n  top:50%;\r\n  right:14px;\r\n  transform:translateY(-50%);\r\n  color:var(--dv-muted);\r\n  font-size:13px;\r\n  font-weight:850;\r\n  pointer-events:none;\r\n}\r\n\r\n#dv-architecture-calculator .dv-architecture-calculate-v2{\r\n  display:flex;\r\n  width:100%;\r\n  min-height:58px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  margin-top:22px;\r\n  padding:14px 24px;\r\n  border:0;\r\n  border-radius:14px;\r\n  cursor:pointer;\r\n  background:linear-gradient(135deg,var(--dv-blue),var(--dv-blue-2));\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  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;\r\n}\r\n\r\n#dv-architecture-calculator .dv-architecture-calculate-v2:hover{\r\n  transform:translateY(-2px);\r\n  filter:brightness(1.03);\r\n  box-shadow:0 16px 34px rgba(11,58,120,.26);\r\n}\r\n\r\n#dv-architecture-calculator .dv-error{\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-architecture-calculator .dv-output{\r\n  display:none;\r\n  scroll-margin-top:150px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-output.dv-show{\r\n  display:block;\r\n}\r\n\r\n#dv-architecture-calculator .dv-results{\r\n  display:grid;\r\n  grid-template-columns:1fr;\r\n  gap:18px;\r\n  max-width:1080px;\r\n  margin:0 auto;\r\n}\r\n\r\n#dv-architecture-calculator .dv-result-card{\r\n  overflow:hidden;\r\n}\r\n\r\n#dv-architecture-calculator .dv-result-head{\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(--dv-blue),var(--dv-blue-2));\r\n  color:#fff;\r\n}\r\n\r\n#dv-architecture-calculator .dv-result-icon{\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  flex:0 0 34px;\r\n  border-radius:10px;\r\n  background:rgba(255,255,255,.14);\r\n  font-size:17px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-result-head 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-architecture-calculator .dv-result-body{\r\n  padding:10px 18px 15px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-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-architecture-calculator .dv-row:last-child{\r\n  border-bottom:0;\r\n}\r\n\r\n#dv-architecture-calculator .dv-row-name{\r\n  min-width:0;\r\n  color:#425a74;\r\n  font-size:14px;\r\n  line-height:1.45;\r\n  font-weight:650;\r\n}\r\n\r\n#dv-architecture-calculator .dv-row-value{\r\n  color:var(--dv-text);\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-architecture-calculator .dv-card-total{\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  color:var(--dv-text);\r\n  font-size:15px;\r\n  font-weight:950;\r\n  text-align:right;\r\n}\r\n\r\n#dv-architecture-calculator .dv-summary{\r\n  max-width:1080px;\r\n  margin:22px auto 0;\r\n  padding:26px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-summary-grid{\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-architecture-calculator .dv-summary-item{\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-architecture-calculator .dv-summary-label{\r\n  display:block;\r\n  margin-bottom:7px;\r\n  color:var(--dv-muted);\r\n  font-size:13px;\r\n  font-weight:850;\r\n}\r\n\r\n#dv-architecture-calculator .dv-summary-value{\r\n  color:var(--dv-text);\r\n  font-size:22px;\r\n  font-weight:950;\r\n}\r\n\r\n#dv-architecture-calculator .dv-grand-total{\r\n  margin-top:16px;\r\n  padding:29px 20px;\r\n  border-radius:18px;\r\n  background:linear-gradient(135deg,var(--dv-blue),var(--dv-blue-2));\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-architecture-calculator .dv-grand-total 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-architecture-calculator .dv-grand-total strong{\r\n  display:block;\r\n  color:#fff;\r\n  font-size:clamp(34px,6vw,52px);\r\n  line-height:1;\r\n  font-weight:1000;\r\n}\r\n\r\n#dv-architecture-calculator .dv-range{\r\n  margin-top:8px;\r\n  color:rgba(255,255,255,.88);\r\n  font-size:14px;\r\n  font-weight:800;\r\n}\r\n\r\n#dv-architecture-calculator .dv-pdf-button{\r\n  display:flex;\r\n  width:100%;\r\n  min-height:56px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  gap:9px;\r\n  margin-top:15px;\r\n  padding:14px 22px;\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  box-shadow:0 12px 28px rgba(19,121,91,.20);\r\n}\r\n\r\n#dv-architecture-calculator .dv-pdf-button:disabled{\r\n  opacity:.65;\r\n  cursor:wait;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related{\r\n  max-width:1080px;\r\n  margin:20px auto 0;\r\n  padding:22px;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-grid{\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-architecture-calculator .dv-related-link{\r\n  display:flex;\r\n  min-width:0;\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(--dv-blue);\r\n  text-decoration:none!important;\r\n  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-link:hover{\r\n  transform:translateY(-2px);\r\n  border-color:rgba(23,100,189,.32);\r\n  background:#fff;\r\n  box-shadow:0 12px 26px rgba(11,58,120,.11);\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-icon{\r\n  display:inline-flex;\r\n  width:42px;\r\n  height:42px;\r\n  flex:0 0 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(--dv-blue),var(--dv-blue-2));\r\n  font-size:20px;\r\n  box-shadow:0 8px 18px rgba(11,58,120,.18);\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-text{\r\n  min-width:0;\r\n  flex:1;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-text strong{\r\n  display:block;\r\n  margin-bottom:4px;\r\n  color:var(--dv-blue);\r\n  font-size:15px;\r\n  font-weight:950;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-text small{\r\n  display:block;\r\n  color:var(--dv-muted);\r\n  font-size:12px;\r\n  line-height:1.45;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-arrow{\r\n  display:inline-flex;\r\n  width:32px;\r\n  height:32px;\r\n  flex:0 0 32px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  border-radius:50%;\r\n  background:#eaf2f8;\r\n  color:var(--dv-blue);\r\n  font-size:18px;\r\n  font-weight:950;\r\n  transition:.2s ease;\r\n}\r\n\r\n#dv-architecture-calculator .dv-related-link:hover .dv-related-arrow{\r\n  transform:translateX(3px);\r\n  background:var(--dv-blue);\r\n  color:#fff;\r\n}\r\n\r\n#dv-architecture-calculator .dv-output.dv-show .dv-result-card,\r\n#dv-architecture-calculator .dv-output.dv-show .dv-summary,\r\n#dv-architecture-calculator .dv-output.dv-show .dv-related{\r\n  opacity:0;\r\n  transform:translateY(18px);\r\n  animation:dvArchitectureReveal .45s ease forwards;\r\n}\r\n\r\n@keyframes dvArchitectureReveal{\r\n  to{\r\n    opacity:1;\r\n    transform:translateY(0);\r\n  }\r\n}\r\n\r\n@media(max-width:980px){\r\n  #dv-architecture-calculator .dv-input-grid{\r\n    grid-template-columns:repeat(2,minmax(0,1fr));\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-summary-grid{\r\n    grid-template-columns:repeat(2,minmax(0,1fr));\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-related-grid{\r\n    grid-template-columns:1fr;\r\n  }\r\n}\r\n\r\n@media(max-width:760px){\r\n  #dv-architecture-calculator{\r\n    margin:18px auto;\r\n    padding:26px 12px;\r\n    border-radius:18px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-input-card,\r\n  #dv-architecture-calculator .dv-summary,\r\n  #dv-architecture-calculator .dv-related{\r\n    padding:18px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-input-grid,\r\n  #dv-architecture-calculator .dv-summary-grid{\r\n    grid-template-columns:1fr;\r\n    gap:16px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-section-title{\r\n    font-size:21px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-output{\r\n    scroll-margin-top:110px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-row{\r\n    gap:9px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-row-name{\r\n    font-size:13px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-row-value{\r\n    font-size:14px;\r\n  }\r\n}\r\n\r\n\/* After the first free calculation *\/\r\n#dv-architecture-calculator .dv-free-next-step{\r\n  display:none;\r\n  max-width:1080px;\r\n  margin:0 auto 20px;\r\n  padding:22px 24px;\r\n  border:1px solid #d7e6f5;\r\n  border-radius:20px;\r\n  background:\r\n    radial-gradient(circle at top right,rgba(23,100,189,.12),transparent 34%),\r\n    linear-gradient(135deg,#ffffff 0%,#eef5fc 100%);\r\n  box-shadow:0 14px 34px rgba(11,58,120,.10);\r\n}\r\n\r\n#dv-architecture-calculator .dv-free-next-step.dv-show{\r\n  display:grid;\r\n  grid-template-columns:minmax(0,1fr) auto;\r\n  gap:22px;\r\n  align-items:center;\r\n}\r\n\r\n#dv-architecture-calculator .dv-free-next-step-kicker{\r\n  display:inline-block;\r\n  margin-bottom:6px;\r\n  color:#13795b;\r\n  font-size:12px;\r\n  font-weight:950;\r\n}\r\n\r\n#dv-architecture-calculator .dv-free-next-step h3{\r\n  margin:0 0 7px;\r\n  color:#173558;\r\n  font-size:22px;\r\n  font-weight:950;\r\n  line-height:1.2;\r\n}\r\n\r\n#dv-architecture-calculator .dv-free-next-step p{\r\n  margin:0;\r\n  color:#526b84;\r\n  font-size:14px;\r\n  line-height:1.55;\r\n  font-weight:650;\r\n}\r\n\r\n#dv-architecture-calculator .dv-free-next-step a{\r\n  display:inline-flex;\r\n  min-width:240px;\r\n  min-height:52px;\r\n  align-items:center;\r\n  justify-content:center;\r\n  padding:13px 20px;\r\n  border-radius:13px;\r\n  background:linear-gradient(135deg,#0b3a78,#1764bd);\r\n  color:#fff!important;\r\n  font-size:14px;\r\n  font-weight:950;\r\n  text-decoration:none!important;\r\n  text-align:center;\r\n  box-shadow:0 10px 24px rgba(11,58,120,.20);\r\n}\r\n\r\n\/* Company call request *\/\r\n#dv-architecture-calculator .dv-call-request{\r\n  display:none;\r\n  width:100%;\r\n  max-width:100%;\r\n  min-width:0;\r\n  margin-top:14px;\r\n  padding:18px;\r\n  border:1px solid #d8e3ef;\r\n  border-radius:16px;\r\n  background:#f8fbff;\r\n  overflow:hidden;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-title{\r\n  margin:0 0 6px;\r\n  color:var(--dv-text);\r\n  font-size:17px;\r\n  font-weight:950;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-text{\r\n  margin:0 0 12px;\r\n  color:var(--dv-muted);\r\n  font-size:13px;\r\n  line-height:1.5;\r\n  font-weight:650;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-row{\r\n  display:grid;\r\n  width:100%;\r\n  max-width:100%;\r\n  min-width:0;\r\n  grid-template-columns:minmax(0,1fr) auto;\r\n  gap:10px;\r\n  align-items:center;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-phone{\r\n  display:block;\r\n  width:100%;\r\n  max-width:100%;\r\n  min-width:0;\r\n  height:52px;\r\n  padding:0 14px;\r\n  border:1px solid #d8e3ef;\r\n  border-radius:12px;\r\n  outline:none;\r\n  background:#fff;\r\n  color:var(--dv-text);\r\n  font-size:15px;\r\n  font-weight:750;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-phone:focus{\r\n  border-color:var(--dv-success);\r\n  box-shadow:0 0 0 4px rgba(19,121,91,.10);\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-row.dv-has-saved-phone{\r\n  grid-template-columns:1fr;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-row.dv-has-saved-phone .dv-call-phone{\r\n  display:none;\r\n}\r\n\r\n#dv-architecture-calculator .dv-request-call-btn{\r\n  min-height:52px;\r\n  max-width:100%;\r\n  min-width:0;\r\n  padding:13px 20px;\r\n  border:0;\r\n  border-radius:12px;\r\n  cursor:pointer;\r\n  background:linear-gradient(135deg,#13795b,#0e9a70);\r\n  color:#fff;\r\n  font-size:14px;\r\n  font-weight:950;\r\n  white-space:nowrap;\r\n  box-shadow:0 10px 24px rgba(19,121,91,.22);\r\n}\r\n\r\n#dv-architecture-calculator .dv-request-call-btn:disabled{\r\n  opacity:.65;\r\n  cursor:wait;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-status{\r\n  display:none;\r\n  margin-top:10px;\r\n  padding:10px 12px;\r\n  border-radius:10px;\r\n  font-size:13px;\r\n  line-height:1.45;\r\n  font-weight:800;\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-status.dv-success{\r\n  display:block;\r\n  background:#eefaf5;\r\n  color:#13795b;\r\n  border:1px solid rgba(19,121,91,.16);\r\n}\r\n\r\n#dv-architecture-calculator .dv-call-request-status.dv-error{\r\n  display:block;\r\n  background:#fff2f2;\r\n  color:#a32020;\r\n  border:1px solid rgba(174,32,32,.18);\r\n}\r\n\r\n@media(max-width:760px){\r\n  #dv-architecture-calculator .dv-free-next-step.dv-show{\r\n    grid-template-columns:1fr;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-free-next-step{\r\n    padding:18px;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-free-next-step a{\r\n    width:100%;\r\n    min-width:0;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-call-request{\r\n    width:100%;\r\n    max-width:100%;\r\n    min-width:0;\r\n    overflow:hidden;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-call-request-row{\r\n    width:100%;\r\n    max-width:100%;\r\n    min-width:0;\r\n    grid-template-columns:minmax(0,1fr);\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-call-phone{\r\n    width:100%;\r\n    max-width:100%;\r\n    min-width:0;\r\n  }\r\n\r\n  #dv-architecture-calculator .dv-request-call-btn{\r\n    display:block;\r\n    width:100%;\r\n    max-width:100%;\r\n    min-width:0;\r\n    white-space:normal;\r\n    overflow-wrap:anywhere;\r\n  }\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<div class=\"dv-calculator\">\r\n\r\n  <div class=\"dv-input-card\">\r\n\r\n    <h3 class=\"dv-section-title\">\r\n      Select project characteristics\r\n    <\/h3>\r\n\r\n    <div class=\"dv-input-grid\">\r\n\r\n      <div class=\"dv-field\">\r\n        <label for=\"dvArea\">Building area<\/label>\r\n        <div class=\"dv-input-wrap\">\r\n          <input id=\"dvArea\" type=\"number\" min=\"30\" max=\"3000\" step=\"1\" placeholder=\"e.g. 150\" inputmode=\"decimal\">\r\n          <span class=\"dv-unit\">m\u00b2<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"dv-field\">\r\n        <label for=\"dvBuildingType\">Building type<\/label>\r\n        <select id=\"dvBuildingType\">\r\n          <option value=\"house\" selected>Private house<\/option>\r\n          <option value=\"cottage\">Cottage<\/option>\r\n          <option value=\"commercial\">Commercial property<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"dv-field\">\r\n        <label for=\"dvFloors\">Number of floors<\/label>\r\n        <select id=\"dvFloors\">\r\n          <option value=\"1\">1 floor<\/option>\r\n          <option value=\"2\" selected>2 floors<\/option>\r\n          <option value=\"3\">3 floors<\/option>\r\n          <option value=\"4\">4+ floors<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"dv-field\">\r\n        <label for=\"dvPackage\">Project package<\/label>\r\n        <select id=\"dvPackage\">\r\n          <option value=\"sketch\">Concept design<\/option>\r\n          <option value=\"architecture\">Architectural design<\/option>\r\n          <option value=\"full\" selected>Full project<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"dv-field\">\r\n        <label for=\"dvComplexity\">Architectural complexity<\/label>\r\n        <select id=\"dvComplexity\">\r\n          <option value=\"standard\" selected>Standard<\/option>\r\n          <option value=\"complex\">Complex<\/option>\r\n          <option value=\"premium\">Custom \/ Premium<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"dv-field\">\r\n        <label for=\"dv3d\">3D visualization<\/label>\r\n        <select id=\"dv3d\">\r\n          <option value=\"no\">Not required<\/option>\r\n          <option value=\"yes\" selected>With 3D visualization<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n    <button class=\"dv-architecture-calculate-v2\" id=\"dvArchitectureCalculateFreeFlowV2\" type=\"button\">\r\n      Calculate architecture cost\r\n    <\/button>\r\n\r\n    <div class=\"dv-error\" id=\"dvError\">\r\n      Please enter the building area correctly.\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n\r\n  <div class=\"dv-output\" id=\"dvOutput\">\r\n\r\n    <div class=\"dv-free-next-step\" id=\"dvFreeNextStep\">\r\n      <div>\r\n        <span class=\"dv-free-next-step-kicker\">\u2713 Free calculation used<\/span>\r\n        <h3>A package is required for the next calculation<\/h3>\r\n        <p>You have used one free calculation. Choose your preferred package for the next calculation.<\/p>\r\n      <\/div>\r\n      <a href=\"https:\/\/datvale.ge\/en\/packages\/\">Choose a package<\/a>\r\n    <\/div>\r\n\r\n    <div class=\"dv-results\">\r\n\r\n      <div class=\"dv-result-card\">\r\n        <div class=\"dv-result-head\">\r\n          <span class=\"dv-result-icon\">\ud83d\udcd0<\/span>\r\n          <h3>Selected project<\/h3>\r\n        <\/div>\r\n        <div class=\"dv-result-body\">\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Building area<\/span><span class=\"dv-row-value\" id=\"rArea\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Building type<\/span><span class=\"dv-row-value\" id=\"rBuildingType\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Floors<\/span><span class=\"dv-row-value\" id=\"rFloors\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Project package<\/span><span class=\"dv-row-value\" id=\"rPackage\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Complexity<\/span><span class=\"dv-row-value\" id=\"rComplexity\">\u2014<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n\r\n      <div class=\"dv-result-card\">\r\n        <div class=\"dv-result-head\">\r\n          <span class=\"dv-result-icon\">\u270f\ufe0f<\/span>\r\n          <h3>Concept and architecture<\/h3>\r\n        <\/div>\r\n        <div class=\"dv-result-body\">\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Concept and functional planning<\/span><span class=\"dv-row-value\" id=\"rConcept\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Plans, elevations and sections<\/span><span class=\"dv-row-value\" id=\"rArchitecture\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Site plan and building placement<\/span><span class=\"dv-row-value\" id=\"rSitePlan\">\u2014<\/span><\/div>\r\n          <div class=\"dv-card-total\">Architectural section: <span id=\"rArchitectureTotal\">\u2014<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n\r\n      <div class=\"dv-result-card\">\r\n        <div class=\"dv-result-head\">\r\n          <span class=\"dv-result-icon\">\ud83c\udfd7\ufe0f<\/span>\r\n          <h3>Structural design<\/h3>\r\n        <\/div>\r\n        <div class=\"dv-result-body\">\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Structural calculations<\/span><span class=\"dv-row-value\" id=\"rStructuralCalc\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Foundation and load-bearing element drawings<\/span><span class=\"dv-row-value\" id=\"rStructuralDrawings\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Structural working drawings<\/span><span class=\"dv-row-value\" id=\"rStructuralDocs\">\u2014<\/span><\/div>\r\n          <div class=\"dv-card-total\">Structural section: <span id=\"rStructuralTotal\">\u2014<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n\r\n      <div class=\"dv-result-card\">\r\n        <div class=\"dv-result-head\">\r\n          <span class=\"dv-result-icon\">\u2699\ufe0f<\/span>\r\n          <h3>Engineering design<\/h3>\r\n        <\/div>\r\n        <div class=\"dv-result-body\">\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Electrical design<\/span><span class=\"dv-row-value\" id=\"rElectrical\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Water supply and sewage<\/span><span class=\"dv-row-value\" id=\"rPlumbing\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Basic heating \/ ventilation design<\/span><span class=\"dv-row-value\" id=\"rHVAC\">\u2014<\/span><\/div>\r\n          <div class=\"dv-card-total\">Engineering section: <span id=\"rEngineeringTotal\">\u2014<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n\r\n      <div class=\"dv-result-card\">\r\n        <div class=\"dv-result-head\">\r\n          <span class=\"dv-result-icon\">\ud83d\uddfa\ufe0f<\/span>\r\n          <h3>Surveys and project documentation<\/h3>\r\n        <\/div>\r\n        <div class=\"dv-result-body\">\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Topographic survey<\/span><span class=\"dv-row-value\" id=\"rTopo\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Geological survey<\/span><span class=\"dv-row-value\" id=\"rGeology\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Preparation of project documentation<\/span><span class=\"dv-row-value\" id=\"rDocumentation\">\u2014<\/span><\/div>\r\n          <div class=\"dv-card-total\">Surveys and documentation: <span id=\"rResearchTotal\">\u2014<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n\r\n      <div class=\"dv-result-card\">\r\n        <div class=\"dv-result-head\">\r\n          <span class=\"dv-result-icon\">\ud83d\uddbc\ufe0f<\/span>\r\n          <h3>3D visualization and presentation<\/h3>\r\n        <\/div>\r\n        <div class=\"dv-result-body\">\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Architectural 3D model<\/span><span class=\"dv-row-value\" id=\"r3dModel\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Exterior renders<\/span><span class=\"dv-row-value\" id=\"rRenders\">\u2014<\/span><\/div>\r\n          <div class=\"dv-row\"><span class=\"dv-row-name\">Presentation materials<\/span><span class=\"dv-row-value\" id=\"rPresentation\">\u2014<\/span><\/div>\r\n          <div class=\"dv-card-total\">3D and presentation: <span id=\"r3dTotal\">\u2014<\/span><\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n    <div class=\"dv-summary\">\r\n\r\n      <h3 class=\"dv-section-title\">\r\n        <span class=\"dv-section-number\">2<\/span>\r\n        Cost summary\r\n      <\/h3>\r\n\r\n      <div class=\"dv-summary-grid\">\r\n\r\n        <div class=\"dv-summary-item\">\r\n          <span class=\"dv-summary-label\">Architecture<\/span>\r\n          <span class=\"dv-summary-value\" id=\"rArchitectureSummary\">\u2014<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"dv-summary-item\">\r\n          <span class=\"dv-summary-label\">Structure<\/span>\r\n          <span class=\"dv-summary-value\" id=\"rStructuralSummary\">\u2014<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"dv-summary-item\">\r\n          <span class=\"dv-summary-label\">Engineering<\/span>\r\n          <span class=\"dv-summary-value\" id=\"rEngineeringSummary\">\u2014<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"dv-summary-item\">\r\n          <span class=\"dv-summary-label\">Surveys and 3D<\/span>\r\n          <span class=\"dv-summary-value\" id=\"rExtrasSummary\">\u2014<\/span>\r\n        <\/div>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"dv-grand-total\">\r\n        <small>Estimated total cost of the architectural project<\/small>\r\n        <strong id=\"rTotal\">\u2014<\/strong>\r\n        <div class=\"dv-range\" id=\"rRate\">\u2014<\/div>\r\n      <\/div>\r\n\r\n      <button class=\"dv-pdf-button\" id=\"dvPdf\" type=\"button\">\r\n        \ud83d\udcc4 Download PDF\r\n      <\/button>\r\n\r\n      <div class=\"dv-call-request\" id=\"dvArchitectureCallRequest\">\r\n        <h4 class=\"dv-call-request-title\">Would you like a company consultation?<\/h4>\r\n        <p class=\"dv-call-request-text\">\r\n          Request a call from the company and they will contact you with additional information.\r\n        <\/p>\r\n\r\n        <div class=\"dv-call-request-row\" id=\"dvArchitectureCallRow\">\r\n          <input\r\n            class=\"dv-call-phone\"\r\n            id=\"dvArchitectureCallPhone\"\r\n            type=\"tel\"\r\n            inputmode=\"tel\"\r\n            autocomplete=\"tel\"\r\n            placeholder=\"e.g. 599123456\"\r\n          >\r\n\r\n          <button\r\n            class=\"dv-request-call-btn\"\r\n            id=\"dvArchitectureRequestCall\"\r\n            type=\"button\"\r\n          >\r\n            Request a company call\r\n          <\/button>\r\n        <\/div>\r\n\r\n        <div\r\n          class=\"dv-call-request-status\"\r\n          id=\"dvArchitectureCallStatus\"\r\n          aria-live=\"polite\"\r\n        ><\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n\r\n    <div class=\"dv-related\">\r\n\r\n      <div class=\"dv-related-grid\">\r\n\r\n        <a class=\"dv-related-link\" href=\"https:\/\/datvale.ge\/en\/construction-calculator\/\" target=\"_blank\" rel=\"noopener\">\r\n          <span class=\"dv-related-icon\">\ud83c\udfd7\ufe0f<\/span>\r\n          <span class=\"dv-related-text\">\r\n            <strong>Construction Calculator<\/strong>\r\n            <small>Calculate the estimated total cost of building a house<\/small>\r\n          <\/span>\r\n          <span class=\"dv-related-arrow\">\u2192<\/span>\r\n        <\/a>\r\n\r\n        <a class=\"dv-related-link\" href=\"https:\/\/datvale.ge\/en\/cottage-calculator\/\" target=\"_blank\" rel=\"noopener\">\r\n          <span class=\"dv-related-icon\">\ud83c\udfe1<\/span>\r\n          <span class=\"dv-related-text\">\r\n            <strong>Cottage Calculator<\/strong>\r\n            <small>Calculate the estimated cost of building a cottage<\/small>\r\n          <\/span>\r\n          <span class=\"dv-related-arrow\">\u2192<\/span>\r\n        <\/a>\r\n\r\n        <a class=\"dv-related-link\" href=\"https:\/\/datvale.ge\/en\/design-calculator\/\" target=\"_blank\" rel=\"noopener\">\r\n          <span class=\"dv-related-icon\">\u2728<\/span>\r\n          <span class=\"dv-related-text\">\r\n            <strong>Design Calculator<\/strong>\r\n            <small>Calculate the estimated cost of interior design<\/small>\r\n          <\/span>\r\n          <span class=\"dv-related-arrow\">\u2192<\/span>\r\n        <\/a>\r\n\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n  <\/div>\r\n\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-architecture-calculator\");\r\nif(!root)return;\r\n\r\nconst $=id=>root.querySelector(\"#\"+id);\r\n\r\nconst names={\r\n  buildingType:{\r\n    house:\"Private house\",\r\n    cottage:\"Cottage\",\r\n    commercial:\"Commercial property\"\r\n  },\r\n  floors:{\r\n    \"1\":\"1 floor\",\r\n    \"2\":\"2 floors\",\r\n    \"3\":\"3 floors\",\r\n    \"4\":\"4+ floors\"\r\n  },\r\n  package:{\r\n    sketch:\"Concept design\",\r\n    architecture:\"Architectural design\",\r\n    full:\"Full project\"\r\n  },\r\n  complexity:{\r\n    standard:\"Standard\",\r\n    complex:\"Complex\",\r\n    premium:\"Custom \/ Premium\"\r\n  }\r\n};\r\n\r\n\r\n\/*\r\n * 2026 working market model.\r\n *\r\n * Public market ranges:\r\n * - Concept design: approximately 15\u201330 \u20be\/m\u00b2\r\n * - Architecture: approximately 20\u201340 \u20be\/m\u00b2\r\n * - Full package: approximately 60\u2013110 \u20be\/m\u00b2\r\n * - Structural section: approximately 15\u201345 \u20be\/m\u00b2\r\n * - Engineering sections: approximately 12\u201325 \u20be\/m\u00b2\r\n * - Topography: approximately 600\u20131500 \u20be\r\n * - Geology: approximately 1500\u20133500 \u20be\r\n *\r\n * The calculator uses average working values\r\n * and then adjusts them using building type, number of floors\r\n * and complexity multipliers.\r\n *\/\r\n\r\nconst rates={\r\n  conceptPerM2:8,\r\n  architecturePerM2:22,\r\n  sitePlanPerM2:5,\r\n\r\n  structuralCalcPerM2:9,\r\n  structuralDrawingsPerM2:13,\r\n  structuralDocsPerM2:6,\r\n\r\n  electricalPerM2:6,\r\n  plumbingPerM2:6,\r\n  hvacPerM2:7,\r\n\r\n  documentationPerM2:5,\r\n\r\n  topoBase:950,\r\n  geologyBase:2200,\r\n\r\n  model3dPerM2:4,\r\n  renderBase:900,\r\n  presentationBase:350\r\n};\r\n\r\nconst buildingMultiplier={\r\n  house:1,\r\n  cottage:.92,\r\n  commercial:1.15\r\n};\r\n\r\nconst floorMultiplier={\r\n  \"1\":1,\r\n  \"2\":1.05,\r\n  \"3\":1.11,\r\n  \"4\":1.18\r\n};\r\n\r\nconst complexityMultiplier={\r\n  standard:1,\r\n  complex:1.18,\r\n  premium:1.35\r\n};\r\n\r\nfunction numberValue(id){\r\n  const el=$(id);\r\n  if(!el)return 0;\r\n  const value=parseFloat(String(el.value||\"\").replace(\",\",\".\"));\r\n  return Number.isFinite(value)?value:0;\r\n}\r\n\r\nfunction money(value){\r\n  return new Intl.NumberFormat(\"en-US\",{\r\n    minimumFractionDigits:0,\r\n    maximumFractionDigits:0\r\n  }).format(Math.round(value))+\" \u20be\";\r\n}\r\n\r\n\r\nlet dvArchitectureClickBusy=false;\r\n\r\nfunction showArchitectureFreeNextStep(){\r\n  const box=$(\"dvFreeNextStep\");\r\n  if(box)box.classList.add(\"dv-show\");\r\n}\r\n\r\nfunction openArchitectureRegistrationPopup(){\r\n  const redirect=\r\n    window.location.pathname+\r\n    window.location.search+\r\n    window.location.hash;\r\n\r\n  if(typeof window.openAuthModal===\"function\"){\r\n    window.openAuthModal(\"register\",redirect);\r\n    return true;\r\n  }\r\n\r\n  const trigger=document.querySelector(\r\n    '.cpdf-auth[data-auth-action=\"register\"]'\r\n  );\r\n\r\n  if(trigger){\r\n    trigger.setAttribute(\"data-redirect\",redirect);\r\n    trigger.click();\r\n    return true;\r\n  }\r\n\r\n  window.location.href=\r\n    \"\/en\/login\/?redirect_to=\"+\r\n    encodeURIComponent(redirect);\r\n\r\n  return false;\r\n}\r\n\r\nfunction openArchitecturePackagePrompt(){\r\n  if(\r\n    typeof window.jQuery!==\"undefined\" &&\r\n    window.jQuery(\"#membership-modal\").length\r\n  ){\r\n    window.jQuery(\"#membership-modal\").css(\"display\",\"block\");\r\n    return true;\r\n  }\r\n\r\n  const trigger=document.querySelector(\r\n    \"#membership-purchase-btn, .membership-purchase-btn, [data-membership-modal]\"\r\n  );\r\n\r\n  if(trigger){\r\n    trigger.click();\r\n    return true;\r\n  }\r\n\r\n  window.location.href=\"\/en\/packages\/\";\r\n  return false;\r\n}\r\n\r\nasync function authorizeArchitectureFlow(){\r\n  if(\r\n    !window.DatvaleHtmlAccess ||\r\n    typeof window.DatvaleHtmlAccess.authorize!==\"function\"\r\n  ){\r\n    alert(\"The access system could not be loaded. Refresh the page and try again.\");\r\n    return{allowed:false,mode:\"error\"};\r\n  }\r\n\r\n  const result=await window.DatvaleHtmlAccess.authorize(\"architecture\");\r\n\r\n  if(\r\n    result &&\r\n    result.success &&\r\n    result.data &&\r\n    result.data.allowed===true\r\n  ){\r\n    return{\r\n      allowed:true,\r\n      mode:result.data.mode||\"membership\"\r\n    };\r\n  }\r\n\r\n  const data=\r\n    result&&result.data\r\n      ?result.data\r\n      :{};\r\n\r\n  if(data.code===\"login_required\"){\r\n    openArchitectureRegistrationPopup();\r\n    return{allowed:false,mode:\"login_required\"};\r\n  }\r\n\r\n  if(data.code===\"package_required\"){\r\n    openArchitecturePackagePrompt();\r\n    return{allowed:false,mode:\"package_required\"};\r\n  }\r\n\r\n  alert(\r\n    data.message||\r\n    \"Access verification failed. Please try again.\"\r\n  );\r\n\r\n  return{allowed:false,mode:\"error\"};\r\n}\r\n\r\nasync function claimArchitectureFreeCalculation(){\r\n  if(\r\n    !window.DatvaleHtmlAccess ||\r\n    typeof window.DatvaleHtmlAccess.claimFree!==\"function\"\r\n  ){\r\n    return false;\r\n  }\r\n\r\n  const result=await window.DatvaleHtmlAccess.claimFree(\"architecture\");\r\n\r\n  return !!(\r\n    result &&\r\n    result.success &&\r\n    result.data &&\r\n    result.data.claimed===true\r\n  );\r\n}\r\n\r\nfunction calculateArchitecture(showError){\r\n\r\n  const area=numberValue(\"dvArea\");\r\n  const buildingType=$(\"dvBuildingType\").value;\r\n  const floors=$(\"dvFloors\").value;\r\n  const packageType=$(\"dvPackage\").value;\r\n  const complexity=$(\"dvComplexity\").value;\r\n  const has3d=$(\"dv3d\").value===\"yes\";\r\n\r\n  if(area<30||area>3000){\r\n    $(\"dvError\").style.display=showError?\"block\":\"none\";\r\n    $(\"dvOutput\").classList.remove(\"dv-show\");\r\n    return false;\r\n  }\r\n\r\n  $(\"dvError\").style.display=\"none\";\r\n\r\n  const mult=\r\n    buildingMultiplier[buildingType]*\r\n    floorMultiplier[floors]*\r\n    complexityMultiplier[complexity];\r\n\r\n  const includeArchitecture=\r\n    packageType===\"architecture\"||\r\n    packageType===\"full\";\r\n\r\n  const includeFull=\r\n    packageType===\"full\";\r\n\r\n  \/*\r\n   * Concept package:\r\n   * Concept + basic site plan section + optional 3D.\r\n   *\/\r\n  const concept=area*rates.conceptPerM2*mult;\r\n\r\n  const architecture=\r\n    includeArchitecture\r\n      ?area*rates.architecturePerM2*mult\r\n      :area*7*mult;\r\n\r\n  const sitePlan=\r\n    area*rates.sitePlanPerM2*mult;\r\n\r\n  const architectureTotal=\r\n    concept+\r\n    architecture+\r\n    sitePlan;\r\n\r\n\r\n  \/*\r\n   * The structural section is added for the full package.\r\n   *\/\r\n  const structuralCalc=\r\n    includeFull\r\n      ?area*rates.structuralCalcPerM2*mult\r\n      :0;\r\n\r\n  const structuralDrawings=\r\n    includeFull\r\n      ?area*rates.structuralDrawingsPerM2*mult\r\n      :0;\r\n\r\n  const structuralDocs=\r\n    includeFull\r\n      ?area*rates.structuralDocsPerM2*mult\r\n      :0;\r\n\r\n  const structuralTotal=\r\n    structuralCalc+\r\n    structuralDrawings+\r\n    structuralDocs;\r\n\r\n\r\n  \/*\r\n   * Engineering section of the full package.\r\n   *\/\r\n  const electrical=\r\n    includeFull\r\n      ?area*rates.electricalPerM2*mult\r\n      :0;\r\n\r\n  const plumbing=\r\n    includeFull\r\n      ?area*rates.plumbingPerM2*mult\r\n      :0;\r\n\r\n  const hvac=\r\n    includeFull\r\n      ?area*rates.hvacPerM2*mult\r\n      :0;\r\n\r\n  const engineeringTotal=\r\n    electrical+\r\n    plumbing+\r\n    hvac;\r\n\r\n\r\n  \/*\r\n   * Topography \/ geology are included only in the full package.\r\n   * Moderate adjustment based on increasing area.\r\n   *\/\r\n  const researchScale=Math.max(1,Math.min(1.65,area\/180));\r\n\r\n  const topo=\r\n    includeFull\r\n      ?rates.topoBase*researchScale\r\n      :0;\r\n\r\n  const geology=\r\n    includeFull\r\n      ?rates.geologyBase*researchScale\r\n      :0;\r\n\r\n  const documentation=\r\n    includeArchitecture\r\n      ?area*rates.documentationPerM2*mult\r\n      :area*2*mult;\r\n\r\n  const researchTotal=\r\n    topo+\r\n    geology+\r\n    documentation;\r\n\r\n\r\n  \/*\r\n   * Optional 3D.\r\n   *\/\r\n  const model3d=\r\n    has3d\r\n      ?area*rates.model3dPerM2*mult\r\n      :0;\r\n\r\n  const renders=\r\n    has3d\r\n      ?rates.renderBase*complexityMultiplier[complexity]\r\n      :0;\r\n\r\n  const presentation=\r\n    has3d\r\n      ?rates.presentationBase\r\n      :0;\r\n\r\n  const total3d=\r\n    model3d+\r\n    renders+\r\n    presentation;\r\n\r\n\r\n  const grandTotal=\r\n    architectureTotal+\r\n    structuralTotal+\r\n    engineeringTotal+\r\n    researchTotal+\r\n    total3d;\r\n\r\n  const effectiveRate=grandTotal\/area;\r\n\r\n\r\n  $(\"rArea\").textContent=area+\" m\u00b2\";\r\n  $(\"rBuildingType\").textContent=names.buildingType[buildingType];\r\n  $(\"rFloors\").textContent=names.floors[floors];\r\n  $(\"rPackage\").textContent=names.package[packageType];\r\n  $(\"rComplexity\").textContent=names.complexity[complexity];\r\n\r\n  $(\"rConcept\").textContent=money(concept);\r\n  $(\"rArchitecture\").textContent=money(architecture);\r\n  $(\"rSitePlan\").textContent=money(sitePlan);\r\n  $(\"rArchitectureTotal\").textContent=money(architectureTotal);\r\n\r\n  $(\"rStructuralCalc\").textContent=includeFull?money(structuralCalc):\"Not included in the selected package\";\r\n  $(\"rStructuralDrawings\").textContent=includeFull?money(structuralDrawings):\"Not included in the selected package\";\r\n  $(\"rStructuralDocs\").textContent=includeFull?money(structuralDocs):\"Not included in the selected package\";\r\n  $(\"rStructuralTotal\").textContent=money(structuralTotal);\r\n\r\n  $(\"rElectrical\").textContent=includeFull?money(electrical):\"Not included in the selected package\";\r\n  $(\"rPlumbing\").textContent=includeFull?money(plumbing):\"Not included in the selected package\";\r\n  $(\"rHVAC\").textContent=includeFull?money(hvac):\"Not included in the selected package\";\r\n  $(\"rEngineeringTotal\").textContent=money(engineeringTotal);\r\n\r\n  $(\"rTopo\").textContent=includeFull?money(topo):\"Not included in the selected package\";\r\n  $(\"rGeology\").textContent=includeFull?money(geology):\"Not included in the selected package\";\r\n  $(\"rDocumentation\").textContent=money(documentation);\r\n  $(\"rResearchTotal\").textContent=money(researchTotal);\r\n\r\n  $(\"r3dModel\").textContent=has3d?money(model3d):\"Not selected\";\r\n  $(\"rRenders\").textContent=has3d?money(renders):\"Not selected\";\r\n  $(\"rPresentation\").textContent=has3d?money(presentation):\"Not selected\";\r\n  $(\"r3dTotal\").textContent=money(total3d);\r\n\r\n  $(\"rArchitectureSummary\").textContent=money(architectureTotal);\r\n  $(\"rStructuralSummary\").textContent=money(structuralTotal);\r\n  $(\"rEngineeringSummary\").textContent=money(engineeringTotal);\r\n  $(\"rExtrasSummary\").textContent=money(researchTotal+total3d);\r\n\r\n  $(\"rTotal\").textContent=money(grandTotal);\r\n  $(\"rRate\").textContent=\r\n    \"Average \"+money(effectiveRate)+\" \/ m\u00b2\";\r\n\r\n  $(\"dvOutput\").classList.remove(\"dv-show\");\r\n  void $(\"dvOutput\").offsetWidth;\r\n  $(\"dvOutput\").classList.add(\"dv-show\");\r\n\r\n  window.setTimeout(function(){\r\n    $(\"dvOutput\").scrollIntoView({\r\n      behavior:\"smooth\",\r\n      block:\"start\"\r\n    });\r\n  },120);\r\n\r\n  return true;\r\n}\r\n\r\nconst dvArchitectureCalculate=$(\"dvArchitectureCalculateFreeFlowV2\");\r\n\r\nif(dvArchitectureCalculate){\r\n  dvArchitectureCalculate.addEventListener(\"click\",async function(event){\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    event.stopImmediatePropagation();\r\n\r\n    if(dvArchitectureClickBusy)return;\r\n    dvArchitectureClickBusy=true;\r\n\r\n    const button=this;\r\n    const originalText=button.textContent;\r\n\r\n    button.disabled=true;\r\n    button.textContent=\"Checking access...\";\r\n\r\n    try{\r\n      const access=await authorizeArchitectureFlow();\r\n      if(!access||!access.allowed)return;\r\n\r\n      const success=calculateArchitecture(true);\r\n      if(!success)return;\r\n\r\n      triggerArchitectureCompletedSms();\r\n\r\n      if(access.mode===\"free\"){\r\n        const claimed=await claimArchitectureFreeCalculation();\r\n\r\n        if(claimed){\r\n          showArchitectureFreeNextStep();\r\n        }\r\n      }\r\n    }finally{\r\n      button.disabled=false;\r\n      button.textContent=originalText;\r\n      dvArchitectureClickBusy=false;\r\n    }\r\n  },true);\r\n}\r\n\r\n\r\n\r\n\/*\r\n * GoSMS \u2014 Architecture Calculator\r\n * calculator id: architecture\r\n *\/\r\nconst dvArchitectureCallRequest=$(\"dvArchitectureCallRequest\");\r\nconst dvArchitectureRequestCall=$(\"dvArchitectureRequestCall\");\r\nconst dvArchitectureCallPhone=$(\"dvArchitectureCallPhone\");\r\nconst dvArchitectureCallStatus=$(\"dvArchitectureCallStatus\");\r\nconst dvArchitectureCallRow=$(\"dvArchitectureCallRow\");\r\n\r\nlet dvArchitectureCallConfig={\r\n  enabled:false,\r\n  isLoggedIn:false,\r\n  hasSavedPhone:false\r\n};\r\n\r\nfunction architectureAjaxUrl(){\r\n  return(\r\n    window.cpdf_auth &&\r\n    window.cpdf_auth.ajaxurl\r\n  )\r\n    ?window.cpdf_auth.ajaxurl\r\n    :\"\/wp-admin\/admin-ajax.php\";\r\n}\r\n\r\nfunction setArchitectureCallStatus(message,type){\r\n  if(!dvArchitectureCallStatus)return;\r\n\r\n  dvArchitectureCallStatus.textContent=message||\"\";\r\n  dvArchitectureCallStatus.classList.remove(\"dv-success\",\"dv-error\");\r\n\r\n  if(type){\r\n    dvArchitectureCallStatus.classList.add(\r\n      type===\"success\"?\"dv-success\":\"dv-error\"\r\n    );\r\n  }\r\n}\r\n\r\nfunction syncArchitectureCallPhoneVisibility(){\r\n  const useSavedPhone=\r\n    dvArchitectureCallConfig.isLoggedIn &&\r\n    dvArchitectureCallConfig.hasSavedPhone;\r\n\r\n  if(dvArchitectureCallRow){\r\n    dvArchitectureCallRow.classList.toggle(\r\n      \"dv-has-saved-phone\",\r\n      useSavedPhone\r\n    );\r\n  }\r\n\r\n  if(dvArchitectureCallPhone){\r\n    dvArchitectureCallPhone.required=!useSavedPhone;\r\n    if(useSavedPhone)dvArchitectureCallPhone.value=\"\";\r\n  }\r\n}\r\n\r\nasync function loadArchitectureCallConfig(){\r\n  try{\r\n    const response=await fetch(\r\n      architectureAjaxUrl()+\r\n      \"?action=gosms_call_request_config&calculator=architecture&_=\"+\r\n      Date.now(),\r\n      {\r\n        method:\"GET\",\r\n        credentials:\"same-origin\",\r\n        cache:\"no-store\"\r\n      }\r\n    );\r\n\r\n    const json=await response.json();\r\n    if(!json||!json.success||!json.data)return;\r\n\r\n    dvArchitectureCallConfig={\r\n      enabled:json.data.enabled===true,\r\n      isLoggedIn:json.data.is_logged_in===true,\r\n      hasSavedPhone:json.data.has_saved_phone===true\r\n    };\r\n\r\n    if(dvArchitectureCallRequest){\r\n      dvArchitectureCallRequest.style.display=\r\n        dvArchitectureCallConfig.enabled?\"block\":\"none\";\r\n    }\r\n\r\n    syncArchitectureCallPhoneVisibility();\r\n\r\n  }catch(error){\r\n    if(dvArchitectureCallRequest){\r\n      dvArchitectureCallRequest.style.display=\"none\";\r\n    }\r\n  }\r\n}\r\n\r\nasync function requestArchitectureCompanyCall(){\r\n  if(!dvArchitectureRequestCall||!dvArchitectureCallConfig.enabled)return;\r\n\r\n  const useSavedPhone=\r\n    dvArchitectureCallConfig.isLoggedIn &&\r\n    dvArchitectureCallConfig.hasSavedPhone;\r\n\r\n  const phone=\r\n    !useSavedPhone&&dvArchitectureCallPhone\r\n      ?String(dvArchitectureCallPhone.value||\"\").trim()\r\n      :\"\";\r\n\r\n  if(!useSavedPhone&&!phone){\r\n    setArchitectureCallStatus(\r\n      \"Please enter your phone number, e.g. 599123456\",\r\n      \"error\"\r\n    );\r\n    if(dvArchitectureCallPhone)dvArchitectureCallPhone.focus();\r\n    return;\r\n  }\r\n\r\n  const originalText=dvArchitectureRequestCall.textContent;\r\n  dvArchitectureRequestCall.disabled=true;\r\n  dvArchitectureRequestCall.textContent=\"Sending...\";\r\n  setArchitectureCallStatus(\"\",null);\r\n\r\n  try{\r\n    const body=new URLSearchParams();\r\n    body.set(\"action\",\"gosms_request_call\");\r\n    body.set(\"calculator\",\"architecture\");\r\n    if(phone)body.set(\"phone\",phone);\r\n\r\n    const response=await fetch(architectureAjaxUrl(),{\r\n      method:\"POST\",\r\n      credentials:\"same-origin\",\r\n      headers:{\r\n        \"Content-Type\":\"application\/x-www-form-urlencoded; charset=UTF-8\"\r\n      },\r\n      body:body.toString()\r\n    });\r\n\r\n    const json=await response.json();\r\n\r\n    if(json&&json.success){\r\n      setArchitectureCallStatus(\r\n        json.data&&json.data.message\r\n          ?json.data.message\r\n          :\"Your request has been received. You will be contacted soon.\",\r\n        \"success\"\r\n      );\r\n      return;\r\n    }\r\n\r\n    const data=json&&json.data?json.data:{};\r\n\r\n    if(data&&data.disabled){\r\n      dvArchitectureCallConfig.enabled=false;\r\n      if(dvArchitectureCallRequest){\r\n        dvArchitectureCallRequest.style.display=\"none\";\r\n      }\r\n      return;\r\n    }\r\n\r\n    if(data&&data.need_phone){\r\n      dvArchitectureCallConfig.hasSavedPhone=false;\r\n      syncArchitectureCallPhoneVisibility();\r\n      setArchitectureCallStatus(\r\n        data.message||\"Please enter your phone number.\",\r\n        \"error\"\r\n      );\r\n      if(dvArchitectureCallPhone)dvArchitectureCallPhone.focus();\r\n      return;\r\n    }\r\n\r\n    setArchitectureCallStatus(\r\n      data&&data.message\r\n        ?data.message\r\n        :\"Unable to send the request. Please try again.\",\r\n      \"error\"\r\n    );\r\n  }catch(error){\r\n    setArchitectureCallStatus(\r\n      \"Unable to send the request. Please try again.\",\r\n      \"error\"\r\n    );\r\n  }finally{\r\n    dvArchitectureRequestCall.disabled=false;\r\n    dvArchitectureRequestCall.textContent=originalText;\r\n  }\r\n}\r\n\r\nasync function triggerArchitectureCompletedSms(){\r\n  try{\r\n    const body=new URLSearchParams();\r\n    body.set(\"action\",\"gosms_calculator_completed\");\r\n    body.set(\"calculator\",\"architecture\");\r\n\r\n    await fetch(architectureAjaxUrl(),{\r\n      method:\"POST\",\r\n      credentials:\"same-origin\",\r\n      headers:{\r\n        \"Content-Type\":\"application\/x-www-form-urlencoded; charset=UTF-8\"\r\n      },\r\n      body:body.toString()\r\n    });\r\n  }catch(error){\r\n    \/* SMS must never block or break the calculator. *\/\r\n  }\r\n}\r\n\r\nloadArchitectureCallConfig();\r\n\r\nif(dvArchitectureRequestCall){\r\n  dvArchitectureRequestCall.addEventListener(\r\n    \"click\",\r\n    requestArchitectureCompanyCall\r\n  );\r\n}\r\n\r\n\r\n\/*\r\n * Direct PDF download.\r\n * Text is rendered on canvas\r\n * to avoid limitations of jsPDF standard fonts.\r\n *\/\r\n\r\nconst pdfButton=$(\"dvPdf\");\r\n\r\nif(pdfButton){\r\n\r\n  pdfButton.addEventListener(\"click\",async function(){\r\n\r\n    if(!$(\"dvOutput\").classList.contains(\"dv-show\")){\r\n      const access=await authorizeArchitectureFlow();\r\n      if(!access||!access.allowed)return;\r\n\r\n      const success=calculateArchitecture(true);\r\n      if(!success)return;\r\n\r\n      triggerArchitectureCompletedSms();\r\n\r\n      if(access.mode===\"free\"){\r\n        const claimed=await claimArchitectureFreeCalculation();\r\n\r\n        if(claimed){\r\n          showArchitectureFreeNextStep();\r\n        }\r\n      }\r\n    }\r\n\r\n    const originalHTML=pdfButton.innerHTML;\r\n\r\n    pdfButton.disabled=true;\r\n    pdfButton.textContent=\"Preparing PDF...\";\r\n\r\n    const jsPDFCtor=\r\n      window.jspdf&&window.jspdf.jsPDF\r\n        ?window.jspdf.jsPDF\r\n        :null;\r\n\r\n    if(!jsPDFCtor){\r\n      pdfButton.disabled=false;\r\n      pdfButton.innerHTML=originalHTML;\r\n      alert(\"The jsPDF generator could not be loaded. Please refresh the page and try again.\");\r\n      return;\r\n    }\r\n\r\n    try{\r\n\r\n      const doc=new jsPDFCtor({\r\n        orientation:\"portrait\",\r\n        unit:\"mm\",\r\n        format:\"a4\",\r\n        compress:true\r\n      });\r\n\r\n      const pageWidth=doc.internal.pageSize.getWidth();\r\n      const pageHeight=doc.internal.pageSize.getHeight();\r\n\r\n      const marginX=14;\r\n      const topMargin=14;\r\n      const bottomMargin=14;\r\n      const contentWidth=pageWidth-marginX*2;\r\n\r\n      let y=topMargin;\r\n\r\n      const blue=[11,58,120];\r\n      const lightBlue=[244,248,253];\r\n      const border=[216,227,239];\r\n\r\n\r\n      async function textToPng(text,options){\r\n\r\n        const opts=Object.assign({\r\n          fontSize:18,\r\n          fontWeight:700,\r\n          color:\"#173558\",\r\n          width:800,\r\n          align:\"left\",\r\n          paddingX:4,\r\n          paddingY:2\r\n        },options||{});\r\n\r\n        const canvas=document.createElement(\"canvas\");\r\n        const scale=2;\r\n\r\n        canvas.width=Math.max(20,Math.ceil(opts.width*scale));\r\n        canvas.height=Math.max(\r\n          28,\r\n          Math.ceil((opts.fontSize*1.8+opts.paddingY*2)*scale)\r\n        );\r\n\r\n        const ctx=canvas.getContext(\"2d\");\r\n\r\n        ctx.scale(scale,scale);\r\n        ctx.clearRect(0,0,canvas.width\/scale,canvas.height\/scale);\r\n\r\n        ctx.fillStyle=opts.color;\r\n        ctx.font=opts.fontWeight+\" \"+opts.fontSize+'px \"Segoe UI\", Arial, sans-serif';\r\n        ctx.textBaseline=\"middle\";\r\n\r\n        let x=opts.paddingX;\r\n\r\n        if(opts.align===\"center\"){\r\n          ctx.textAlign=\"center\";\r\n          x=opts.width\/2;\r\n        }else if(opts.align===\"right\"){\r\n          ctx.textAlign=\"right\";\r\n          x=opts.width-opts.paddingX;\r\n        }else{\r\n          ctx.textAlign=\"left\";\r\n        }\r\n\r\n        let currentFontSize=opts.fontSize;\r\n        const availableWidth=opts.width-opts.paddingX*2;\r\n        const value=String(text||\"\");\r\n\r\n        while(\r\n          currentFontSize>10 &&\r\n          ctx.measureText(value).width>availableWidth\r\n        ){\r\n          currentFontSize-=1;\r\n          ctx.font=opts.fontWeight+\" \"+currentFontSize+'px \"Segoe UI\", Arial, sans-serif';\r\n        }\r\n\r\n        ctx.fillText(\r\n          value,\r\n          x,\r\n          canvas.height\/scale\/2\r\n        );\r\n\r\n        return{\r\n          data:canvas.toDataURL(\"image\/png\"),\r\n          width:opts.width,\r\n          height:canvas.height\/scale\r\n        };\r\n      }\r\n\r\n\r\n      async function addTextImage(text,x,yPos,widthPx,mmWidth,options){\r\n\r\n        const rendered=await textToPng(\r\n          text,\r\n          Object.assign({width:widthPx},options||{})\r\n        );\r\n\r\n        const mmHeight=mmWidth*(rendered.height\/rendered.width);\r\n\r\n        doc.addImage(\r\n          rendered.data,\r\n          \"PNG\",\r\n          x,\r\n          yPos,\r\n          mmWidth,\r\n          mmHeight,\r\n          undefined,\r\n          \"FAST\"\r\n        );\r\n\r\n        return mmHeight;\r\n      }\r\n\r\n\r\n      function ensureSpace(needed){\r\n\r\n        if(y+needed>pageHeight-bottomMargin){\r\n          doc.addPage();\r\n          y=topMargin;\r\n        }\r\n      }\r\n\r\n\r\n      let titleHeight=await addTextImage(\r\n        \"Architectural Project Cost Estimate\",\r\n        marginX,\r\n        y,\r\n        900,\r\n        contentWidth,\r\n        {\r\n          fontSize:36,\r\n          fontWeight:800,\r\n          color:\"#0b3a78\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n      y+=titleHeight+2;\r\n\r\n\r\n      let subHeight=await addTextImage(\r\n        \"Datvale.ge\",\r\n        marginX,\r\n        y,\r\n        700,\r\n        contentWidth,\r\n        {\r\n          fontSize:16,\r\n          fontWeight:700,\r\n          color:\"#304a66\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n      y+=subHeight+7;\r\n\r\n\r\n      ensureSpace(80);\r\n\r\n      doc.setFillColor(...blue);\r\n      doc.roundedRect(marginX,y,contentWidth,9,2,2,\"F\");\r\n\r\n      await addTextImage(\r\n        \"Input Data\",\r\n        marginX+2,\r\n        y+.7,\r\n        850,\r\n        contentWidth-4,\r\n        {\r\n          fontSize:20,\r\n          fontWeight:800,\r\n          color:\"#ffffff\",\r\n          align:\"left\"\r\n        }\r\n      );\r\n\r\n      y+=11;\r\n\r\n\r\n      const selectedText=function(id){\r\n        const select=$(id);\r\n        if(!select||select.selectedIndex<0)return \"\u2014\";\r\n        return select.options[select.selectedIndex].text.trim();\r\n      };\r\n\r\n\r\n      const inputRows=[\r\n        [\"Building area\",numberValue(\"dvArea\")+\" m\u00b2\"],\r\n        [\"Building type\",selectedText(\"dvBuildingType\")],\r\n        [\"Number of floors\",selectedText(\"dvFloors\")],\r\n        [\"Project package\",selectedText(\"dvPackage\")],\r\n        [\"Architectural complexity\",selectedText(\"dvComplexity\")],\r\n        [\"3D visualization\",selectedText(\"dv3d\")]\r\n      ];\r\n\r\n\r\n      for(const row of inputRows){\r\n\r\n        ensureSpace(14);\r\n\r\n        await addTextImage(\r\n          row[0],\r\n          marginX+3,\r\n          y+.7,\r\n          900,\r\n          contentWidth*.68,\r\n          {\r\n            fontSize:18,\r\n            fontWeight:700,\r\n            color:\"#173558\",\r\n            align:\"left\"\r\n          }\r\n        );\r\n\r\n        await addTextImage(\r\n          row[1],\r\n          marginX+contentWidth*.70,\r\n          y+.7,\r\n          400,\r\n          contentWidth*.27,\r\n          {\r\n            fontSize:18,\r\n            fontWeight:800,\r\n            color:\"#071f39\",\r\n            align:\"right\"\r\n          }\r\n        );\r\n\r\n        doc.setDrawColor(225,233,242);\r\n        doc.line(\r\n          marginX+3,\r\n          y+9,\r\n          marginX+contentWidth-3,\r\n          y+9\r\n        );\r\n\r\n        y+=12;\r\n      }\r\n\r\n      y+=5;\r\n\r\n\r\n      const resultCards=$(\"dvOutput\").querySelectorAll(\r\n        \".dv-results .dv-result-card\"\r\n      );\r\n\r\n\r\n      for(const card of resultCards){\r\n\r\n        const titleSource=card.querySelector(\".dv-result-head h3\");\r\n        const rows=Array.from(card.querySelectorAll(\".dv-row\"));\r\n        const totalSource=card.querySelector(\".dv-card-total\");\r\n\r\n        const estimatedHeight=\r\n          13+\r\n          rows.length*12+\r\n          (totalSource?13:4);\r\n\r\n        ensureSpace(estimatedHeight);\r\n\r\n        doc.setDrawColor(...border);\r\n        doc.roundedRect(\r\n          marginX,\r\n          y,\r\n          contentWidth,\r\n          estimatedHeight,\r\n          2,\r\n          2,\r\n          \"S\"\r\n        );\r\n\r\n        doc.setFillColor(...blue);\r\n        doc.roundedRect(\r\n          marginX,\r\n          y,\r\n          contentWidth,\r\n          9,\r\n          2,\r\n          2,\r\n          \"F\"\r\n        );\r\n\r\n        await addTextImage(\r\n          titleSource?titleSource.textContent.trim():\"\",\r\n          marginX+2,\r\n          y+.7,\r\n          850,\r\n          contentWidth-4,\r\n          {\r\n            fontSize:20,\r\n            fontWeight:800,\r\n            color:\"#ffffff\",\r\n            align:\"left\"\r\n          }\r\n        );\r\n\r\n        y+=11;\r\n\r\n\r\n        for(const row of rows){\r\n\r\n          const nameSource=row.querySelector(\".dv-row-name\");\r\n          const valueSource=row.querySelector(\".dv-row-value\");\r\n\r\n          await addTextImage(\r\n            nameSource?nameSource.textContent.trim():\"\",\r\n            marginX+3,\r\n            y+.7,\r\n            900,\r\n            contentWidth*.68,\r\n            {\r\n              fontSize:18,\r\n              fontWeight:700,\r\n              color:\"#173558\",\r\n              align:\"left\"\r\n            }\r\n          );\r\n\r\n          await addTextImage(\r\n            valueSource?valueSource.textContent.trim():\"\",\r\n            marginX+contentWidth*.70,\r\n            y+.7,\r\n            400,\r\n            contentWidth*.27,\r\n            {\r\n              fontSize:18,\r\n              fontWeight:800,\r\n              color:\"#071f39\",\r\n              align:\"right\"\r\n            }\r\n          );\r\n\r\n          doc.setDrawColor(225,233,242);\r\n          doc.line(\r\n            marginX+3,\r\n            y+9,\r\n            marginX+contentWidth-3,\r\n            y+9\r\n          );\r\n\r\n          y+=12;\r\n        }\r\n\r\n\r\n        if(totalSource){\r\n\r\n          doc.setFillColor(...lightBlue);\r\n          doc.setDrawColor(...border);\r\n\r\n          doc.roundedRect(\r\n            marginX+3,\r\n            y,\r\n            contentWidth-6,\r\n            10,\r\n            1.5,\r\n            1.5,\r\n            \"FD\"\r\n          );\r\n\r\n          await addTextImage(\r\n            totalSource.textContent.replace(\/\\s+\/g,\" \").trim(),\r\n            marginX+4,\r\n            y+.8,\r\n            900,\r\n            contentWidth-8,\r\n            {\r\n              fontSize:18,\r\n              fontWeight:800,\r\n              color:\"#071f39\",\r\n              align:\"right\"\r\n            }\r\n          );\r\n\r\n          y+=12;\r\n        }else{\r\n          y+=3;\r\n        }\r\n\r\n        y+=4;\r\n      }\r\n\r\n\r\n      ensureSpace(54);\r\n\r\n      await addTextImage(\r\n        \"Cost Summary\",\r\n        marginX,\r\n        y,\r\n        850,\r\n        contentWidth,\r\n        {\r\n          fontSize:23,\r\n          fontWeight:800,\r\n          color:\"#071f39\",\r\n          align:\"left\"\r\n        }\r\n      );\r\n\r\n      y+=12;\r\n\r\n\r\n      const summaryItems=Array.from(\r\n        $(\"dvOutput\").querySelectorAll(\".dv-summary-item\")\r\n      );\r\n\r\n      const sGap=3;\r\n      const sBoxWidth=(contentWidth-sGap*3)\/4;\r\n\r\n\r\n      for(let i=0;i<summaryItems.length;i++){\r\n\r\n        const item=summaryItems[i];\r\n\r\n        const labelSource=item.querySelector(\".dv-summary-label\");\r\n        const valueSource=item.querySelector(\".dv-summary-value\");\r\n\r\n        const x=marginX+i*(sBoxWidth+sGap);\r\n\r\n        doc.setFillColor(...lightBlue);\r\n        doc.setDrawColor(...border);\r\n\r\n        doc.roundedRect(\r\n          x,\r\n          y,\r\n          sBoxWidth,\r\n          18,\r\n          2,\r\n          2,\r\n          \"FD\"\r\n        );\r\n\r\n        await addTextImage(\r\n          labelSource?labelSource.textContent.trim():\"\",\r\n          x+1.5,\r\n          y+1.5,\r\n          420,\r\n          sBoxWidth-3,\r\n          {\r\n            fontSize:17,\r\n            fontWeight:800,\r\n            color:\"#071f39\",\r\n            align:\"center\"\r\n          }\r\n        );\r\n\r\n        await addTextImage(\r\n          valueSource?valueSource.textContent.trim():\"\",\r\n          x+1.5,\r\n          y+8.5,\r\n          420,\r\n          sBoxWidth-3,\r\n          {\r\n            fontSize:18,\r\n            fontWeight:800,\r\n            color:\"#071f39\",\r\n            align:\"center\"\r\n          }\r\n        );\r\n      }\r\n\r\n\r\n      y+=21;\r\n\r\n      ensureSpace(27);\r\n\r\n      doc.setFillColor(...blue);\r\n\r\n      doc.roundedRect(\r\n        marginX,\r\n        y,\r\n        contentWidth,\r\n        18,\r\n        2,\r\n        2,\r\n        \"F\"\r\n      );\r\n\r\n      await addTextImage(\r\n        \"Estimated Total Cost of the Architectural Project\",\r\n        marginX+2,\r\n        y+2,\r\n        850,\r\n        contentWidth-4,\r\n        {\r\n          fontSize:13,\r\n          fontWeight:700,\r\n          color:\"#ffffff\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n      await addTextImage(\r\n        $(\"rTotal\").textContent.trim(),\r\n        marginX+2,\r\n        y+8,\r\n        850,\r\n        contentWidth-4,\r\n        {\r\n          fontSize:34,\r\n          fontWeight:800,\r\n          color:\"#ffffff\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n      y+=22;\r\n\r\n\r\n      ensureSpace(12);\r\n\r\n      await addTextImage(\r\n        $(\"rRate\").textContent.trim(),\r\n        marginX,\r\n        y,\r\n        850,\r\n        contentWidth,\r\n        {\r\n          fontSize:14,\r\n          fontWeight:700,\r\n          color:\"#425a74\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n      y+=9;\r\n\r\n\r\n      ensureSpace(10);\r\n\r\n      await addTextImage(\r\n        \"Datvale.ge \u2014 The calculated amount is an estimated cost.\",\r\n        marginX,\r\n        y,\r\n        850,\r\n        contentWidth,\r\n        {\r\n          fontSize:13,\r\n          fontWeight:600,\r\n          color:\"#425a74\",\r\n          align:\"center\"\r\n        }\r\n      );\r\n\r\n\r\n      doc.save(\r\n        \"Datvale-architecture-cost-estimate.pdf\"\r\n      );\r\n\r\n    }catch(error){\r\n\r\n      console.error(\r\n        \"Datvale Architecture PDF generation error:\",\r\n        error\r\n      );\r\n\r\n      alert(\r\n        \"Unable to create the PDF.\"\r\n      );\r\n\r\n    }finally{\r\n\r\n      pdfButton.disabled=false;\r\n      pdfButton.innerHTML=originalHTML;\r\n    }\r\n\r\n  });\r\n}\r\n\r\n})();\r\n<\/script>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b814932 e-flex e-con-boxed e-con e-parent\" data-id=\"b814932\" 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-34561b9 elementor-widget elementor-widget-html\" data-id=\"34561b9\" 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-e19ecfc e-flex e-con-boxed e-con e-parent\" data-id=\"e19ecfc\" 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-eceda91 elementor-widget elementor-widget-html\" data-id=\"eceda91\" 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        <div class=\"dv-type\">\r\n          Lighting Store\r\n        <\/div>\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        <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        <div class=\"dv-type\">\r\n          Construction & Renovation Hypermarket\r\n        <\/div>\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        <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        <div class=\"dv-type\">\r\n          Sanitary Ware & Ceramic Tiles\r\n        <\/div>\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        <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        <div class=\"dv-type\">\r\n          Paints & Finishing Materials\r\n        <\/div>\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        <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-edc7689 e-flex e-con-boxed e-con e-parent\" data-id=\"edc7689\" 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-229ff56 elementor-widget elementor-widget-text-editor\" data-id=\"229ff56\" 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<h3>Block Fence cost &#8211; Cost and Required Materials<\/h3>\n<p><strong>Building a block fence<\/strong> starts with proper planning and estimating the required quantity of materials in advance. The final cost of the fence depends on its length, height, foundation dimensions, the type of block used, the amount of concrete and reinforcement, the complexity of the work, and other additional expenses.<\/p>\n<p>The Datvale.ge Block Fence Calculator helps you estimate the main materials required for the project and the approximate budget in advance. Enter the main dimensions of the fence and the required parameters, and the calculator will automatically calculate the relevant data.<\/p>\n<h3>What Determines the Cost of a Block Fence?<\/h3>\n<p>The cost of a block fence is not the same for every project. The total length and height of the fence have a significant impact on the final cost. The larger the fence, the more blocks, concrete, reinforcement, and other construction materials will be required.<\/p>\n<p>The foundation is also important. A strong and properly constructed foundation is one of the key elements of a durable and stable fence. Therefore, <strong>building a block fence<\/strong> involves more than simply calculating the number of blocks. When planning the budget, you should also consider the foundation, structural elements, materials, and labor.<\/p>\n<h3>How to Use the Block Fence Calculator<\/h3>\n<p>First, enter the main dimensions of the fence into the calculator. Then select the relevant parameters, and the system will automatically calculate the approximate project data.<\/p>\n<p>A preliminary calculation is especially useful when you want to compare several options. For example, you can change the fence dimensions or other parameters and see how the estimated cost changes.<\/p>\n<p>This approach allows you to start <strong>building a block fence<\/strong> with better planning and a clearer understanding of the expected budget.<\/p>\n<h3>What Materials Are Required for a Block Fence?<\/h3>\n<p>The exact list of materials varies depending on the project, but the main materials typically required for a block fence include blocks, concrete, reinforcement, and materials needed for the foundation. Additional construction materials may also be required depending on the selected structure and project specifications.<\/p>\n<p>For this reason, calculating the full budget based only on the price per square meter or linear meter is not always accurate. For a better estimate, the specific dimensions and parameters of the fence should be taken into account.<\/p>\n<h3>How Much Does It Cost to Build a Block Fence?<\/h3>\n<p>There is no single fixed answer to the question, <strong>How much does it cost to build a block fence?<\/strong> The price varies depending on the scope of the project, materials, foundation, labor, and specific site conditions.<\/p>\n<p>The purpose of the Datvale.ge calculator is to provide an approximate estimate before work begins and help you plan your expenses more effectively. The final cost should be verified based on the specific project, site conditions, and current prices for materials and labor.<\/p>\n<h3>Why Should You Calculate the Costs in Advance?<\/h3>\n<p>A preliminary cost estimate helps you determine the required budget, compare different options, and reduce the risk of unexpected expenses during construction.<\/p>\n<p>If you are planning <strong>block fence construction<\/strong>, complete the calculator above and receive an estimate based on your project parameters. Based on the results, you can also plan the stages of the work in advance.<\/p>\n<p>Follow us on <a href=\"http:\/\/facebook.com\/datvale.ge\">Facebook<\/a> and <a href=\"http:\/\/youtube.com\/@datvale\" target=\"_blank\" rel=\"noopener\">YouTube<\/a>.<\/p>\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<div class=\"elementor-element elementor-element-409c014 e-flex e-con-boxed e-con e-parent\" data-id=\"409c014\" 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-0394f99 elementor-widget elementor-widget-image\" data-id=\"0394f99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"298\" src=\"https:\/\/datvale.ge\/wp-content\/uploads\/2026\/08\/blokis-gobe-1-1024x298.webp\" class=\"attachment-large size-large wp-image-21789\" alt=\"Block Fence Cost\" srcset=\"https:\/\/datvale.ge\/wp-content\/uploads\/2026\/08\/blokis-gobe-1-1024x298.webp 1024w, https:\/\/datvale.ge\/wp-content\/uploads\/2026\/08\/blokis-gobe-1-300x87.webp 300w, https:\/\/datvale.ge\/wp-content\/uploads\/2026\/08\/blokis-gobe-1-768x224.webp 768w, https:\/\/datvale.ge\/wp-content\/uploads\/2026\/08\/blokis-gobe-1.webp 1100w, https:\/\/datvale.ge\/wp-content\/uploads\/2026\/08\/blokis-gobe-1-600x175.webp 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\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>Block Fence Cost 2026 \u2013 Fence Calculator Select project characteristics Building area m\u00b2 Building type Private houseCottageCommercial property Number of floors 1 floor2 floors3 floors4+ floors Project package Concept designArchitectural designFull project Architectural complexity StandardComplexCustom \/ Premium 3D visualization Not requiredWith 3D visualization Calculate architecture cost Please enter the building area correctly. \u2713 Free calculation&#8230;<\/p>\n","protected":false},"author":67,"featured_media":0,"parent":0,"menu_order":9,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-21790","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages\/21790","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=21790"}],"version-history":[{"count":1,"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages\/21790\/revisions"}],"predecessor-version":[{"id":22098,"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/pages\/21790\/revisions\/22098"}],"wp:attachment":[{"href":"https:\/\/datvale.ge\/en\/wp-json\/wp\/v2\/media?parent=21790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}