{"id":2393,"date":"2026-07-29T10:13:31","date_gmt":"2026-07-29T10:13:31","guid":{"rendered":"https:\/\/ruutglazing.co.uk\/?page_id=2393"},"modified":"2026-08-04T06:46:12","modified_gmt":"2026-08-04T06:46:12","slug":"bifold-doors-quote","status":"publish","type":"page","link":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/","title":{"rendered":"Bifold Doors Quote"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2393\" class=\"elementor elementor-2393\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4342a94 e-flex e-con-boxed e-con e-parent\" data-id=\"4342a94\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fd8c04d elementor-widget elementor-widget-text-editor\" data-id=\"fd8c04d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>GET IN TOUCH<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a4815d elementor-widget elementor-widget-heading\" data-id=\"1a4815d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Request A Quote<\/h2>\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-5859181 e-flex e-con-boxed e-con e-parent\" data-id=\"5859181\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-641b48a e-flex e-con-boxed e-con e-child\" data-id=\"641b48a\" 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-1bcc15d elementor-widget elementor-widget-text-editor\" data-id=\"1bcc15d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Built Around Your Home<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b508f0 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"5b508f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Create Your Perfect Bifold Doors<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-18183b3 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"18183b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Build bespoke aluminium bifold doors to suit your space. Our configurator lets you customise every detail and generates an instant, competitive quote with no obligation to purchase.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57ff201 e-con-full e-flex e-con e-child\" data-id=\"57ff201\" data-element_type=\"container\" data-e-type=\"container\" id=\"bifold-quote-section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-0b8bf05 e-con-full e-flex e-con e-child\" data-id=\"0b8bf05\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-794dd13 elementor-widget elementor-widget-shortcode\" data-id=\"794dd13\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div class=\"ultimate-form go-form\"\n             id=\"ultimate-form-lead\"\n             data-slug=\"lead\"\n             data-form-id=\"1\"\n             data-product-id=\"0\"\n                                       data-conditions=\"[]\"\n             style=\"--gf-primary:#001E3C;--gf-primary-dk:#00152B;--gf-primary-lt:#EEF5FD;--gf-btn-primary:#001E3C;--gf-btn-text:#ffffff;--gf-back-bg:var(--gf-field-bg, #ffffff);--gf-back-text:var(--gf-text, #111827);--gf-back-border:var(--gf-border, #d1d5db);--gf-bg:#f7f9fb;--gf-field-bg:#ffffff;--gf-text:#0f172a;--gf-muted:#64748b;--gf-text-muted:#64748b;--gf-border:#d1d5db;--gf-error:#dc2626;--gf-success:#059669;--gf-info-bg:#EEF5FD;--gf-info-text:#00152B;--gf-heading-color:#0f172a;--gf-label-color:#1e293b;--gf-helper-color:#64748b;--gf-font-family:inherit;--gf-input-size:15px;--gf-input-weight:400;--gf-heading-font:inherit;--gf-label-font:inherit;--gf-helper-font:inherit;--gf-btn-font:inherit;--gf-input-font:inherit;--gf-heading-size:20px;--gf-heading-weight:700;--gf-label-size:14px;--gf-label-weight:600;--gf-helper-size:13px;--gf-radius:8px;--gf-border-w:1.5px;--gf-pad-v:10px;--gf-pad-h:14px;--gf-field-gap:18px;--gf-btn-radius:8px;--gf-btn-font-size:15px;--gf-btn-font-weight:600;--gf-btn-pad-v:12px;--gf-btn-pad-h:28px;--gf-progress-h:3px;--gf-dot-size:28px;--gf-form-max-width:1080px;--gf-form-pad-v:30px;--gf-form-pad-h:30px;--gf-logo-height:40px;--gf-logo-gap:24px;--gf-step-primary:#001E3C;--gf-step-accent:#001E3C;--gf-step-highlight:#FFCE1F;--gf-form-border-w:0px;--gf-form-border-color:#001E3C;--gf-form-border-color-2:#0062C4;--gf-form-border-grad-angle:135deg;--gf-step-grad-angle:135deg;--gf-form-radius:12px;--gf-primary-grad:;--gf-btn-primary-grad:;--gf-bg-grad:;--gf-field-bg-grad:;--gf-info-bg-grad:;--gf-back-bg-grad:;--gf-focus-ring-color:rgba(0,30,60,.12);--gf-focus-ring-width:3px;--gf-focus-ring-offset:0;--gf-invalid-focus-ring-color:rgba(200,30,30,.12);--gf-required-color:var(--gf-error);--gf-error-bg:transparent;--gf-error-text:var(--gf-error);--gf-error-radius:var(--gf-radius, 8px);--gf-error-icon-color:var(--gf-error);--gf-check-size:18px;--gf-check-radius:4px;--gf-check-bg-checked:var(--gf-primary);--gf-check-color:#ffffff;--gf-radio-size:18px;--gf-radio-color:var(--gf-primary);--gf-radio-dot-color:var(--gf-primary);--gf-helper-weight:400;--gf-helper-error-color:var(--gf-error);--gf-helper-margin-top:4px;--gf-placeholder-color:var(--gf-muted);--gf-card-title-size:var(--gf-label-size, 14px);--gf-card-title-weight:600;--gf-card-title-color:var(--gf-text);--gf-card-sub-size:var(--gf-helper-size, 13px);--gf-card-sub-color:var(--gf-muted);--gf-confirm-from:#15803d;--gf-confirm-to:#4ade80;--gf-confirm-icon:#ffffff;--gf-confirm-title-color:#15803d;--gf-confirm-text-color:#475569;padding:var(--gf-form-pad-v,30px) var(--gf-form-pad-h,30px) !important;\"                          >\n\n            \n                                    <div class=\"gf-form-title-wrap\">\n                <h1 class=\"gf-form-title\">Bifold Door Quote<\/h1>\n            <\/div>\n            \n                        <!-- Step indicator \u2014 5 selectable styles, all driven by the same JS hook -->\n                        <div class=\"gf-progress gf-progress--bar\"\n                 role=\"progressbar\"\n                 aria-label=\"Form progress\"\n                 aria-valuemin=\"1\" aria-valuemax=\"8\" aria-valuenow=\"1\"\n                 aria-valuetext=\"Step 1 of 8 \u2014 Step 1 \u2014 Dimensions\"\n                 data-step-style=\"bar\"\n                 data-titles=\"[&quot;Step 1 \\u2014 Dimensions&quot;,&quot;Step 2 \\u2014 Number Of Panes&quot;,&quot;Step 3 \\u2014 Opening Direction&quot;,&quot;Step 4 \\u2014 Configuration&quot;,&quot;Step 5 \\u2014 Door Colour&quot;,&quot;Step 6 \\u2014 Hardware&quot;,&quot;Step 7 \\u2014 Cill &amp; Threshold&quot;,&quot;Step 8 \\u2014 Review your door and get a quote&quot;]\">\n\n                                <div class=\"gf-progress-nodes\" aria-hidden=\"true\">\n                                                                    <div class=\"gf-progress-node is-active\" data-step=\"0\">\n                            <span class=\"gf-progress-num\">1<\/span>\n                                                            <span class=\"gf-progress-label\">Step 1 \u2014 Dimensions<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"1\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"1\">\n                            <span class=\"gf-progress-num\">2<\/span>\n                                                            <span class=\"gf-progress-label\">Step 2 \u2014 Number Of Panes<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"2\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"2\">\n                            <span class=\"gf-progress-num\">3<\/span>\n                                                            <span class=\"gf-progress-label\">Step 3 \u2014 Opening Direction<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"3\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"3\">\n                            <span class=\"gf-progress-num\">4<\/span>\n                                                            <span class=\"gf-progress-label\">Step 4 \u2014 Configuration<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"4\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"4\">\n                            <span class=\"gf-progress-num\">5<\/span>\n                                                            <span class=\"gf-progress-label\">Step 5 \u2014 Door Colour<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"5\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"5\">\n                            <span class=\"gf-progress-num\">6<\/span>\n                                                            <span class=\"gf-progress-label\">Step 6 \u2014 Hardware<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"6\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"6\">\n                            <span class=\"gf-progress-num\">7<\/span>\n                                                            <span class=\"gf-progress-label\">Step 7 \u2014 Cill &amp; Threshold<\/span>\n                                                    <\/div>\n                                            <div class=\"gf-progress-line\" data-step=\"7\"><\/div>                        <div class=\"gf-progress-node \" data-step=\"7\">\n                            <span class=\"gf-progress-num\">8<\/span>\n                                                            <span class=\"gf-progress-label\">Step 8 \u2014 Review your door and get a quote<\/span>\n                                                    <\/div>\n                                    <\/div>\n\n                                <div class=\"gf-progress-meta\">\n                    <div class=\"gf-progress-current\">\n                        <span class=\"gf-progress-counter\">1<\/span><span class=\"gf-progress-sep\"> \u00b7 <\/span>\n                        <span class=\"gf-progress-title\">Step 1 \u2014 Dimensions<\/span>\n                    <\/div>\n                    <div class=\"gf-progress-of\">\n                                                <span class=\"gf-progress-pct\">0%<\/span>\n                        <span class=\"gf-progress-oftext\">\n                        Step <span class=\"gf-progress-counter\">1<\/span> of 8                        <\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"gf-progress-track\">\n                    <div class=\"gf-progress-fill\" style=\"width:0%\"><\/div>\n                <\/div>\n\n                                <div class=\"gf-progress-ring-wrap\" aria-hidden=\"true\">\n                    <div class=\"gf-progress-ring\">\n                        <svg width=\"58\" height=\"58\" viewBox=\"0 0 36 36\">\n                            <defs>\n                                <linearGradient id=\"gf-ring-1\" x1=\"0\" x2=\"1\">\n                                    <stop offset=\"0%\"   stop-color=\"var(--gf-accent, #0062C4)\"\/>\n                                    <stop offset=\"100%\" stop-color=\"var(--gf-primary, #001E3C)\"\/>\n                                <\/linearGradient>\n                            <\/defs>\n                            <circle class=\"gf-progress-ring-track\" cx=\"18\" cy=\"18\" r=\"15.9\"\/>\n                            <circle class=\"gf-progress-ring-fill\"  cx=\"18\" cy=\"18\" r=\"15.9\"\n                                    stroke=\"url(#gf-ring-1)\"\n                                    stroke-dasharray=\"100 100\"\n                                    stroke-dashoffset=\"100\"\/>\n                        <\/svg>\n                        <span class=\"gf-progress-ring-text\"><span class=\"gf-progress-ring-pct\">0%<\/span><span class=\"gf-progress-ring-frac\"><span class=\"gf-progress-counter\">1<\/span> \/ 8<\/span><\/span>\n                    <\/div>\n                    <div class=\"gf-progress-ring-info\">\n                        <div class=\"gf-progress-ring-step\">\n                            Step <span class=\"gf-progress-counter\">1<\/span> of 8                        <\/div>\n                        <div class=\"gf-progress-ring-now\"><span class=\"gf-progress-title\">Step 1 \u2014 Dimensions<\/span><\/div>\n                                                    <div class=\"gf-progress-ring-next\">\n                                Next: <span class=\"gf-progress-ring-next-title\">Step 2 \u2014 Number Of Panes<\/span>                            <\/div>\n                                            <\/div>\n                <\/div>\n\n                                <div class=\"gf-progress-segments\" aria-hidden=\"true\">\n                                            <div class=\"gf-progress-segment is-active\" data-step=\"0\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"1\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"2\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"3\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"4\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"5\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"6\"><\/div>\n                                            <div class=\"gf-progress-segment \" data-step=\"7\"><\/div>\n                                    <\/div>\n            <\/div>\n            \n            <!-- Steps -->\n            <div class=\"gf-steps-wrapper\">\n                            <div class=\"gf-step-panel active\"\n                     data-step-index=\"0\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 1 \u2014 Dimensions<\/h2>\n                                                                            <p class=\"gf-step-description\">Enter width, height and location to continue.<\/p>\n                                            <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-number gf-field-name-width gf-w-half\"\n             data-field-name=\"width\" id=\"dimension-width\">\n        <label class=\"gf-label\" for=\"gf-field-width\">Overall Width<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/label><input type=\"number\" name=\"width\" id=\"gf-field-width\" class=\"gf-input\" placeholder=\"\" required aria-required=\"true\" data-name=\"width\" aria-describedby=\"gf-err-width\" min=\"1200\" max=\"8400\" value=\"3000\"><span class=\"gf-field-error\" id=\"gf-err-width\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-number gf-field-name-height gf-w-half\"\n             data-field-name=\"height\" id=\"dimension-height\">\n        <label class=\"gf-label\" for=\"gf-field-height\">Overall Height<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/label><input type=\"number\" name=\"height\" id=\"gf-field-height\" class=\"gf-input\" placeholder=\"\" required aria-required=\"true\" data-name=\"height\" aria-describedby=\"gf-err-height\" min=\"500\" max=\"3050\" value=\"2100\"><span class=\"gf-field-error\" id=\"gf-err-height\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-text gf-field-name-location\"\n             data-field-name=\"location\" id=\"door-location\">\n        <label class=\"gf-label\" for=\"gf-field-location\">Location<\/label><input type=\"text\" name=\"location\" id=\"gf-field-location\" class=\"gf-input\" placeholder=\"Kitchen\"   data-name=\"location\" aria-describedby=\"gf-err-location\"><span class=\"gf-field-error\" id=\"gf-err-location\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"1\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 2 \u2014 Number Of Panes<\/h2>\n                                                                            <p class=\"gf-step-description\">Choose one option (sizes from price list).<\/p>\n                                            <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-radio gf-field-name-number_of_panes\"\n             data-field-name=\"number_of_panes\" id=\"door-panels\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-number_of_panes\" aria-required=\"true\"><legend class=\"gf-label\">Choose the number of door panels<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><label class=\"gf-radio-label\"><input type=\"radio\" name=\"number_of_panes\" value=\"2 Panels\" required aria-required=\"true\" data-name=\"number_of_panes\" aria-describedby=\"gf-err-number_of_panes\"><span class=\"gf-radio-custom\"><\/span> 2 Panels<\/label><label class=\"gf-radio-label\"><input type=\"radio\" name=\"number_of_panes\" value=\"3 Panels\" required aria-required=\"true\" data-name=\"number_of_panes\" aria-describedby=\"gf-err-number_of_panes\"><span class=\"gf-radio-custom\"><\/span> 3 Panels<\/label><label class=\"gf-radio-label\"><input type=\"radio\" name=\"number_of_panes\" value=\"4 Panels\" required aria-required=\"true\" data-name=\"number_of_panes\" aria-describedby=\"gf-err-number_of_panes\"><span class=\"gf-radio-custom\"><\/span> 4 Panels<\/label><label class=\"gf-radio-label\"><input type=\"radio\" name=\"number_of_panes\" value=\"5 Panels\" required aria-required=\"true\" data-name=\"number_of_panes\" aria-describedby=\"gf-err-number_of_panes\"><span class=\"gf-radio-custom\"><\/span> 5 Panels<\/label><label class=\"gf-radio-label\"><input type=\"radio\" name=\"number_of_panes\" value=\"6 Panels\" required aria-required=\"true\" data-name=\"number_of_panes\" aria-describedby=\"gf-err-number_of_panes\"><span class=\"gf-radio-custom\"><\/span> 6 Panels<\/label><label class=\"gf-radio-label\"><input type=\"radio\" name=\"number_of_panes\" value=\"7 Panels\" required aria-required=\"true\" data-name=\"number_of_panes\" aria-describedby=\"gf-err-number_of_panes\"><span class=\"gf-radio-custom\"><\/span> 7 Panels<\/label><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-number_of_panes\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"2\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 3 \u2014 Opening Direction<\/h2>\n                                                                            <p class=\"gf-step-description\">Choose how the door opens.<\/p>\n                                            <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-radio gf-field-name-opening_side\"\n             data-field-name=\"opening_side\" id=\"opening-direction\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-opening_side\" aria-required=\"true\"><legend class=\"gf-label\">How would you like your doors to open?<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><label class=\"gf-radio-label\"><input type=\"radio\" name=\"opening_side\" value=\"Open In\" required aria-required=\"true\" data-name=\"opening_side\" aria-describedby=\"gf-err-opening_side\"><span class=\"gf-radio-custom\"><\/span> Open In<\/label><label class=\"gf-radio-label\"><input type=\"radio\" name=\"opening_side\" value=\"Open Out\" required aria-required=\"true\" data-name=\"opening_side\" aria-describedby=\"gf-err-opening_side\"><span class=\"gf-radio-custom\"><\/span> Open Out<\/label><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-opening_side\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"3\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 4 \u2014 Configuration<\/h2>\n                                                                            <p class=\"gf-step-description\">Select panel layout.<\/p>\n                                            <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-radio gf-field-name-panel_layout_in\"\n             data-field-name=\"panel_layout_in\" data-logic=\"{&quot;action&quot;:&quot;show&quot;,&quot;match&quot;:&quot;all&quot;,&quot;rules&quot;:[{&quot;field&quot;:&quot;opening_side&quot;,&quot;operator&quot;:&quot;is&quot;,&quot;value&quot;:&quot;Open In&quot;}]}\" id=\"folding-arrangement-in\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-panel_layout_in\" aria-required=\"true\"><legend class=\"gf-label\">Choose your folding arrangement<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"gf-radio-cards\"><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"All Folding Left\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">All Folding Left<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"All Folding Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">All Folding Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"Traffic Door Left\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Traffic Door Left<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"Traffic Door Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Traffic Door Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"2 : Left &amp; Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left &amp; Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"3 : Left 2 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">3 : Left 2 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"2 : Left 3 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left 3 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"4 : Left 2 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">4 : Left 2 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"2 : Left 4 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left 4 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"3 : Left &amp; Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">3 : Left &amp; Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"5 : Left 2 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">5 : Left 2 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"2 : Left 5 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left 5 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"4 : Left 3 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">4 : Left 3 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_in\" value=\"3 : Left 4 : Right\" required aria-required=\"true\" data-name=\"panel_layout_in\" aria-describedby=\"gf-err-panel_layout_in\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">3 : Left 4 : Right<\/span><span class=\"gf-radio-card-sub\">Open In<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><\/div><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-panel_layout_in\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-radio gf-field-name-panel_layout_out\"\n             data-field-name=\"panel_layout_out\" data-logic=\"{&quot;action&quot;:&quot;show&quot;,&quot;match&quot;:&quot;all&quot;,&quot;rules&quot;:[{&quot;field&quot;:&quot;opening_side&quot;,&quot;operator&quot;:&quot;is&quot;,&quot;value&quot;:&quot;Open Out&quot;}]}\" id=\"folding-arrangement-out\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-panel_layout_out\" aria-required=\"true\"><legend class=\"gf-label\">Choose your folding arrangement<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"gf-radio-cards\"><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"All Folding Left\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">All Folding Left<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"All Folding Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">All Folding Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"Traffic Door Left\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Traffic Door Left<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"Traffic Door Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Traffic Door Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"2 : Left &amp; Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left &amp; Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"3 : Left 2 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">3 : Left 2 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"2 : Left 3 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left 3 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"4 : Left 2 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">4 : Left 2 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"2 : Left 4 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left 4 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"3 : Left &amp; Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">3 : Left &amp; Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"5 : Left 2 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">5 : Left 2 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"2 : Left 5 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">2 : Left 5 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"4 : Left 3 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">4 : Left 3 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"panel_layout_out\" value=\"3 : Left 4 : Right\" required aria-required=\"true\" data-name=\"panel_layout_out\" aria-describedby=\"gf-err-panel_layout_out\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">3 : Left 4 : Right<\/span><span class=\"gf-radio-card-sub\">Open Out<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><\/div><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-panel_layout_out\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"4\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 5 \u2014 Door Colour<\/h2>\n                                                                            <p class=\"gf-step-description\">Choose one option below.<\/p>\n                                            <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-radio gf-field-name-door_color\"\n             data-field-name=\"door_color\" id=\"door-colour\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-door_color\" aria-required=\"true\"><legend class=\"gf-label\">Choose your door colour<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"gf-radio-cards gf-cards-iconleft\"><label class=\"gf-radio-card\"><input type=\"radio\" name=\"door_color\" value=\"Anthracite\" required aria-required=\"true\" data-name=\"door_color\" aria-describedby=\"gf-err-door_color\"><div class=\"gf-radio-card-inner\"><div class=\"gf-radio-card-img-wrap\"><img decoding=\"async\" src=\"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/Anthracite.png\" alt=\"Anthracite\" class=\"gf-radio-card-img\"><\/div><span class=\"gf-radio-card-text\"><span class=\"gf-radio-card-label\">Anthracite<\/span><\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"door_color\" value=\"Black\" required aria-required=\"true\" data-name=\"door_color\" aria-describedby=\"gf-err-door_color\"><div class=\"gf-radio-card-inner\"><div class=\"gf-radio-card-img-wrap\"><img decoding=\"async\" src=\"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/Black.png\" alt=\"Black\" class=\"gf-radio-card-img\"><\/div><span class=\"gf-radio-card-text\"><span class=\"gf-radio-card-label\">Black<\/span><\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"door_color\" value=\"White\" required aria-required=\"true\" data-name=\"door_color\" aria-describedby=\"gf-err-door_color\"><div class=\"gf-radio-card-inner\"><div class=\"gf-radio-card-img-wrap\"><img decoding=\"async\" src=\"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/White-1.jpg\" alt=\"White\" class=\"gf-radio-card-img\"><\/div><span class=\"gf-radio-card-text\"><span class=\"gf-radio-card-label\">White<\/span><\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><\/div><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-door_color\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"5\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 6 \u2014 Hardware<\/h2>\n                                                                            <p class=\"gf-step-description\">Choose handle colour.<\/p>\n                                            <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-radio gf-field-name-handle_color\"\n             data-field-name=\"handle_color\" id=\"handle-colour\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-handle_color\" aria-required=\"true\"><legend class=\"gf-label\">Choose the colour of your handles<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"gf-radio-cards gf-cards-iconleft\"><label class=\"gf-radio-card\"><input type=\"radio\" name=\"handle_color\" value=\"Anthracite\" required aria-required=\"true\" data-name=\"handle_color\" aria-describedby=\"gf-err-handle_color\"><div class=\"gf-radio-card-inner\"><div class=\"gf-radio-card-img-wrap\"><img decoding=\"async\" src=\"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/handle1.png\" alt=\"Anthracite\" class=\"gf-radio-card-img\"><\/div><span class=\"gf-radio-card-text\"><span class=\"gf-radio-card-label\">Anthracite<\/span><\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"handle_color\" value=\"Black\" required aria-required=\"true\" data-name=\"handle_color\" aria-describedby=\"gf-err-handle_color\"><div class=\"gf-radio-card-inner\"><div class=\"gf-radio-card-img-wrap\"><img decoding=\"async\" src=\"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/handle2.png\" alt=\"Black\" class=\"gf-radio-card-img\"><\/div><span class=\"gf-radio-card-text\"><span class=\"gf-radio-card-label\">Black<\/span><\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"handle_color\" value=\"White\" required aria-required=\"true\" data-name=\"handle_color\" aria-describedby=\"gf-err-handle_color\"><div class=\"gf-radio-card-inner\"><div class=\"gf-radio-card-img-wrap\"><img decoding=\"async\" src=\"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/handle3.png\" alt=\"White\" class=\"gf-radio-card-img\"><\/div><span class=\"gf-radio-card-text\"><span class=\"gf-radio-card-label\">White<\/span><\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><\/div><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-handle_color\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-select gf-field-name-trickle_vents\"\n             data-field-name=\"trickle_vents\" id=\"trickle-vents\">\n        <label class=\"gf-label\" for=\"gf-field-trickle_vents\">Number of trickle vents (each vent rated at 5000EA)<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/label><select name=\"trickle_vents\" id=\"gf-field-trickle_vents\" required aria-required=\"true\" data-name=\"trickle_vents\" aria-describedby=\"gf-err-trickle_vents\" class=\"gf-select\"><option value=\"\">\u2014 Please select \u2014<\/option><option value=\"0\"  selected='selected'>0<\/option><option value=\"1\" >1<\/option><option value=\"2\" >2<\/option><option value=\"3\" >3<\/option><option value=\"4\" >4<\/option><option value=\"5\" >5<\/option><option value=\"Unsure\" >Unsure<\/option><\/select><span class=\"gf-field-error\" id=\"gf-err-trickle_vents\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"6\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 7 \u2014 Cill &amp; Threshold<\/h2>\n                                                                    <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-radio gf-field-name-cill\"\n             data-field-name=\"cill\" id=\"door-cill\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-cill\" aria-required=\"true\"><legend class=\"gf-label\">Choose one option.<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"gf-radio-cards\"><label class=\"gf-radio-card\"><input type=\"radio\" name=\"cill\" value=\"No Cill\" required aria-required=\"true\" data-name=\"cill\" aria-describedby=\"gf-err-cill\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">No Cill<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"cill\" value=\"90 mm\" required aria-required=\"true\" data-name=\"cill\" aria-describedby=\"gf-err-cill\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">90 mm<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"cill\" value=\"150 mm\" required aria-required=\"true\" data-name=\"cill\" aria-describedby=\"gf-err-cill\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">150 mm<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"cill\" value=\"180 mm\" required aria-required=\"true\" data-name=\"cill\" aria-describedby=\"gf-err-cill\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">180 mm<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"cill\" value=\"230 mm\" required aria-required=\"true\" data-name=\"cill\" aria-describedby=\"gf-err-cill\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">230 mm<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"cill\" value=\"Integrated\" required aria-required=\"true\" data-name=\"cill\" aria-describedby=\"gf-err-cill\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Integrated<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><\/div><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-cill\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-radio gf-field-name-threshold\"\n             data-field-name=\"threshold\" data-logic=\"{&quot;action&quot;:&quot;hide&quot;,&quot;match&quot;:&quot;any&quot;,&quot;rules&quot;:[{&quot;field&quot;:&quot;cill&quot;,&quot;operator&quot;:&quot;is&quot;,&quot;value&quot;:&quot;Integrated&quot;},{&quot;field&quot;:&quot;cill&quot;,&quot;operator&quot;:&quot;is&quot;,&quot;value&quot;:&quot;No Cill&quot;}]}\" id=\"door-threshold\">\n        <fieldset class=\"gf-fieldset\" role=\"radiogroup\" aria-describedby=\"gf-err-threshold\" aria-required=\"true\"><legend class=\"gf-label\">Choose threshold type.<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/legend><div class=\"gf-radio-cards\"><label class=\"gf-radio-card\"><input type=\"radio\" name=\"threshold\" value=\"Standard 55mm\" required aria-required=\"true\" data-name=\"threshold\" aria-describedby=\"gf-err-threshold\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Standard 55mm<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><label class=\"gf-radio-card\"><input type=\"radio\" name=\"threshold\" value=\"Low 20mm\" required aria-required=\"true\" data-name=\"threshold\" aria-describedby=\"gf-err-threshold\"><div class=\"gf-radio-card-inner\"><span class=\"gf-radio-card-label\">Low 20mm<\/span><span class=\"gf-radio-card-sub\">Not weather rated<\/span><span class=\"gf-radio-card-check\"><\/span><\/div><\/label><\/div><\/fieldset><span class=\"gf-field-error\" id=\"gf-err-threshold\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                            <button type=\"button\" class=\"gf-btn gf-btn-next\">Next \u2192<\/button>\n                                            <\/div>\n                <\/div>\n                            <div class=\"gf-step-panel \"\n                     data-step-index=\"7\">\n\n                    \n                                                            <div class=\"gf-step-header\">\n                                                <h2>Step 8 \u2014 Review your door and get a quote<\/h2>\n                                                                    <\/div>\n                    \n                    <div class=\"gf-fields\">\n                            <div class=\"gf-field gf-field-text gf-field-name-fullname gf-w-half\"\n             data-field-name=\"fullname\">\n        <label class=\"gf-label\" for=\"gf-field-fullname\">Full Name<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" name=\"fullname\" id=\"gf-field-fullname\" class=\"gf-input\" placeholder=\"John Doe\"  required aria-required=\"true\"  data-name=\"fullname\" aria-describedby=\"gf-err-fullname\"><span class=\"gf-field-error\" id=\"gf-err-fullname\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-email gf-field-name-email gf-w-half\"\n             data-field-name=\"email\">\n        <label class=\"gf-label\" for=\"gf-field-email\">Email Address<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/label><input type=\"email\" name=\"email\" id=\"gf-field-email\" class=\"gf-input\" placeholder=\"example@gmail.com\" required aria-required=\"true\" data-name=\"email\" aria-describedby=\"gf-err-email\"><span class=\"gf-field-error\" id=\"gf-err-email\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-tel gf-field-name-phone gf-w-half\"\n             data-field-name=\"phone\">\n        <label class=\"gf-label\" for=\"gf-field-phone\">Phone No.<span class=\"gf-required-star\" aria-hidden=\"true\">*<\/span><\/label><input type=\"tel\" name=\"phone\" id=\"gf-field-phone\" class=\"gf-input\" placeholder=\"123-456-7890\" required aria-required=\"true\" data-name=\"phone\" aria-describedby=\"gf-err-phone\"><span class=\"gf-field-error\" id=\"gf-err-phone\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-text gf-field-name-company gf-w-half\"\n             data-field-name=\"company\">\n        <label class=\"gf-label\" for=\"gf-field-company\">Company Name (if applicable)<\/label><input type=\"text\" name=\"company\" id=\"gf-field-company\" class=\"gf-input\" placeholder=\"Company X\"   data-name=\"company\" aria-describedby=\"gf-err-company\"><span class=\"gf-field-error\" id=\"gf-err-company\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>        <div class=\"gf-field gf-field-address gf-field-name-address\"\n             data-field-name=\"address\">\n        <label class=\"gf-label\" id=\"gf-label-address\">Address<\/label><div class=\"gf-composite\" role=\"group\" aria-labelledby=\"gf-label-address\"><div class=\"gf-composite-row gf-composite-street\"><input type=\"text\" name=\"address_street\" class=\"gf-input\" placeholder=\"Street\" aria-label=\"Street\" aria-describedby=\"gf-err-address\"><input type=\"text\" name=\"address_no\" class=\"gf-input\" placeholder=\"No.\" aria-label=\"No.\" aria-describedby=\"gf-err-address\"><\/div><div class=\"gf-composite-row gf-composite-zip\"><input type=\"text\" name=\"address_zip\" class=\"gf-input\" placeholder=\"ZIP\" aria-label=\"ZIP\" inputmode=\"numeric\" pattern=\"[0-9]{4,5}\" aria-describedby=\"gf-err-address\"><input type=\"text\" name=\"address_city\" class=\"gf-input\" placeholder=\"City\" aria-label=\"City\" aria-describedby=\"gf-err-address\"><\/div><input type=\"text\" name=\"address_country\" class=\"gf-input\" placeholder=\"Country\" aria-label=\"Country\" value=\"Germany\" aria-describedby=\"gf-err-address\"><\/div><span class=\"gf-field-error\" id=\"gf-err-address\" role=\"alert\" aria-live=\"polite\"><\/span><\/div>                    <\/div>\n\n                    <div class=\"gf-step-nav\">\n                                                    <button type=\"button\" class=\"gf-btn gf-btn-prev\">\u2190 Back<\/button>\n                                                                                                        <button type=\"button\" class=\"gf-btn gf-btn-submit\">\n                                <span class=\"gf-btn-text\">Submit<\/span>\n                                <span class=\"gf-btn-spinner\" style=\"display:none;\"><\/span>\n                            <\/button>\n                                            <\/div>\n                <\/div>\n                        <\/div>\n\n            <!-- UF Spam-Protection 5-Layer (auto) --><div style=\"display:none !important;position:absolute;left:-9999px\" aria-hidden=\"true\"><input type=\"text\" name=\"gf_hp_email\" value=\"\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\" data-uf-spam-field=\"1\"><input type=\"hidden\" name=\"gf_load_t\" value=\"\" data-uf-spam-field=\"1\"><input type=\"hidden\" name=\"gf_js_proof\" value=\"\" data-uf-proof=\"1ecd08dc0243d849420b081dd7fb8db7ce7c1746\" data-uf-spam-field=\"1\"><input type=\"hidden\" name=\"gf_mouse\" value=\"0\" data-uf-spam-field=\"1\"><\/div>\n            <!-- Messages -->\n                        <div class=\"gf-messages\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/div>\n\n            \n        <\/div>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-714af18 e-con-full e-flex e-con e-child\" data-id=\"714af18\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67a3c73 elementor-widget elementor-widget-html\" data-id=\"67a3c73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"bifold-preview\" data-max-height=\"520\"><\/div>\r\n<script>\/* =====================================================================\r\n   Bifold Door \u2014 live SVG preview (jQuery)  v1.3\r\n   ---------------------------------------------------------------------\r\n   CSS IDs to set on your fields in the Ultimate Form builder:\r\n     dimension-width, dimension-height, door-location, door-panels,\r\n     opening-direction, folding-arrangement-in, folding-arrangement-out,\r\n     door-colour, handle-colour, trickle-vents,\r\n     door-cill, door-threshold            <-- new in v1.3\r\n\r\n   Drop this HTML block on every step you want the drawing on:\r\n     <div class=\"bifold-preview\"><\/div>\r\n     <div class=\"bifold-preview\" data-max-height=\"420\"><\/div>   (bigger)\r\n\r\n   v1.2 \u2014 panel count follows the width table (PANEL_RANGES).\r\n   v1.3 \u2014 draws the cill and threshold.\r\n          Cill projects below the frame, scaled from the chosen depth\r\n          (90\/150\/180\/230 mm) and drawn slim + flush when Integrated.\r\n          Threshold is a band across the base of the frame, thin for\r\n          Low 20 mm, thicker for Standard 55 mm. When the cill is\r\n          Integrated the threshold is ignored, matching the form logic.\r\n   ===================================================================== *\/\r\n(function ($) {\r\n  'use strict';\r\n\r\n  var TARGET        = '.bifold-preview';\r\n  var HIDDEN        = 'bifold_preview_svg';\r\n  var BF_MAX_HEIGHT = 320;\r\n\r\n  \/* ---------- WIDTH TABLE \u2014 must match your conditional logic --------- *\/\r\n  \/* panel count : [ min width mm, max width mm ] inclusive               *\/\r\n  var PANEL_RANGES = {\r\n    2: [1200, 2350],\r\n    3: [1650, 3700],\r\n    4: [2400, 4800],\r\n    5: [3000, 6000],\r\n    6: [3600, 6950],\r\n    7: [4200, 8400]\r\n  };\r\n\r\n  \/* true = the script also shows\/hides the panel radios itself.\r\n     Leave false while the plugin's own conditional logic does that.     *\/\r\n  var ENFORCE_PANEL_OPTIONS = false;\r\n\r\n  var FIELDS = {\r\n    width:    { id: 'dimension-width',         name: 'width' },\r\n    height:   { id: 'dimension-height',        name: 'height' },\r\n    place:    { id: 'door-location',           name: 'location' },\r\n    panels:   { id: 'door-panels',             name: 'number_of_panes' },\r\n    opening:  { id: 'opening-direction',       name: 'opening_side' },\r\n    layoutIn: { id: 'folding-arrangement-in',  name: 'panel_layout_in' },\r\n    layoutOut:{ id: 'folding-arrangement-out', name: 'panel_layout_out' },\r\n    door:     { id: 'door-colour',             name: 'door_color' },\r\n    handle:   { id: 'handle-colour',           name: 'handle_color' },\r\n    vents:    { id: 'trickle-vents',           name: 'trickle_vents' },\r\n    cill:     { id: 'door-cill',               name: 'cill' },\r\n    threshold:{ id: 'door-threshold',          name: 'threshold' }\r\n  };\r\n\r\n  var FINISH = {\r\n    'Anthracite': { face: '#3B4145', edge: '#22262A', light: '#565E64' },\r\n    'Black':      { face: '#1C1C1E', edge: '#000000', light: '#3A3A3D' },\r\n    'White':      { face: '#F2F4F6', edge: '#C2C8CF', light: '#FFFFFF' }\r\n  };\r\n  var DEF = 'Anthracite', INK = '#001E3C', MUTED = '#64748B';\r\n\r\n  function clamp(v, a, b) { return Math.min(b, Math.max(a, v)); }\r\n  function numOr(v, fb) { var n = parseFloat(v); return isFinite(n) ? n : fb; }\r\n  function esc(s) {\r\n    return String(s == null ? '' : s).replace(\/[&<>\"']\/g, function (c) {\r\n      return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c];\r\n    });\r\n  }\r\n\r\n  \/* ---------- cill \/ threshold parsing -------------------------------- *\/\r\n  \/* returns 0 (none \/ not chosen), a depth in mm, or the string\r\n     'integrated' when the cill is built into the frame                   *\/\r\n  function cillMM(v) {\r\n    if (!v) return 0;\r\n    if (\/integrated\/i.test(v)) return 'integrated';\r\n    var m = \/(\\d+)\/.exec(v);\r\n    return m ? parseInt(m[1], 10) : 0;\r\n  }\r\n  function thresholdMM(v) {\r\n    if (!v) return 0;\r\n    var m = \/(\\d+)\/.exec(v);\r\n    return m ? parseInt(m[1], 10) : 0;\r\n  }\r\n\r\n  \/* ---------- panel counts allowed at a given width ------------------- *\/\r\n  function allowedPanels(mmW) {\r\n    var list = [];\r\n    for (var k in PANEL_RANGES) {\r\n      if (!PANEL_RANGES.hasOwnProperty(k)) continue;\r\n      var r = PANEL_RANGES[k];\r\n      if (mmW >= r[0] && mmW <= r[1]) list.push(parseInt(k, 10));\r\n    }\r\n    return list.sort(function (a, b) { return a - b; });\r\n  }\r\n\r\n  \/* smallest count that fits; if the width is off the table, nearest one *\/\r\n  function panelsFor(mmW) {\r\n    var ok = allowedPanels(mmW);\r\n    if (ok.length) return ok[0];\r\n\r\n    var best = 3, bestGap = Infinity;\r\n    for (var k in PANEL_RANGES) {\r\n      if (!PANEL_RANGES.hasOwnProperty(k)) continue;\r\n      var r = PANEL_RANGES[k];\r\n      var gap = mmW < r[0] ? r[0] - mmW : mmW - r[1];\r\n      if (gap < bestGap) { bestGap = gap; best = parseInt(k, 10); }\r\n    }\r\n    return best;\r\n  }\r\n\r\n  \/* ---------- read a field -------------------------------------------- *\/\r\n  function fieldValue(key) {\r\n    var f = FIELDS[key], $wrap = $('#' + f.id);\r\n\r\n    if ($wrap.length) {\r\n      var $checked = $wrap.find('input[type=radio]:checked, input[type=checkbox]:checked');\r\n      if ($checked.length) return $.trim($checked.val());\r\n      if ($wrap.find('input[type=radio]').length) return '';\r\n      var $ctrl = $wrap.find('input, select, textarea').first();\r\n      if ($ctrl.length) return $.trim($ctrl.val() || '');\r\n      if ($wrap.is('input, select, textarea')) return $.trim($wrap.val() || '');\r\n    }\r\n\r\n    var $byName = $('[name=\"' + f.name + '\"]');\r\n    if (!$byName.length) return '';\r\n    if ($byName.first().is(':radio')) {\r\n      var $c = $byName.filter(':checked');\r\n      return $c.length ? $.trim($c.val()) : '';\r\n    }\r\n    return $.trim($byName.first().val() || '');\r\n  }\r\n\r\n  \/* ---------- keep the panel radios honest ---------------------------- *\/\r\n  \/* clears a checked panel radio the current width no longer allows, so a\r\n     hidden-but-checked option can never be submitted                     *\/\r\n  function prunePanelSelection(mmW) {\r\n    var ok = allowedPanels(mmW);\r\n    if (!ok.length) return false;\r\n\r\n    var $radios = $('#door-panels').find('input[type=radio]');\r\n    if (!$radios.length) $radios = $('[name=\"number_of_panes\"]');\r\n\r\n    var cleared = false;\r\n    $radios.each(function () {\r\n      var n = parseInt($(this).val(), 10);\r\n      var valid = ok.indexOf(n) !== -1;\r\n\r\n      if (ENFORCE_PANEL_OPTIONS) {\r\n        $(this).closest('label').toggle(valid);\r\n        $(this).prop('disabled', !valid);\r\n      }\r\n      if (!valid && this.checked) { this.checked = false; cleared = true; }\r\n    });\r\n    return cleared;\r\n  }\r\n\r\n  \/* ---------- state ---------------------------------------------------- *\/\r\n  function readState() {\r\n    var mmW = clamp(numOr(fieldValue('width'), 3000), 1200, 8400);\r\n    var mmH = clamp(numOr(fieldValue('height'), 2100), 500, 3050);\r\n\r\n    var picked = parseInt(fieldValue('panels'), 10) || 0;\r\n    var ok = allowedPanels(mmW);\r\n    var auto = false;\r\n\r\n    if (!picked || (ok.length && ok.indexOf(picked) === -1)) {\r\n      picked = panelsFor(mmW);\r\n      auto = true;\r\n    }\r\n\r\n    var opening = fieldValue('opening') || 'Open In';\r\n    var layout  = opening === 'Open Out' ? fieldValue('layoutOut') : fieldValue('layoutIn');\r\n\r\n    var cill = fieldValue('cill');\r\n    \/* the form hides the threshold when the cill is Integrated \u2014 mirror that\r\n       here so a stale radio can never reach the drawing                  *\/\r\n    var threshold = \/integrated\/i.test(cill) ? '' : fieldValue('threshold');\r\n\r\n    return {\r\n      mmW: mmW,\r\n      mmH: mmH,\r\n      panels: clamp(picked, 2, 7),\r\n      autoPanels: auto,\r\n      allowed: ok,\r\n      opening: opening,\r\n      layout: layout || 'All Folding Left',\r\n      door: fieldValue('door') || DEF,\r\n      handle: fieldValue('handle') || DEF,\r\n      vents: parseInt(fieldValue('vents'), 10) || 0,\r\n      cill: cill,\r\n      threshold: threshold,\r\n      place: fieldValue('place')\r\n    };\r\n  }\r\n\r\n  \/* ---------- leaf split ----------------------------------------------- *\/\r\n  function splitLayout(layout, n) {\r\n    var m;\r\n    if (layout === 'All Folding Left')   return { left: n, right: 0, traffic: null };\r\n    if (layout === 'All Folding Right')  return { left: 0, right: n, traffic: null };\r\n    if (layout === 'Traffic Door Left')  return { left: 1, right: n - 1, traffic: 'left' };\r\n    if (layout === 'Traffic Door Right') return { left: n - 1, right: 1, traffic: 'right' };\r\n\r\n    m = \/^(\\d+)\\s*:\\s*Left\\s*(?:&(?:amp;)?|and)\\s*Right$\/i.exec(layout);\r\n    if (m) { var k = clamp(parseInt(m[1], 10), 0, n); return { left: k, right: n - k, traffic: null }; }\r\n\r\n    m = \/^(\\d+)\\s*:\\s*Left\\s*(\\d+)\\s*:\\s*Right$\/i.exec(layout);\r\n    if (m) { var l = clamp(parseInt(m[1], 10), 0, n); return { left: l, right: n - l, traffic: null }; }\r\n\r\n    return { left: n, right: 0, traffic: null };\r\n  }\r\n\r\n  function caption(sp, opening) {\r\n    var bits = [];\r\n    if (sp.traffic === 'left')  bits.push('1 traffic door hinged left');\r\n    else if (sp.left)           bits.push(sp.left + (sp.left > 1 ? ' leaves' : ' leaf') + ' stack left');\r\n    if (sp.traffic === 'right') bits.push('1 traffic door hinged right');\r\n    else if (sp.right)          bits.push(sp.right + (sp.right > 1 ? ' leaves' : ' leaf') + ' stack right');\r\n    return bits.join('  \u00b7  ') + '  \u00b7  opens ' + (opening === 'Open Out' ? 'outward' : 'inward');\r\n  }\r\n\r\n  \/* one line describing the base of the door *\/\r\n  function baseCaption(s, cd, tmm) {\r\n    if (!s.cill) return 'Cill and threshold not chosen yet.';\r\n\r\n    var a = cd === 'integrated' ? 'Integrated cill'\r\n          : cd > 0             ? cd + ' mm cill'\r\n                               : 'No cill';\r\n\r\n    var b = cd === 'integrated' ? 'threshold built into the frame'\r\n          : !tmm               ? 'threshold not chosen yet'\r\n          : tmm <= 20          ? tmm + ' mm low threshold \u2014 not weather rated'\r\n                               : tmm + ' mm standard threshold';\r\n\r\n    return a + '  \u00b7  ' + b;\r\n  }\r\n\r\n  \/* ---------- draw ------------------------------------------------------ *\/\r\n  function buildSVG(s, uid) {\r\n    uid = uid || 'bf';\r\n    var GRAD = uid + '-glass', ARROW = uid + '-arrow';\r\n\r\n    var n = s.panels,\r\n        sp = splitLayout(s.layout, n),\r\n        out = s.opening === 'Open Out',\r\n        dc = FINISH[s.door] || FINISH[DEF],\r\n        hc = FINISH[s.handle] || FINISH[DEF];\r\n\r\n    var W = 760, H = Math.round(W * s.mmH \/ s.mmW);\r\n    if (H > 520) { H = 520; W = Math.round(H * s.mmW \/ s.mmH); }\r\n    if (H < 230) { H = 230; W = Math.round(H * s.mmW \/ s.mmH); }\r\n    if (W > 760) { W = 760; H = Math.round(W * s.mmH \/ s.mmW); }\r\n\r\n    var pxPerMm = H \/ s.mmH;\r\n\r\n    \/* cill + threshold sizes, from the same scale as the door ----------- *\/\r\n    var cd = cillMM(s.cill);\r\n    var integrated = (cd === 'integrated');\r\n    var cillH = 0, over = 0;\r\n    if (integrated)      { cillH = clamp(Math.round(70 * pxPerMm * 0.6), 7, 20);  over = 3; }\r\n    else if (cd > 0)     { cillH = clamp(Math.round(cd * pxPerMm * 0.55), 11, 46); over = 10; }\r\n\r\n    var tmm = integrated ? 0 : thresholdMM(s.threshold);\r\n    var tH  = tmm ? clamp(Math.round(tmm * pxPerMm), 4, 16) : 0;\r\n\r\n    var PAD = { l: 74, r: 40, t: 58, b: 112 + cillH };\r\n\r\n    var x0 = PAD.l, y0 = PAD.t, x1 = x0 + W, y1 = y0 + H;\r\n    var baseY = y1 + cillH;                       \/* bottom of the cill    *\/\r\n    var vbW = W + PAD.l + PAD.r, vbH = H + PAD.t + PAD.b;\r\n\r\n    var F = clamp(Math.round(W * 0.016), 9, 15);\r\n    var S = Math.max(6, Math.round(F * 0.8));\r\n    var ix0 = x0 + F, ix1 = x1 - F, iy0 = y0 + F, iy1 = y1 - F;\r\n    var pw = (ix1 - ix0) \/ n;\r\n    var g = [];\r\n\r\n    g.push('<rect x=\"' + x0 + '\" y=\"' + y0 + '\" width=\"' + W + '\" height=\"' + H +\r\n      '\" rx=\"2\" fill=\"' + dc.face + '\" stroke=\"' + dc.edge + '\" stroke-width=\"1.5\"\/>');\r\n    g.push('<rect x=\"' + ix0 + '\" y=\"' + iy0 + '\" width=\"' + (ix1 - ix0) + '\" height=\"' + (iy1 - iy0) +\r\n      '\" fill=\"' + dc.edge + '\" opacity=\".35\"\/>');\r\n\r\n    for (var i = 0; i < n; i++) {\r\n      var px = ix0 + i * pw,\r\n          gx = px + S, gy = iy0 + S,\r\n          gw = pw - 2 * S, gh = (iy1 - iy0) - 2 * S;\r\n\r\n      g.push('<rect x=\"' + px.toFixed(1) + '\" y=\"' + iy0 + '\" width=\"' + pw.toFixed(1) +\r\n        '\" height=\"' + (iy1 - iy0) + '\" fill=\"' + dc.face + '\" stroke=\"' + dc.edge + '\" stroke-width=\"1\"\/>');\r\n      g.push('<rect x=\"' + gx.toFixed(1) + '\" y=\"' + gy + '\" width=\"' + gw.toFixed(1) +\r\n        '\" height=\"' + gh + '\" fill=\"url(#' + GRAD + ')\"\/>');\r\n      g.push('<rect x=\"' + gx.toFixed(1) + '\" y=\"' + gy + '\" width=\"' + gw.toFixed(1) +\r\n        '\" height=\"' + gh + '\" fill=\"none\" stroke=\"' + dc.edge + '\" stroke-width=\".75\" opacity=\".55\"\/>');\r\n      g.push('<path d=\"M' + (gx + gw * 0.12).toFixed(1) + ' ' + (gy + gh) +\r\n        ' L' + (gx + gw * 0.55).toFixed(1) + ' ' + gy +\r\n        ' L' + (gx + gw * 0.72).toFixed(1) + ' ' + gy +\r\n        ' L' + (gx + gw * 0.29).toFixed(1) + ' ' + (gy + gh) + ' Z\" fill=\"#FFFFFF\" opacity=\".16\"\/>');\r\n    }\r\n\r\n    var dash = out ? '' : ' stroke-dasharray=\"7 5\"';\r\n    function foldV(idx, apexLeft) {\r\n      var px = ix0 + idx * pw, pxr = px + pw;\r\n      var ax = apexLeft ? px + S * 0.6 : pxr - S * 0.6;\r\n      var bx = apexLeft ? pxr - S * 0.6 : px + S * 0.6;\r\n      var ty = iy0 + S * 0.9, by = iy1 - S * 0.9, my = (iy0 + iy1) \/ 2;\r\n      return '<path d=\"M' + bx.toFixed(1) + ' ' + ty.toFixed(1) +\r\n        ' L' + ax.toFixed(1) + ' ' + my.toFixed(1) +\r\n        ' L' + bx.toFixed(1) + ' ' + by.toFixed(1) +\r\n        '\" fill=\"none\" stroke=\"' + INK + '\" stroke-width=\"1.6\" opacity=\".75\" stroke-linejoin=\"round\"' + dash + '\/>';\r\n    }\r\n    for (var a = 0; a < sp.left; a++)  g.push(foldV(a, a % 2 === 0));\r\n    for (var b = 0; b < sp.right; b++) g.push(foldV(n - 1 - b, b % 2 !== 0));\r\n\r\n    \/* ---- threshold: band across the base of the frame ----------------- *\/\r\n    if (tH) {\r\n      g.push('<rect x=\"' + x0 + '\" y=\"' + (y1 - tH) + '\" width=\"' + W + '\" height=\"' + tH +\r\n        '\" fill=\"' + dc.light + '\" stroke=\"' + dc.edge + '\" stroke-width=\"1\"\/>');\r\n      g.push('<line x1=\"' + x0 + '\" y1=\"' + (y1 - tH + 1.5).toFixed(1) + '\" x2=\"' + x1 +\r\n        '\" y2=\"' + (y1 - tH + 1.5).toFixed(1) + '\" stroke=\"' + dc.edge +\r\n        '\" stroke-width=\".75\" opacity=\".55\"\/>');\r\n    }\r\n\r\n    function hinge(x) {\r\n      return '<g opacity=\".9\"><circle cx=\"' + x.toFixed(1) + '\" cy=\"' + (iy0 + 26) + '\" r=\"3\" fill=\"' + INK + '\"\/>' +\r\n             '<circle cx=\"' + x.toFixed(1) + '\" cy=\"' + (iy1 - 26) + '\" r=\"3\" fill=\"' + INK + '\"\/><\/g>';\r\n    }\r\n    if (sp.left)  g.push(hinge(ix0 + 3));\r\n    if (sp.right) g.push(hinge(ix1 - 3));\r\n\r\n    function handle(x, faceRight) {\r\n      var cy = (iy0 + iy1) \/ 2, d = faceRight ? 1 : -1;\r\n      return '<g>' +\r\n        '<rect x=\"' + (x - 3.5) + '\" y=\"' + (cy - 34) + '\" width=\"7\" height=\"68\" rx=\"3.5\" fill=\"' + hc.face +\r\n          '\" stroke=\"' + hc.edge + '\" stroke-width=\".8\"\/>' +\r\n        '<rect x=\"' + (x + (d > 0 ? 2 : -16)) + '\" y=\"' + (cy - 5) + '\" width=\"14\" height=\"10\" rx=\"3\" fill=\"' + hc.face +\r\n          '\" stroke=\"' + hc.edge + '\" stroke-width=\".8\"\/>' +\r\n        '<circle cx=\"' + x + '\" cy=\"' + (cy + 44) + '\" r=\"3.2\" fill=\"' + hc.edge + '\" opacity=\".85\"\/><\/g>';\r\n    }\r\n    if (sp.traffic === 'left')       g.push(handle(ix0 + pw - S * 1.6, true));\r\n    else if (sp.traffic === 'right') g.push(handle(ix1 - pw + S * 1.6, false));\r\n    else if (sp.left && sp.right)    g.push(handle(ix0 + sp.left * pw - S * 1.6, true));\r\n    else if (sp.left)                g.push(handle(ix1 - S * 1.6, true));\r\n    else                             g.push(handle(ix0 + S * 1.6, false));\r\n\r\n    if (s.vents > 0) {\r\n      var vw = Math.min(58, (W - 60) \/ s.vents - 10), vh = Math.max(4, F - 5);\r\n      for (var v = 0; v < s.vents; v++) {\r\n        var vx = x0 + W * (v + 1) \/ (s.vents + 1) - vw \/ 2;\r\n        g.push('<rect x=\"' + vx.toFixed(1) + '\" y=\"' + (y0 + (F - vh) \/ 2).toFixed(1) +\r\n          '\" width=\"' + vw.toFixed(1) + '\" height=\"' + vh + '\" rx=\"' + (vh \/ 2) +\r\n          '\" fill=\"' + dc.light + '\" stroke=\"' + dc.edge + '\" stroke-width=\".8\"\/>');\r\n      }\r\n    }\r\n\r\n    \/* ---- cill: projects below the frame ------------------------------- *\/\r\n    if (cillH) {\r\n      var cx0 = x0 - over, cx1 = x1 + over,\r\n          fx0 = cx0 - 5,   fx1 = cx1 + 5,\r\n          topH = (cillH * 0.42);\r\n\r\n      g.push('<path d=\"M' + cx0 + ' ' + y1 + ' H' + cx1 +\r\n        ' L' + fx1 + ' ' + baseY + ' H' + fx0 + ' Z\" fill=\"' + dc.face +\r\n        '\" stroke=\"' + dc.edge + '\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>');\r\n      g.push('<path d=\"M' + cx0 + ' ' + y1 + ' H' + cx1 +\r\n        ' L' + (cx1 + 2.5) + ' ' + (y1 + topH).toFixed(1) +\r\n        ' H' + (cx0 - 2.5) + ' Z\" fill=\"' + dc.light + '\" opacity=\".5\"\/>');\r\n      if (cillH > 14) {\r\n        g.push('<line x1=\"' + (fx0 + 4) + '\" y1=\"' + (baseY - 3.5).toFixed(1) +\r\n          '\" x2=\"' + (fx1 - 4) + '\" y2=\"' + (baseY - 3.5).toFixed(1) +\r\n          '\" stroke=\"' + dc.edge + '\" stroke-width=\".9\" opacity=\".65\"\/>');\r\n      }\r\n    }\r\n\r\n    \/* floor line *\/\r\n    g.push('<line x1=\"' + (x0 - 22 - over) + '\" y1=\"' + (baseY + 1) + '\" x2=\"' + (x1 + 22 + over) +\r\n      '\" y2=\"' + (baseY + 1) + '\" stroke=\"' + INK + '\" stroke-width=\"2\" opacity=\".55\"\/>');\r\n\r\n    var dimY = baseY + 34, dimX = x0 - 40;\r\n    g.push('<g stroke=\"' + INK + '\" stroke-width=\"1\" opacity=\".8\">' +\r\n      '<line x1=\"' + x0 + '\" y1=\"' + dimY + '\" x2=\"' + x1 + '\" y2=\"' + dimY +\r\n        '\" marker-start=\"url(#' + ARROW + ')\" marker-end=\"url(#' + ARROW + ')\"\/>' +\r\n      '<line x1=\"' + x0 + '\" y1=\"' + (baseY + 6) + '\" x2=\"' + x0 + '\" y2=\"' + (dimY + 6) + '\" opacity=\".45\"\/>' +\r\n      '<line x1=\"' + x1 + '\" y1=\"' + (baseY + 6) + '\" x2=\"' + x1 + '\" y2=\"' + (dimY + 6) + '\" opacity=\".45\"\/>' +\r\n      '<line x1=\"' + dimX + '\" y1=\"' + y0 + '\" x2=\"' + dimX + '\" y2=\"' + y1 +\r\n        '\" marker-start=\"url(#' + ARROW + ')\" marker-end=\"url(#' + ARROW + ')\"\/>' +\r\n      '<line x1=\"' + (dimX - 6) + '\" y1=\"' + y0 + '\" x2=\"' + (x0 - 6) + '\" y2=\"' + y0 + '\" opacity=\".45\"\/>' +\r\n      '<line x1=\"' + (dimX - 6) + '\" y1=\"' + y1 + '\" x2=\"' + (x0 - 6) + '\" y2=\"' + y1 + '\" opacity=\".45\"\/><\/g>');\r\n    g.push('<text x=\"' + ((x0 + x1) \/ 2) + '\" y=\"' + (dimY - 8) + '\" class=\"bf-dim\" text-anchor=\"middle\">' +\r\n      Math.round(s.mmW) + ' mm<\/text>');\r\n    g.push('<text class=\"bf-dim\" text-anchor=\"middle\" transform=\"translate(' + (dimX - 9) + ',' +\r\n      ((y0 + y1) \/ 2) + ') rotate(-90)\">' + Math.round(s.mmH) + ' mm<\/text>');\r\n\r\n    \/* headings *\/\r\n    g.push('<text x=\"' + x0 + '\" y=\"' + (y0 - 30) + '\" class=\"bf-title\">' +\r\n      esc(n + '-panel bifold' + (s.place ? '  \u00b7  ' + s.place : '')) + '<\/text>');\r\n    g.push('<text x=\"' + x0 + '\" y=\"' + (y0 - 12) + '\" class=\"bf-note\">' +\r\n      esc(s.door) + ' frame  \u00b7  ' + esc(s.handle) + ' handles' +\r\n      (s.vents > 0 ? '  \u00b7  ' + s.vents + ' trickle vent' + (s.vents > 1 ? 's' : '') : '') + '<\/text>');\r\n    g.push('<text x=\"' + x1 + '\" y=\"' + (y0 - 12) + '\" class=\"bf-note\" text-anchor=\"end\">Viewed from outside<\/text>');\r\n\r\n    g.push('<text x=\"' + x0 + '\" y=\"' + (baseY + 66) + '\" class=\"bf-note\">' + esc(caption(sp, s.opening)) + '<\/text>');\r\n    g.push('<text x=\"' + x0 + '\" y=\"' + (baseY + 82) + '\" class=\"bf-note\">' + esc(baseCaption(s, cd, tmm)) + '<\/text>');\r\n\r\n    \/* footnote: either the fold-line key, or why this panel count is shown *\/\r\n    var foot = s.autoPanels\r\n      ? (s.allowed && s.allowed.length\r\n          ? 'Shown with ' + n + ' panels \u2014 the fewest that suit ' + Math.round(s.mmW) +\r\n            ' mm. Options at this width: ' + s.allowed.join(', ') + '.'\r\n          : 'Shown with ' + n + ' panels \u2014 ' + Math.round(s.mmW) + ' mm is outside the standard range.')\r\n      : (out ? 'Solid fold lines \u2014 leaves swing towards you.'\r\n             : 'Dashed fold lines \u2014 leaves swing away from you.') + '  Dots mark the hinged jamb.';\r\n    g.push('<text x=\"' + x0 + '\" y=\"' + (baseY + 98) + '\" class=\"bf-note\" opacity=\".75\">' + esc(foot) + '<\/text>');\r\n\r\n    var aria = n + ' panel bifold, ' + Math.round(s.mmW) + ' by ' + Math.round(s.mmH) + ' mm, ' +\r\n      s.door + ', ' + s.layout + ', ' + s.opening +\r\n      (s.cill ? ', ' + s.cill + ' cill' : '') +\r\n      (s.threshold ? ', ' + s.threshold + ' threshold' : '');\r\n\r\n    return '<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 ' + vbW + ' ' + vbH + '\" ' +\r\n      'width=\"' + vbW + '\" height=\"' + vbH + '\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\" ' +\r\n      'aria-label=\"' + esc(aria) + '\">' +\r\n      '<defs>' +\r\n        '<linearGradient id=\"' + GRAD + '\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">' +\r\n          '<stop offset=\"0%\" stop-color=\"#D9E6F2\"\/><stop offset=\"45%\" stop-color=\"#BFD3E6\"\/>' +\r\n          '<stop offset=\"100%\" stop-color=\"#9FBAD2\"\/><\/linearGradient>' +\r\n        '<marker id=\"' + ARROW + '\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto-start-reverse\">' +\r\n          '<path d=\"M0 5 L10 1.5 L10 8.5 Z\" fill=\"' + INK + '\"\/><\/marker>' +\r\n        '<style>' +\r\n          '.bf-title{font:600 15px\/1.2 ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;fill:' + INK + '}' +\r\n          '.bf-note{font:400 11.5px\/1.3 ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;fill:' + MUTED + '}' +\r\n          '.bf-dim{font:600 11.5px\/1 ui-monospace,Menlo,Consolas,monospace;fill:' + INK + '}' +\r\n        '<\/style>' +\r\n      '<\/defs>' + g.join('') + '<\/svg>';\r\n  }\r\n\r\n  \/* ---------- styles ---------------------------------------------------- *\/\r\n  var CSS =\r\n    '.bifold-preview{display:block;margin:0 0 18px;text-align:center}' +\r\n    '.bifold-preview svg{display:inline-block!important;width:auto!important;height:auto!important;' +\r\n      'max-width:100%!important;max-height:var(--bf-max-h,' + BF_MAX_HEIGHT + 'px)!important}' +\r\n    '@media (max-width:640px){.bifold-preview svg{max-height:var(--bf-max-h-sm,220px)!important}}';\r\n\r\n  function injectCSS() {\r\n    if (document.getElementById('bf-preview-css')) return;\r\n    $('<style id=\"bf-preview-css\">').text(CSS).appendTo('head');\r\n  }\r\n\r\n  \/* ---------- render + bind --------------------------------------------- *\/\r\n  function render() {\r\n    var $all = $(TARGET);\r\n    if (!$all.length) return;\r\n\r\n    var mmW = clamp(numOr(fieldValue('width'), 3000), 1200, 8400);\r\n    prunePanelSelection(mmW);          \/\/ no event fired, so this can't loop\r\n\r\n    var state = readState();\r\n\r\n    $all.each(function (i) {\r\n      var $c = $(this);\r\n      var cap = parseInt($c.attr('data-max-height'), 10);\r\n      if (cap) $c.css('--bf-max-h', cap + 'px');\r\n      $c.html(buildSVG(state, 'bf' + i));\r\n    });\r\n\r\n    $('[name=\"' + HIDDEN + '\"]').val(buildSVG(state, 'bfmail'));\r\n  }\r\n\r\n  $(function () {\r\n    if (!$(TARGET).length) return;\r\n    injectCSS();\r\n\r\n    $(document).on('input change',\r\n      '.ultimate-form input, .ultimate-form select, .ultimate-form textarea', render);\r\n\r\n    $(document).on('click',\r\n      '.gf-btn-next, .gf-btn-prev, .gf-progress-node, .gf-radio-card, .gf-radio-label',\r\n      function () { setTimeout(render, 80); });\r\n\r\n    render();\r\n  });\r\n\r\n  window.BifoldPreview = {\r\n    build: buildSVG,\r\n    read: readState,\r\n    render: render,\r\n    split: splitLayout,\r\n    allowedPanels: allowedPanels,\r\n    panelsFor: panelsFor,\r\n    cillMM: cillMM,\r\n    thresholdMM: thresholdMM,\r\n    ranges: PANEL_RANGES\r\n  };\r\n\r\n})(jQuery);<\/script>\t\t\t\t<\/div>\n\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>GET IN TOUCH Request A Quote Built Around Your Home Create Your Perfect Bifold Doors Build bespoke aluminium bifold doors to suit your space. Our configurator lets you customise every detail and generates an instant, competitive quote with no obligation to purchase.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2393","page","type-page","status-publish","hentry"],"blocksy_meta":{"page_title_panel":"","has_hero_section":"disabled","73d1961b1312c61361055d62c0b51a27":"","hero_section":"type-1","hero_elements":[{"id":"custom_title","enabled":true,"heading_tag":"h1","title":"Home"},{"id":"custom_description","enabled":true,"description_visibility":{"desktop":true,"tablet":true,"mobile":false}},{"id":"custom_meta","enabled":false,"meta_elements":[{"id":"author","enabled":true,"label":"By","has_author_avatar":"yes","avatar_size":25},{"id":"post_date","enabled":true,"label":"On","date_format_source":"default","date_format":"M j, Y"},{"id":"updated_date","enabled":false,"label":"On","date_format_source":"default","date_format":"M j, Y"},{"id":"categories","enabled":false,"label":"In","style":"simple"},{"id":"comments","enabled":true}],"page_meta_elements":{"joined":true,"articles_count":true,"comments":true}},{"id":"breadcrumbs","enabled":false}],"d24bbe04794e734ebeb686dd85a891cc":"","hero_alignment1":"CT_CSS_SKIP_RULE","hero_margin":40,"hero_alignment2":"center","hero_vertical_alignment":"center","b5545ebe3acdf0a81d2a4e8d72e293e7":"","hero_structure":"narrow","21a42e7ab7f360fb5fd659c4203f1d70":"","page_title_bg_type":"featured_image","custom_hero_background":{"attachment_id":null},"page_title_image_size":"full","parallax":{"desktop":false,"tablet":false,"mobile":false},"2819d4b0fc6c54ff87240c190b5603c0":"","hero_height":"250px","pageTitleFont":{"family":"Default","variation":"Default","size":"30px","line-height":"CT_CSS_SKIP_RULE","letter-spacing":"CT_CSS_SKIP_RULE","text-transform":"CT_CSS_SKIP_RULE","text-decoration":"CT_CSS_SKIP_RULE"},"pageTitleFontColor":{"default":{"color":"CT_CSS_SKIP_RULEDEFAULT"}},"pageMetaFont":{"family":"Default","variation":"n6","size":"12px","line-height":"1.3","letter-spacing":"CT_CSS_SKIP_RULE","text-transform":"uppercase","text-decoration":"CT_CSS_SKIP_RULE"},"pageMetaFontColor":{"default":{"color":"CT_CSS_SKIP_RULEDEFAULT"},"hover":{"color":"CT_CSS_SKIP_RULEDEFAULT"}},"page_meta_button_type_font_colors":{"default":{"color":"CT_CSS_SKIP_RULEDEFAULT"},"hover":{"color":"CT_CSS_SKIP_RULEDEFAULT"}},"page_meta_button_type_background_colors":{"default":{"color":"CT_CSS_SKIP_RULEDEFAULT"},"hover":{"color":"CT_CSS_SKIP_RULEDEFAULT"}},"pageExcerptFont":{"family":"Default","variation":"Default","size":"CT_CSS_SKIP_RULE","line-height":"CT_CSS_SKIP_RULE","letter-spacing":"CT_CSS_SKIP_RULE","text-transform":"CT_CSS_SKIP_RULE","text-decoration":"CT_CSS_SKIP_RULE"},"pageExcerptColor":{"default":{"color":"CT_CSS_SKIP_RULEDEFAULT"}},"breadcrumbsFont":{"family":"Default","variation":"Default","size":"CT_CSS_SKIP_RULE","line-height":"CT_CSS_SKIP_RULE","letter-spacing":"CT_CSS_SKIP_RULE","text-transform":"CT_CSS_SKIP_RULE","text-decoration":"CT_CSS_SKIP_RULE"},"breadcrumbsFontColor":{"default":{"color":"CT_CSS_SKIP_RULEDEFAULT"},"initial":{"color":"CT_CSS_SKIP_RULEDEFAULT"},"hover":{"color":"CT_CSS_SKIP_RULEDEFAULT"}},"pageTitleOverlay":{"background_type":"color","background_pattern":"type-1","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"#e5e7ea"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"CT_CSS_SKIP_RULE"}}},"pageTitleBackground":{"background_type":"color","background_pattern":"type-1","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"#e5e7ea"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"var(--theme-palette-color-6)"}}},"pageTitlePadding":{"top":"50px","bottom":"50px","left":"auto","right":"auto","linked":true},"e5f84bfb1451736dd519be017f3b8908":"","page_structure_type":"default","cd04af0b28349ff9ae8912f28d4931ec":"","content_style_source":"inherit","content_style":"wide","vertical_spacing_source":"custom","content_area_spacing":"none","background":{"background_type":"color","background_pattern":"type-1","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"#e5e7ea"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"CT_CSS_SKIP_RULE"}}},"content_background":{"background_type":"color","background_pattern":"type-1","background_image":{"attachment_id":null,"x":0,"y":0},"gradient":"linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)","background_repeat":"repeat","background_size":"auto","background_attachment":"scroll","patternColor":{"default":{"color":"#e5e7ea"}},"overlayColor":{"default":{"color":"CT_CSS_SKIP_RULE"}},"backgroundColor":{"default":{"color":"var(--theme-palette-color-8)"}}},"content_boxed_shadow":{"inherit":false,"blur":18,"spread":-6,"v_offset":12,"h_offset":0,"inset":false,"enable":true,"color":{"color":"rgba(34, 56, 101, 0.04)"}},"content_boxed_border":{"width":1,"style":"none","color":{"color":"rgba(44,62,80,0.2)"}},"content_boxed_radius":{"top":"3px","bottom":"3px","left":"3px","right":"3px","linked":true},"boxed_content_spacing":{"desktop":{"top":"40px","bottom":"40px","left":"40px","right":"40px","linked":true},"tablet":{"top":"35px","bottom":"35px","left":"35px","right":"35px","linked":true},"mobile":{"top":"20px","bottom":"20px","left":"20px","right":"20px","linked":true}},"dfe8615bdb7bb0523a6f436392a2e395":"","disable_featured_image":"no","disable_share_box":"no","disable_header":"no","disable_footer":"no","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Request a Free Glazing Quote | R\u00fcut Glazing<\/title>\n<meta name=\"description\" content=\"Get a free, no-obligation quote from R\u00fcut Glazing for premium aluminium windows, bifold doors, sliding doors, rooflights, and bespoke glazing solutions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Request a Free Glazing Quote | R\u00fcut Glazing\" \/>\n<meta property=\"og:description\" content=\"Get a free, no-obligation quote from R\u00fcut Glazing for premium aluminium windows, bifold doors, sliding doors, rooflights, and bespoke glazing solutions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/\" \/>\n<meta property=\"og:site_name\" content=\"R\u00fcut Glazing\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-04T06:46:12+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/index.php\\\/bifold-doors-quote\\\/\",\"url\":\"https:\\\/\\\/ruutglazing.co.uk\\\/index.php\\\/bifold-doors-quote\\\/\",\"name\":\"Request a Free Glazing Quote | R\u00fcut Glazing\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/#website\"},\"datePublished\":\"2026-07-29T10:13:31+00:00\",\"dateModified\":\"2026-08-04T06:46:12+00:00\",\"description\":\"Get a free, no-obligation quote from R\u00fcut Glazing for premium aluminium windows, bifold doors, sliding doors, rooflights, and bespoke glazing solutions.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/index.php\\\/bifold-doors-quote\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ruutglazing.co.uk\\\/index.php\\\/bifold-doors-quote\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/index.php\\\/bifold-doors-quote\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ruutglazing.co.uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bifold Doors Quote\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/#website\",\"url\":\"https:\\\/\\\/ruutglazing.co.uk\\\/\",\"name\":\"R\u00fcut Glazing\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ruutglazing.co.uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/#organization\",\"name\":\"R\u00fcut Glazing\",\"url\":\"https:\\\/\\\/ruutglazing.co.uk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ruutglazing.co.uk\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/RUUT_Glazing_Logo_White_Background-1.png\",\"contentUrl\":\"https:\\\/\\\/ruutglazing.co.uk\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/RUUT_Glazing_Logo_White_Background-1.png\",\"width\":1000,\"height\":470,\"caption\":\"R\u00fcut Glazing\"},\"image\":{\"@id\":\"https:\\\/\\\/ruutglazing.co.uk\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Request a Free Glazing Quote | R\u00fcut Glazing","description":"Get a free, no-obligation quote from R\u00fcut Glazing for premium aluminium windows, bifold doors, sliding doors, rooflights, and bespoke glazing solutions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/","og_locale":"en_US","og_type":"article","og_title":"Request a Free Glazing Quote | R\u00fcut Glazing","og_description":"Get a free, no-obligation quote from R\u00fcut Glazing for premium aluminium windows, bifold doors, sliding doors, rooflights, and bespoke glazing solutions.","og_url":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/","og_site_name":"R\u00fcut Glazing","article_modified_time":"2026-08-04T06:46:12+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/","url":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/","name":"Request a Free Glazing Quote | R\u00fcut Glazing","isPartOf":{"@id":"https:\/\/ruutglazing.co.uk\/#website"},"datePublished":"2026-07-29T10:13:31+00:00","dateModified":"2026-08-04T06:46:12+00:00","description":"Get a free, no-obligation quote from R\u00fcut Glazing for premium aluminium windows, bifold doors, sliding doors, rooflights, and bespoke glazing solutions.","breadcrumb":{"@id":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ruutglazing.co.uk\/index.php\/bifold-doors-quote\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ruutglazing.co.uk\/"},{"@type":"ListItem","position":2,"name":"Bifold Doors Quote"}]},{"@type":"WebSite","@id":"https:\/\/ruutglazing.co.uk\/#website","url":"https:\/\/ruutglazing.co.uk\/","name":"R\u00fcut Glazing","description":"","publisher":{"@id":"https:\/\/ruutglazing.co.uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ruutglazing.co.uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ruutglazing.co.uk\/#organization","name":"R\u00fcut Glazing","url":"https:\/\/ruutglazing.co.uk\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ruutglazing.co.uk\/#\/schema\/logo\/image\/","url":"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/RUUT_Glazing_Logo_White_Background-1.png","contentUrl":"https:\/\/ruutglazing.co.uk\/wp-content\/uploads\/2026\/07\/RUUT_Glazing_Logo_White_Background-1.png","width":1000,"height":470,"caption":"R\u00fcut Glazing"},"image":{"@id":"https:\/\/ruutglazing.co.uk\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/2393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=2393"}],"version-history":[{"count":73,"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/2393\/revisions"}],"predecessor-version":[{"id":2585,"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/2393\/revisions\/2585"}],"wp:attachment":[{"href":"https:\/\/ruutglazing.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=2393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}