{"id":2608,"date":"2026-06-15T09:05:18","date_gmt":"2026-06-15T09:05:18","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=2608"},"modified":"2026-06-24T04:19:21","modified_gmt":"2026-06-24T04:19:21","slug":"paver-calculator","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/paver-calculator\/","title":{"rendered":"Paver Calculator"},"content":{"rendered":"\n<div class=\"pcalc-wrapper\" id=\"pcalc-root\">\n    <style>\n        :root {\n            --pcalc-bg: #f8f7f4;\n            --pcalc-card: #ffffff;\n            --pcalc-text: #1a1a1a;\n            --pcalc-text-secondary: #5c5c5c;\n            --pcalc-border: #e2e0da;\n            --pcalc-border-focus: #c8c5bd;\n            --pcalc-teal: #1ecad3;\n            --pcalc-teal-deep: #17a8b0;\n            --pcalc-purple: #9486f7;\n            --pcalc-purple-deep: #7b6de0;\n            --pcalc-radius: 10px;\n            --pcalc-radius-sm: 6px;\n            --pcalc-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n            --pcalc-transition: 0.18s ease;\n        }\n\n        .pcalc-wrapper {\n            font-family: var(--pcalc-font);\n            color: var(--pcalc-text);\n            background: var(--pcalc-bg);\n            padding: 32px 28px;\n            border-radius: 14px;\n            max-width: 720px;\n            margin: 0 auto;\n            box-sizing: border-box;\n            line-height: 1.5;\n            -webkit-font-smoothing: antialiased;\n            -moz-osx-font-smoothing: grayscale;\n        }\n        .pcalc-wrapper *,\n        .pcalc-wrapper *::before,\n        .pcalc-wrapper *::after {\n            box-sizing: border-box;\n        }\n\n        \/* Toggle *\/\n        .pcalc-toggle-group {\n            display: flex;\n            align-items: center;\n            gap: 0;\n            background: #eae7e1;\n            border-radius: 28px;\n            padding: 4px;\n            margin-bottom: 28px;\n            width: fit-content;\n        }\n        .pcalc-toggle-btn {\n            font-family: var(--pcalc-font);\n            font-size: 13.5px;\n            font-weight: 600;\n            letter-spacing: 0.01em;\n            padding: 9px 20px;\n            border-radius: 24px;\n            border: none;\n            background: transparent;\n            color: var(--pcalc-text-secondary);\n            cursor: pointer;\n            transition: all var(--pcalc-transition);\n            white-space: nowrap;\n            user-select: none;\n            -webkit-tap-highlight-color: transparent;\n        }\n        .pcalc-toggle-btn.active {\n            background: #ffffff;\n            color: var(--pcalc-text);\n            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 8px rgba(0, 0, 0, 0.04);\n            cursor: default;\n            border-left: 3px solid var(--pcalc-purple);\n            border-right: 3px solid var(--pcalc-teal);\n            border-radius: 24px;\n            padding: 9px 17px;\n        }\n        .pcalc-toggle-btn:not(.active):hover {\n            color: #3a3a3a;\n        }\n        .pcalc-toggle-btn:focus-visible {\n            outline: 2px solid var(--pcalc-teal);\n            outline-offset: 2px;\n        }\n\n        \/* Section cards *\/\n        .pcalc-section {\n            background: var(--pcalc-card);\n            border: 1px solid var(--pcalc-border);\n            border-radius: var(--pcalc-radius);\n            padding: 22px 24px;\n            margin-bottom: 16px;\n        }\n        .pcalc-section-title {\n            font-size: 13px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 0.06em;\n            color: var(--pcalc-text-secondary);\n            margin: 0 0 14px 0;\n        }\n\n        \/* Form rows *\/\n        .pcalc-row {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 12px 18px;\n            align-items: flex-end;\n            margin-bottom: 10px;\n        }\n        .pcalc-row:last-child {\n            margin-bottom: 0;\n        }\n        .pcalc-field {\n            display: flex;\n            flex-direction: column;\n            gap: 4px;\n            flex: 1;\n            min-width: 70px;\n        }\n        .pcalc-field label {\n            font-size: 12px;\n            font-weight: 600;\n            color: var(--pcalc-text-secondary);\n            letter-spacing: 0.02em;\n            text-transform: uppercase;\n        }\n        .pcalc-field input,\n        .pcalc-field select {\n            font-family: var(--pcalc-font);\n            font-size: 15px;\n            padding: 10px 12px;\n            border: 1px solid var(--pcalc-border);\n            border-radius: var(--pcalc-radius-sm);\n            background: #fcfbf9;\n            color: var(--pcalc-text);\n            transition: border-color var(--pcalc-transition), box-shadow var(--pcalc-transition);\n            width: 100%;\n            -webkit-appearance: none;\n            appearance: none;\n            min-width: 0;\n        }\n        .pcalc-field input:focus,\n        .pcalc-field select:focus {\n            outline: none;\n            border-color: var(--pcalc-teal);\n            box-shadow: 0 0 0 3px rgba(30, 202, 211, 0.10);\n            background: #fff;\n        }\n        .pcalc-field select {\n            background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235c5c5c' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'\/%3E%3C\/svg%3E\");\n            background-repeat: no-repeat;\n            background-position: right 12px center;\n            padding-right: 34px;\n            cursor: pointer;\n        }\n        .pcalc-unit-suffix {\n            font-size: 12px;\n            font-weight: 600;\n            color: var(--pcalc-text-secondary);\n            letter-spacing: 0.03em;\n            text-transform: uppercase;\n            white-space: nowrap;\n            align-self: flex-end;\n            padding-bottom: 12px;\n        }\n        .pcalc-field-dual {\n            display: flex;\n            gap: 6px;\n            align-items: center;\n        }\n        .pcalc-field-dual input {\n            flex: 1;\n            min-width: 40px;\n        }\n        .pcalc-field-dual .pcalc-unit-suffix {\n            padding-bottom: 0;\n            align-self: center;\n            font-size: 11px;\n            min-width: 16px;\n            text-align: center;\n        }\n        .pcalc-field-dual-wrap {\n            display: flex;\n            gap: 10px;\n            flex: 1;\n            min-width: 120px;\n        }\n        .pcalc-field-dual-wrap .pcalc-field-dual {\n            flex: 1;\n            gap: 4px;\n        }\n\n        \/* Add area button *\/\n        .pcalc-add-btn {\n            font-family: var(--pcalc-font);\n            font-size: 13px;\n            font-weight: 600;\n            color: var(--pcalc-purple);\n            background: none;\n            border: 1.5px dashed #d5d0e8;\n            border-radius: var(--pcalc-radius-sm);\n            padding: 10px 16px;\n            cursor: pointer;\n            transition: all var(--pcalc-transition);\n            letter-spacing: 0.02em;\n            margin-top: 4px;\n            width: 100%;\n            text-align: center;\n            -webkit-tap-highlight-color: transparent;\n        }\n        .pcalc-add-btn:hover {\n            border-color: var(--pcalc-purple);\n            background: rgba(148, 134, 247, 0.04);\n            color: var(--pcalc-purple-deep);\n        }\n        .pcalc-add-btn:focus-visible {\n            outline: 2px solid var(--pcalc-purple);\n            outline-offset: 2px;\n        }\n        .pcalc-add-btn.remove-mode {\n            border-style: solid;\n            border-color: #e0d8d8;\n            color: #9e8a8a;\n        }\n        .pcalc-add-btn.remove-mode:hover {\n            border-color: #c9a8a8;\n            color: #7a6060;\n            background: rgba(180, 140, 140, 0.06);\n        }\n\n        \/* Action buttons *\/\n        .pcalc-actions {\n            display: flex;\n            gap: 12px;\n            margin-top: 6px;\n            flex-wrap: wrap;\n        }\n        .pcalc-btn {\n            font-family: var(--pcalc-font);\n            font-size: 15px;\n            font-weight: 650;\n            letter-spacing: 0.02em;\n            padding: 13px 28px;\n            border-radius: var(--pcalc-radius-sm);\n            border: none;\n            cursor: pointer;\n            transition: all var(--pcalc-transition);\n            -webkit-tap-highlight-color: transparent;\n            white-space: nowrap;\n            flex: 1 1 0;\n            min-width: 120px;\n            text-align: center;\n        }\n        .pcalc-btn:focus-visible {\n            outline: 2px solid var(--pcalc-teal);\n            outline-offset: 3px;\n        }\n        .pcalc-btn-calculate {\n            background: linear-gradient(135deg, #1ecad3 0%, #9486f7 100%);\n            color: #ffffff;\n            border: none;\n        }\n        .pcalc-btn-calculate:hover {\n            background: linear-gradient(135deg, #17a8b0 0%, #7b6de0 100%);\n            box-shadow: 0 4px 14px rgba(30, 202, 211, 0.30), 0 2px 8px rgba(148, 134, 247, 0.20);\n            transform: translateY(-1px);\n        }\n        .pcalc-btn-calculate:active {\n            background: linear-gradient(135deg, #14969e 0%, #6a5cc9 100%);\n            transform: translateY(0);\n        }\n        .pcalc-btn-reset {\n            background: transparent;\n            color: var(--pcalc-text-secondary);\n            border: 1.5px solid var(--pcalc-border);\n            border-color: #cfcbe6;\n        }\n        .pcalc-btn-reset:hover {\n            border-color: #b9b3dc;\n            color: var(--pcalc-text);\n            background: #faf8ff;\n            box-shadow: 0 2px 8px rgba(148, 134, 247, 0.08);\n        }\n        .pcalc-btn-reset:active {\n            background: #f0eefb;\n        }\n\n        \/* Results *\/\n        .pcalc-results {\n            display: none;\n            background: var(--pcalc-card);\n            border: 1px solid var(--pcalc-border);\n            border-radius: var(--pcalc-radius);\n            padding: 26px 28px;\n            margin-top: 20px;\n            border-left: 4px solid;\n            border-image: linear-gradient(to bottom, #1ecad3, #9486f7) 1;\n            border-image-slice: 1;\n        }\n        .pcalc-results.visible {\n            display: block;\n            animation: pcalc-fadein 0.3s ease;\n        }\n        @keyframes pcalc-fadein {\n            from {\n                opacity: 0;\n                transform: translateY(8px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n        .pcalc-results-title {\n            font-size: 14px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 0.06em;\n            color: var(--pcalc-text-secondary);\n            margin: 0 0 16px 0;\n        }\n        .pcalc-result-grid {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 14px 20px;\n        }\n        @media (max-width: 480px) {\n            .pcalc-result-grid {\n                grid-template-columns: 1fr;\n            }\n            .pcalc-wrapper {\n                padding: 20px 14px;\n            }\n            .pcalc-section {\n                padding: 16px 14px;\n            }\n            .pcalc-row {\n                gap: 8px 10px;\n            }\n            .pcalc-actions {\n                flex-wrap: nowrap;\n                gap: 8px;\n            }\n            .pcalc-btn {\n                font-size: 13px;\n                padding: 12px 8px;\n                flex: 1 1 auto;\n                min-width: 0;\n                white-space: nowrap;\n            }\n        }\n        .pcalc-result-item {\n            background: #fcfbf9;\n            border-radius: var(--pcalc-radius-sm);\n            padding: 14px 16px;\n            border: 1px solid #eceae4;\n        }\n        .pcalc-result-label {\n            font-size: 11px;\n            font-weight: 600;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n            color: var(--pcalc-text-secondary);\n            margin-bottom: 4px;\n        }\n        .pcalc-result-value {\n            font-size: 22px;\n            font-weight: 700;\n            color: var(--pcalc-text);\n            letter-spacing: -0.01em;\n        }\n        .pcalc-result-value.accent-teal {\n            color: var(--pcalc-teal-deep);\n        }\n        .pcalc-result-sub {\n            font-size: 12px;\n            color: var(--pcalc-text-secondary);\n            margin-top: 2px;\n        }\n        .pcalc-result-note {\n            margin-top: 16px;\n            padding: 12px 16px;\n            background: #fdfcfa;\n            border-radius: var(--pcalc-radius-sm);\n            font-size: 12.5px;\n            color: #6b6358;\n            line-height: 1.5;\n            border: 1px solid #ece8df;\n            letter-spacing: 0.01em;\n        }\n        .pcalc-result-note strong {\n            color: #4a3f2f;\n        }\n        .pcalc-divider {\n            border: none;\n            border-top: 1px solid var(--pcalc-border);\n            margin: 14px 0;\n        }\n    <\/style>\n\n    <!-- System Toggle -->\n    <div class=\"pcalc-toggle-group\" role=\"radiogroup\" aria-label=\"Measurement system\">\n        <button class=\"pcalc-toggle-btn active\" data-pcalc-system=\"imperial\" id=\"pcalc-toggle-imperial\" aria-pressed=\"true\">Imperial (US\/UK)<\/button>\n        <button class=\"pcalc-toggle-btn\" data-pcalc-system=\"metric\" id=\"pcalc-toggle-metric\" aria-pressed=\"false\">Metric (AU\/EU)<\/button>\n    <\/div>\n\n    <!-- Paver Size Section -->\n    <div class=\"pcalc-section\">\n        <p class=\"pcalc-section-title\">Paver Specifications<\/p>\n        <div class=\"pcalc-row\">\n            <div class=\"pcalc-field\" style=\"flex:2; min-width:160px;\">\n                <label for=\"pcalc-preset\">Paver Size<\/label>\n                <select id=\"pcalc-preset\">\n                    <option value=\"4x8\">4\u2033 \u00d7 8\u2033 (Standard Brick)<\/option>\n                    <option value=\"6x6\">6\u2033 \u00d7 6\u2033 (Square)<\/option>\n                    <option value=\"12x12\">12\u2033 \u00d7 12\u2033 (Large Square)<\/option>\n                    <option value=\"custom\">Custom Size<\/option>\n                <\/select>\n            <\/div>\n            <div id=\"pcalc-custom-fields\" style=\"display:none; flex:3; min-width:200px;\">\n                <div class=\"pcalc-field-dual-wrap\">\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-custom-length\" placeholder=\"L\" min=\"0.1\" step=\"any\" aria-label=\"Custom paver length\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-custom-unit\">in<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-custom-width\" placeholder=\"W\" min=\"0.1\" step=\"any\" aria-label=\"Custom paver width\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-custom-unit2\">in<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-custom-thickness\" placeholder=\"Thk\" min=\"0.1\" step=\"any\" aria-label=\"Custom paver thickness\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-custom-unit3\">in<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Area Inputs Section -->\n    <div class=\"pcalc-section\" id=\"pcalc-area-section\">\n        <p class=\"pcalc-section-title\">Project Area<\/p>\n        <!-- Area 1 -->\n        <div class=\"pcalc-row\" id=\"pcalc-area1-row\">\n            <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                <label>Length<\/label>\n                <div class=\"pcalc-field-dual-wrap\">\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-len-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 1 length major unit\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-major\">ft<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-len-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 1 length minor unit\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-minor\">in<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                <label>Width<\/label>\n                <div class=\"pcalc-field-dual-wrap\">\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-wid-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 1 width major unit\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-major\">ft<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-wid-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 1 width minor unit\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-minor\">in<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Area 2 (hidden initially) -->\n        <div id=\"pcalc-area2-container\" style=\"display:none;\">\n            <hr class=\"pcalc-divider\">\n            <p style=\"font-size:12px;font-weight:600;color:var(--pcalc-text-secondary);margin:0 0 8px 0;text-transform:uppercase;letter-spacing:0.04em;\">Area 2<\/p>\n            <div class=\"pcalc-row\" id=\"pcalc-area2-row\">\n                <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                    <label>Length<\/label>\n                    <div class=\"pcalc-field-dual-wrap\">\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-len-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 2 length major unit\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-major2\">ft<\/span>\n                        <\/div>\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-len-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 2 length minor unit\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-minor2\">in<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                    <label>Width<\/label>\n                    <div class=\"pcalc-field-dual-wrap\">\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-wid-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 2 width major unit\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-major2\">ft<\/span>\n                        <\/div>\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-wid-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Area 2 width minor unit\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-minor2\">in<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <button class=\"pcalc-add-btn\" id=\"pcalc-add-area-btn\" type=\"button\">+ Add Area<\/button>\n    <\/div>\n\n    <!-- Base & Bedding Depths -->\n    <div class=\"pcalc-section\">\n        <p class=\"pcalc-section-title\">Base &amp; Bedding Depths<\/p>\n        <div class=\"pcalc-row\">\n            <div class=\"pcalc-field\" style=\"flex:1; min-width:100px;\">\n                <label for=\"pcalc-gravel-depth\">Sub-base Gravel Depth<\/label>\n                <div class=\"pcalc-field-dual\">\n                    <input type=\"number\" id=\"pcalc-gravel-depth\" value=\"4\" min=\"0.5\" step=\"any\" aria-label=\"Gravel depth\">\n                    <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-gravel-depth\">in<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"pcalc-field\" style=\"flex:1; min-width:100px;\">\n                <label for=\"pcalc-sand-depth\">Bedding Sand Depth<\/label>\n                <div class=\"pcalc-field-dual\">\n                    <input type=\"number\" id=\"pcalc-sand-depth\" value=\"1\" min=\"0.25\" step=\"any\" aria-label=\"Sand depth\">\n                    <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-sand-depth\">in<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"pcalc-field\" style=\"flex:1; min-width:90px; max-width:130px;\">\n                <label for=\"pcalc-waste\">Waste Factor (%)<\/label>\n                <input type=\"number\" id=\"pcalc-waste\" value=\"10\" min=\"0\" max=\"50\" step=\"any\" aria-label=\"Waste percentage\">\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Action Buttons -->\n    <div class=\"pcalc-actions\">\n        <button class=\"pcalc-btn pcalc-btn-calculate\" id=\"pcalc-calculate-btn\" type=\"button\">Calculate<\/button>\n        <button class=\"pcalc-btn pcalc-btn-reset\" id=\"pcalc-reset-btn\" type=\"button\">Reset<\/button>\n    <\/div>\n\n    <!-- Results -->\n    <div class=\"pcalc-results\" id=\"pcalc-results\">\n        <p class=\"pcalc-results-title\">Material Breakdown<\/p>\n        <div class=\"pcalc-result-grid\" id=\"pcalc-result-grid\">\n            <!-- Populated by JS -->\n        <\/div>\n        <div class=\"pcalc-result-note\" id=\"pcalc-result-note\">\n            <!-- Populated by JS -->\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    (function() {\n        const root = document.getElementById('pcalc-root');\n        if (!root) return;\n\n        \/\/ State\n        let currentSystem = 'imperial';\n        let area2Visible = false;\n\n        \/\/ Preset definitions\n        const imperialPresets = {\n            '4x8': { length: 4, width: 8, thickness: 2.375, label: '4\u2033 \u00d7 8\u2033 (Standard Brick)' },\n            '6x6': { length: 6, width: 6, thickness: 2.375, label: '6\u2033 \u00d7 6\u2033 (Square)' },\n            '12x12': { length: 12, width: 12, thickness: 2, label: '12\u2033 \u00d7 12\u2033 (Large Square)' },\n            'custom': { length: null, width: null, thickness: null, label: 'Custom Size' }\n        };\n        const metricPresets = {\n            '10x20': { length: 10, width: 20, thickness: 5, label: '10 \u00d7 20 cm (Standard)' },\n            '15x15': { length: 15, width: 15, thickness: 6, label: '15 \u00d7 15 cm (Square)' },\n            '30x30': { length: 30, width: 30, thickness: 6, label: '30 \u00d7 30 cm (Large Square)' },\n            'custom': { length: null, width: null, thickness: null, label: 'Custom Size' }\n        };\n\n        \/\/ DOM refs\n        const toggleImperial = document.getElementById('pcalc-toggle-imperial');\n        const toggleMetric = document.getElementById('pcalc-toggle-metric');\n        const presetSelect = document.getElementById('pcalc-preset');\n        const customFields = document.getElementById('pcalc-custom-fields');\n        const customLength = document.getElementById('pcalc-custom-length');\n        const customWidth = document.getElementById('pcalc-custom-width');\n        const customThickness = document.getElementById('pcalc-custom-thickness');\n        const customUnitEls = [\n            document.getElementById('pcalc-custom-unit'),\n            document.getElementById('pcalc-custom-unit2'),\n            document.getElementById('pcalc-custom-unit3')\n        ];\n        const area2Container = document.getElementById('pcalc-area2-container');\n        const addAreaBtn = document.getElementById('pcalc-add-area-btn');\n        const gravelDepth = document.getElementById('pcalc-gravel-depth');\n        const sandDepth = document.getElementById('pcalc-sand-depth');\n        const wasteInput = document.getElementById('pcalc-waste');\n        const unitGravelDepth = document.getElementById('pcalc-unit-gravel-depth');\n        const unitSandDepth = document.getElementById('pcalc-unit-sand-depth');\n        const calculateBtn = document.getElementById('pcalc-calculate-btn');\n        const resetBtn = document.getElementById('pcalc-reset-btn');\n        const resultsDiv = document.getElementById('pcalc-results');\n        const resultGrid = document.getElementById('pcalc-result-grid');\n        const resultNote = document.getElementById('pcalc-result-note');\n\n        \/\/ All unit suffix elements for area inputs\n        const allMajorUnits = document.querySelectorAll('[id^=\"pcalc-unit-len-major\"], [id^=\"pcalc-unit-wid-major\"]');\n        const allMinorUnits = document.querySelectorAll('[id^=\"pcalc-unit-len-minor\"], [id^=\"pcalc-unit-wid-minor\"]');\n\n        \/\/ Area input IDs\n        const areaInputIds = [\n            'pcalc-a1-len-major', 'pcalc-a1-len-minor', 'pcalc-a1-wid-major', 'pcalc-a1-wid-minor',\n            'pcalc-a2-len-major', 'pcalc-a2-len-minor', 'pcalc-a2-wid-major', 'pcalc-a2-wid-minor'\n        ];\n\n        function getAreaInputVal(id) {\n            const el = document.getElementById(id);\n            if (!el) return 0;\n            const v = parseFloat(el.value);\n            return isNaN(v) || v < 0 ? 0 : v;\n        }\n\n        function getTotalAreaSqBase() {\n            \/\/ Returns area in the base unit (sq ft for imperial, sq m for metric)\n            if (currentSystem === 'imperial') {\n                const a1LenFt = getAreaInputVal('pcalc-a1-len-major') + getAreaInputVal('pcalc-a1-len-minor') \/ 12;\n                const a1WidFt = getAreaInputVal('pcalc-a1-wid-major') + getAreaInputVal('pcalc-a1-wid-minor') \/ 12;\n                let totalSqFt = a1LenFt * a1WidFt;\n                if (area2Visible) {\n                    const a2LenFt = getAreaInputVal('pcalc-a2-len-major') + getAreaInputVal('pcalc-a2-len-minor') \/ 12;\n                    const a2WidFt = getAreaInputVal('pcalc-a2-wid-major') + getAreaInputVal('pcalc-a2-wid-minor') \/ 12;\n                    totalSqFt += a2LenFt * a2WidFt;\n                }\n                return totalSqFt;\n            } else {\n                const a1LenM = getAreaInputVal('pcalc-a1-len-major') + getAreaInputVal('pcalc-a1-len-minor') \/ 100;\n                const a1WidM = getAreaInputVal('pcalc-a1-wid-major') + getAreaInputVal('pcalc-a1-wid-minor') \/ 100;\n                let totalSqM = a1LenM * a1WidM;\n                if (area2Visible) {\n                    const a2LenM = getAreaInputVal('pcalc-a2-len-major') + getAreaInputVal('pcalc-a2-len-minor') \/ 100;\n                    const a2WidM = getAreaInputVal('pcalc-a2-wid-major') + getAreaInputVal('pcalc-a2-wid-minor') \/ 100;\n                    totalSqM += a2LenM * a2WidM;\n                }\n                return totalSqM;\n            }\n        }\n\n        function getPaverDimensions() {\n            const presetVal = presetSelect.value;\n            const presets = currentSystem === 'imperial' ? imperialPresets : metricPresets;\n            if (presetVal !== 'custom' &#038;&#038; presets[presetVal]) {\n                const p = presets[presetVal];\n                return { length: p.length, width: p.width, thickness: p.thickness };\n            }\n            \/\/ Custom\n            const l = parseFloat(customLength.value);\n            const w = parseFloat(customWidth.value);\n            const t = parseFloat(customThickness.value);\n            return {\n                length: isNaN(l) || l <= 0 ? null : l,\n                width: isNaN(w) || w <= 0 ? null : w,\n                thickness: isNaN(t) || t <= 0 ? null : t\n            };\n        }\n\n        function getGravelDepth() {\n            const v = parseFloat(gravelDepth.value);\n            return isNaN(v) || v <= 0 ? (currentSystem === 'imperial' ? 4 : 10) : v;\n        }\n\n        function getSandDepth() {\n            const v = parseFloat(sandDepth.value);\n            return isNaN(v) || v <= 0 ? (currentSystem === 'imperial' ? 1 : 2.5) : v;\n        }\n\n        function getWastePercent() {\n            const v = parseFloat(wasteInput.value);\n            return isNaN(v) || v < 0 ? 10 : Math.min(v, 50);\n        }\n\n        function updateSystemUI() {\n            \/\/ Toggle buttons\n            toggleImperial.classList.toggle('active', currentSystem === 'imperial');\n            toggleMetric.classList.toggle('active', currentSystem === 'metric');\n            toggleImperial.setAttribute('aria-pressed', currentSystem === 'imperial' ? 'true' : 'false');\n            toggleMetric.setAttribute('aria-pressed', currentSystem === 'metric' ? 'true' : 'false');\n\n            \/\/ Update preset dropdown\n            const presets = currentSystem === 'imperial' ? imperialPresets : metricPresets;\n            const currentVal = presetSelect.value;\n            presetSelect.innerHTML = '';\n            for (const [key, p] of Object.entries(presets)) {\n                const opt = document.createElement('option');\n                opt.value = key;\n                opt.textContent = p.label;\n                presetSelect.appendChild(opt);\n            }\n            \/\/ Try to keep equivalent preset, else default to first\n            const presetKeys = Object.keys(presets);\n            if (presetKeys.includes(currentVal) &#038;&#038; currentVal !== 'custom') {\n                presetSelect.value = currentVal;\n            } else if (currentVal === 'custom') {\n                presetSelect.value = 'custom';\n            } else {\n                presetSelect.value = presetKeys[0];\n            }\n\n            \/\/ Update custom unit labels\n            const unitLabel = currentSystem === 'imperial' ? 'in' : 'cm';\n            customUnitEls.forEach(el => { if (el) el.textContent = unitLabel; });\n\n            \/\/ Show\/hide custom fields\n            toggleCustomFields();\n\n            \/\/ Update area unit labels\n            const majorUnit = currentSystem === 'imperial' ? 'ft' : 'm';\n            const minorUnit = currentSystem === 'imperial' ? 'in' : 'cm';\n            allMajorUnits.forEach(el => { el.textContent = majorUnit; });\n            allMinorUnits.forEach(el => { el.textContent = minorUnit; });\n\n            \/\/ Update depth unit labels\n            unitGravelDepth.textContent = currentSystem === 'imperial' ? 'in' : 'cm';\n            unitSandDepth.textContent = currentSystem === 'imperial' ? 'in' : 'cm';\n\n            \/\/ Update depth defaults\n            gravelDepth.value = currentSystem === 'imperial' ? 4 : 10;\n            sandDepth.value = currentSystem === 'imperial' ? 1 : 2.5;\n        }\n\n        function toggleCustomFields() {\n            const isCustom = presetSelect.value === 'custom';\n            customFields.style.display = isCustom ? 'block' : 'none';\n            if (!isCustom) {\n                customLength.value = '';\n                customWidth.value = '';\n                customThickness.value = '';\n            }\n        }\n\n        function toggleArea2() {\n            area2Visible = !area2Visible;\n            area2Container.style.display = area2Visible ? 'block' : 'none';\n            if (area2Visible) {\n                addAreaBtn.textContent = '\u2212 Remove Area';\n                addAreaBtn.classList.add('remove-mode');\n            } else {\n                addAreaBtn.textContent = '+ Add Area';\n                addAreaBtn.classList.remove('remove-mode');\n                \/\/ Clear area 2 inputs\n                document.getElementById('pcalc-a2-len-major').value = '';\n                document.getElementById('pcalc-a2-len-minor').value = '';\n                document.getElementById('pcalc-a2-wid-major').value = '';\n                document.getElementById('pcalc-a2-wid-minor').value = '';\n            }\n        }\n\n        function hideResults() {\n            resultsDiv.classList.remove('visible');\n            resultGrid.innerHTML = '';\n            resultNote.innerHTML = '';\n        }\n\n        function resetAll() {\n            currentSystem = 'imperial';\n            area2Visible = false;\n            area2Container.style.display = 'none';\n            addAreaBtn.textContent = '+ Add Area';\n            addAreaBtn.classList.remove('remove-mode');\n            updateSystemUI();\n            presetSelect.value = '4x8';\n            toggleCustomFields();\n            wasteInput.value = 10;\n            \/\/ Clear all area inputs\n            areaInputIds.forEach(id => {\n                const el = document.getElementById(id);\n                if (el) el.value = '';\n            });\n            hideResults();\n        }\n\n        function calculate() {\n            const totalArea = getTotalAreaSqBase();\n            if (totalArea <= 0) {\n                hideResults();\n                resultGrid.innerHTML =\n                    '<div class=\"pcalc-result-item\" style=\"grid-column:1\/-1;\"><div class=\"pcalc-result-label\">Error<\/div><div class=\"pcalc-result-value\" style=\"font-size:15px;\">Please enter valid area dimensions before calculating.<\/div><\/div>';\n                resultNote.innerHTML = '';\n                resultsDiv.classList.add('visible');\n                return;\n            }\n\n            const paverDims = getPaverDimensions();\n            if (paverDims.length === null || paverDims.width === null || paverDims.thickness === null) {\n                hideResults();\n                resultGrid.innerHTML =\n                    '<div class=\"pcalc-result-item\" style=\"grid-column:1\/-1;\"><div class=\"pcalc-result-label\">Error<\/div><div class=\"pcalc-result-value\" style=\"font-size:15px;\">Please enter valid custom paver dimensions.<\/div><\/div>';\n                resultNote.innerHTML = '';\n                resultsDiv.classList.add('visible');\n                return;\n            }\n\n            const gravelD = getGravelDepth();\n            const sandD = getSandDepth();\n            const wastePct = getWastePercent();\n\n            if (currentSystem === 'imperial') {\n                \/\/ Imperial calculations\n                const totalSqFt = totalArea;\n                const paverSqFt = (paverDims.length * paverDims.width) \/ 144;\n                const basePavers = Math.ceil(totalSqFt \/ paverSqFt);\n                const paversWithWaste = Math.ceil(basePavers * (1 + wastePct \/ 100));\n                const wastePavers = paversWithWaste - basePavers;\n\n                const gravelDepthFt = gravelD \/ 12;\n                const gravelCuYd = totalSqFt * gravelDepthFt \/ 27;\n                const sandDepthFt = sandD \/ 12;\n                const sandCuYd = totalSqFt * sandDepthFt \/ 27;\n\n                \/\/ Polymeric sand: joint volume calculation\n                const jointWidthIn = 0.125;\n                const jointWidthFt = jointWidthIn \/ 12;\n                const thicknessFt = paverDims.thickness \/ 12;\n                const paverLenIn = paverDims.length;\n                const paverWidIn = paverDims.width;\n                const linearJointsPerSqFt = (12 \/ paverLenIn) + (12 \/ paverWidIn);\n                const jointVolPerSqFt = linearJointsPerSqFt * thicknessFt * jointWidthFt;\n                const totalJointVolCuFt = totalSqFt * jointVolPerSqFt;\n                const sandDensityLbsPerCuFt = 100;\n                const totalSandLbs = totalJointVolCuFt * sandDensityLbsPerCuFt;\n                const bagWeightLbs = 50;\n                const polyBags = Math.ceil(totalSandLbs \/ bagWeightLbs);\n\n                resultGrid.innerHTML = `\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Total Project Area<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${totalSqFt.toFixed(2)} <span style=\"font-size:14px;font-weight:500;\">sq ft<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Pavers Required<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${paversWithWaste.toLocaleString()}<\/div>\n                        <div class=\"pcalc-result-sub\">Base: ${basePavers.toLocaleString()} + ${wastePavers.toLocaleString()} waste (${wastePct}%)<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Sub-base Gravel (${gravelD}\u2033 depth)<\/div>\n                        <div class=\"pcalc-result-value\">${gravelCuYd.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">cu yd<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Bedding Sand (${sandD}\u2033 depth)<\/div>\n                        <div class=\"pcalc-result-value\">${sandCuYd.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">cu yd<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Polymeric Sand<\/div>\n                        <div class=\"pcalc-result-value\">${polyBags} <span style=\"font-size:14px;font-weight:500;\">\u00d7 50 lb bag${polyBags !== 1 ? 's' : ''}<\/span><\/div>\n                        <div class=\"pcalc-result-sub\">Joint-fill estimate based on \u215b\u2033 joints<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Paver Unit Area<\/div>\n                        <div class=\"pcalc-result-value\" style=\"font-size:18px;\">${paverSqFt.toFixed(4)} <span style=\"font-size:13px;font-weight:500;\">sq ft each<\/span><\/div>\n                    <\/div>\n                `;\n                resultNote.innerHTML = `\n                    <strong>Waste Note:<\/strong> Calculations include a ${wastePct}% waste allowance for cuts and breakage.\n                    Complex laying patterns such as <strong>Herringbone<\/strong> or <strong>Versailles<\/strong> may require a <strong>15\u201320%<\/strong> waste buffer.\n                    Always order an additional 5\u201310% beyond the calculated estimate for intricate designs.\n                `;\n            } else {\n                \/\/ Metric calculations\n                const totalSqM = totalArea;\n                const paverSqM = (paverDims.length * paverDims.width) \/ 10000;\n                const basePavers = Math.ceil(totalSqM \/ paverSqM);\n                const paversWithWaste = Math.ceil(basePavers * (1 + wastePct \/ 100));\n                const wastePavers = paversWithWaste - basePavers;\n\n                const gravelDepthM = gravelD \/ 100;\n                const gravelCuM = totalSqM * gravelDepthM;\n                const gravelMetricTons = gravelCuM * 1.7;\n                const sandDepthM = sandD \/ 100;\n                const sandCuM = totalSqM * sandDepthM;\n\n                \/\/ Polymeric sand: joint volume calculation\n                const jointWidthCm = 0.3;\n                const jointWidthM = jointWidthCm \/ 100;\n                const thicknessM = paverDims.thickness \/ 100;\n                const paverLenCm = paverDims.length;\n                const paverWidCm = paverDims.width;\n                const linearJointsPerSqM = (100 \/ paverLenCm) + (100 \/ paverWidCm);\n                const jointVolPerSqM = linearJointsPerSqM * thicknessM * jointWidthM;\n                const totalJointVolCuM = totalSqM * jointVolPerSqM;\n                const sandDensityKgPerCuM = 1600;\n                const totalSandKg = totalJointVolCuM * sandDensityKgPerCuM;\n                const bagWeightKg = 25;\n                const polyBags = Math.ceil(totalSandKg \/ bagWeightKg);\n\n                resultGrid.innerHTML = `\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Total Project Area<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${totalSqM.toFixed(2)} <span style=\"font-size:14px;font-weight:500;\">m\u00b2<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Pavers Required<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${paversWithWaste.toLocaleString()}<\/div>\n                        <div class=\"pcalc-result-sub\">Base: ${basePavers.toLocaleString()} + ${wastePavers.toLocaleString()} waste (${wastePct}%)<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Sub-base Gravel (${gravelD} cm depth)<\/div>\n                        <div class=\"pcalc-result-value\">${gravelCuM.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">m\u00b3<\/span><\/div>\n                        <div class=\"pcalc-result-sub\">\u2248 ${gravelMetricTons.toFixed(2)} metric tons<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Bedding Sand (${sandD} cm depth)<\/div>\n                        <div class=\"pcalc-result-value\">${sandCuM.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">m\u00b3<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Polymeric Sand<\/div>\n                        <div class=\"pcalc-result-value\">${polyBags} <span style=\"font-size:14px;font-weight:500;\">\u00d7 25 kg bag${polyBags !== 1 ? 's' : ''}<\/span><\/div>\n                        <div class=\"pcalc-result-sub\">Joint-fill estimate based on 3 mm joints<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Paver Unit Area<\/div>\n                        <div class=\"pcalc-result-value\" style=\"font-size:18px;\">${paverSqM.toFixed(4)} <span style=\"font-size:13px;font-weight:500;\">m\u00b2 each<\/span><\/div>\n                    <\/div>\n                `;\n                resultNote.innerHTML = `\n                    <strong>Waste Note:<\/strong> Calculations include a ${wastePct}% waste allowance for cuts and breakage.\n                    Complex laying patterns such as <strong>Herringbone<\/strong> or <strong>Versailles<\/strong> may require a <strong>15\u201320%<\/strong> waste buffer.\n                    Always order an additional 5\u201310% beyond the calculated estimate for intricate designs.\n                `;\n            }\n\n            resultsDiv.classList.add('visible');\n            \/\/ Scroll results into view smoothly\n            resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n        }\n\n        \/\/ Event listeners\n        toggleImperial.addEventListener('click', function() {\n            if (currentSystem === 'imperial') return;\n            currentSystem = 'imperial';\n            updateSystemUI();\n            hideResults();\n        });\n        toggleMetric.addEventListener('click', function() {\n            if (currentSystem === 'metric') return;\n            currentSystem = 'metric';\n            updateSystemUI();\n            hideResults();\n        });\n        presetSelect.addEventListener('change', function() {\n            toggleCustomFields();\n            hideResults();\n        });\n        addAreaBtn.addEventListener('click', function() {\n            toggleArea2();\n            hideResults();\n        });\n        calculateBtn.addEventListener('click', calculate);\n        resetBtn.addEventListener('click', resetAll);\n\n        \/\/ Hide results when any input changes\n        const allInputs = root.querySelectorAll('input, select');\n        allInputs.forEach(inp => {\n            inp.addEventListener('input', function() {\n                hideResults();\n            });\n            inp.addEventListener('change', function() {\n                hideResults();\n            });\n        });\n\n        \/\/ Initialize\n        updateSystemUI();\n        hideResults();\n        area2Container.style.display = 'none';\n        addAreaBtn.textContent = '+ Add Area';\n        addAreaBtn.classList.remove('remove-mode');\n        area2Visible = false;\n        presetSelect.value = '4x8';\n        toggleCustomFields();\n        wasteInput.value = 10;\n    })();\n<\/script>\n\n\n<!-- aiper-tool-links -->\n<div class=\"aiper-tool-links\">\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">More Tools<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/fence-calculator\/\" class=\"aiper-tl-tag\">Fence Calculator<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/decking-calculator\/\" class=\"aiper-tl-tag\">Decking Calculator<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/retaining-wall-calculator\/\" class=\"aiper-tl-tag\">Retaining Wall Calculator<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Related Articles<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/how-to-keep-geese-off-lawn\/\" class=\"aiper-tl-tag\">How to Keep Geese Off Your Lawn<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-get-rid-of-mushrooms-in-lawn\/\" class=\"aiper-tl-tag\">How to Get Rid of Mushrooms in a Lawn (And Should You?)<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-dethatch-a-lawn\/\" class=\"aiper-tl-tag\">How to Dethatch a Lawn: Diagnose Thatch, Then Treat It<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/how-to-get-rid-of-creeping-charlie-in-lawn\/\" class=\"aiper-tl-tag\">How to Get Rid of Creeping Charlie in Your Lawn<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.aiper-tool-links{margin:2.5rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(148,134,247,.04),rgba(30,202,211,.04));border-radius:12px;border:1px solid rgba(148,134,247,.10)}\n.aiper-tl-section{margin-bottom:1.25rem}\n.aiper-tl-section:last-child{margin-bottom:0}\n.aiper-tl-heading{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8899aa;margin:0 0 .65rem}\n.aiper-tl-tags{display:flex;flex-wrap:wrap;gap:.5rem}\n.aiper-tl-tag{display:inline-block;padding:.4rem .95rem;font-size:.82rem;font-weight:500;line-height:1.35;color:#9486f7;background:rgba(148,134,247,.055);border:1px solid rgba(30,202,211,.25);border-radius:22px;text-decoration:none;transition:all .18s}\n.aiper-tl-tag:hover{background:#1ecad3;color:#fff;border-color:#1ecad3;box-shadow:0 2px 10px rgba(30,202,211,.22)}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>Imperial (US\/UK) Metric (AU\/EU) Paver Specifications Paver Size 4\u2033 \u00d7 8\u2033 (Standard Brick)6\u2033 \u00d7 6\u2033 (Square)12\u2033 \u00d7 12\u2033 (Large Square)Custom Size in in in Project Area Length ft in Width ft in Area 2 Length ft in Width ft in + Add Area Base &amp; Bedding Depths Sub-base Gravel Depth in Bedding Sand Depth in&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-2608","page","type-page","status-publish","hentry"],"lang":"en","translations":{"en":2608,"es":2688,"de":2682,"fr":2685},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=2608"}],"version-history":[{"count":6,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2608\/revisions"}],"predecessor-version":[{"id":4308,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2608\/revisions\/4308"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=2608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}