{"id":3496,"date":"2026-04-16T11:30:47","date_gmt":"2026-04-16T11:30:47","guid":{"rendered":"https:\/\/joseph-mews.com.tr\/?page_id=3496"},"modified":"2026-04-16T12:49:38","modified_gmt":"2026-04-16T12:49:38","slug":"st-paul","status":"publish","type":"page","link":"https:\/\/joseph-mews.com.tr\/tr\/st-paul\/","title":{"rendered":"AZ\u0130Z PAUL"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3496\" class=\"elementor elementor-3496\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc61153 e-flex e-con-boxed qodef-elementor-content-no e-con e-parent\" data-id=\"fc61153\" 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-add1da5 elementor-widget elementor-widget-slider_revolution\" data-id=\"add1da5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"slider_revolution.default\">\n\t\t\t\t\t\n\t\t<div class=\"wp-block-themepunch-revslider\">\n\t\t\t\t<p class=\"rs-p-wp-fix\"><\/p>\n\t\t\t\t<sr7-module data-alias=\"camden\" data-id=\"10\" id=\"SR7_10_1\" class=\"rs-ov-hidden\" data-version=\"6.7.39\">\n\t\t\t\t\t<sr7-adjuster><\/sr7-adjuster>\n\t\t\t\t\t<sr7-content>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_10_1-17\" data-key=\"17\">\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_10_1-29\" data-key=\"29\">\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_10_1-29-7\" class=\"sr7-layer\" srscsrc>\n<a class=\"qodef-shortcode qodef-m qodef-button qodef-layout--minimal qodef-html--link\" href=\"#none\" target=\"_self\"  >\n\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" width=\"74px\" height=\"40px\" viewBox=\"0 0 74 40\" enable-background=\"new 0 0 74 40\" xml:space=\"preserve\"><g><circle opacity=\"0.5\" fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\" style=\"\"><\/circle><circle fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\"><\/circle><\/g><polygon fill=\"rgb(252,193,28)\" points=\"49.525,14.265 48.898,15.044 54.481,19.541 6.444,19.541 6.444,20.541 54.464,20.541 48.901,24.954 49.522,25.737 56.7,20.044 \"><\/polygon><\/svg>\n<\/a><\/sr7-txt>\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t<\/sr7-content>\n\t\t\t\t\t<image_lists style=\"display:none\">\n\t\t\t\t\t\t<img data-src=\"\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_2ea8bt2ea8bt2ea8__1_-removebg-preview.png\" data-libid=\"3420\" data-lib=\"medialibrary\" title=\"Gemini_Generated_Image_2ea8bt2ea8bt2ea8__1_-removebg-preview\" width=\"0\" height=\"0\" data-dbsrc=\"Ly9qb3NlcGgtbWV3cy5jb20udHIvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvR2VtaW5pX0dlbmVyYXRlZF9JbWFnZV8yZWE4YnQyZWE4YnQyZWE4X18xXy1yZW1vdmViZy1wcmV2aWV3LnBuZw==\"\/>\n\t\t\t\t\t<\/image_lists>\n\t\t\t\t<\/sr7-module>\n\t\t\t\t<script>\n\t\t\t\t\tSR7.PMH ??={}; SR7.PMH[\"SR7_10_1\"] = {cn:100,state:false,fn: function() { if (_tpt!==undefined && _tpt.prepareModuleHeight !== undefined) {  _tpt.prepareModuleHeight({id:\"SR7_10_1\",el:[1100,1100,600,700,500],type:'standard',shdw:'0',gh:[1100,1100,600,500,400],gw:[1920,1920,1300,780,480],vpt:['-100px&#039;,&#039;-100px&#039;,&#039;-100px&#039;,&#039;-100px&#039;,&#039;-100px'],size:{fullWidth:true, fullHeight:false},mh:'0',onh:0,onw:0,bg:{color:'{\"orig\":\"transparent\",\"type\":\"solid\",\"string\":\"transparent\"}'}});   SR7.PMH[\"SR7_10_1\"].state=true;} else if(SR7.PMH[\"SR7_10_1\"].cn-->0)\tsetTimeout( SR7.PMH[\"SR7_10_1\"].fn,19);}};SR7.PMH[\"SR7_10_1\" ].fn();\n\t\t\t\t<\/script>\n<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9597c6a e-con-full qodef-elementor-content-grid elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"9597c6a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e9e366a e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"e9e366a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a570ae5 elementor-widget__width-initial elementor-widget elementor-widget-hendon_core_property_list\" data-id=\"a570ae5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hendon_core_property_list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"qodef-shortcode qodef-m qodef-property-list qodef-item-layout--info-aside qodef-grid qodef-layout--columns qodef-gutter--normal qodef-col-num--3 qodef-item-layout--info-aside qodef--no-bottom-space qodef-pagination--off qodef-responsive--custom qodef-col-num--1440--3 qodef-col-num--1366--3 qodef-col-num--1024--2 qodef-col-num--768--1 qodef-col-num--680--1 qodef-col-num--480--1\" data-options=\"{&quot;plugin&quot;:&quot;hendon_core&quot;,&quot;module&quot;:&quot;plugins\\\/property\\\/post-types\\\/property\\\/shortcodes&quot;,&quot;shortcode&quot;:&quot;property-list&quot;,&quot;post_type&quot;:&quot;property-item&quot;,&quot;next_page&quot;:&quot;2&quot;,&quot;max_pages_num&quot;:0,&quot;layout&quot;:&quot;info-aside&quot;,&quot;title_tag&quot;:&quot;h4&quot;,&quot;behavior&quot;:&quot;columns&quot;,&quot;images_proportion&quot;:&quot;full&quot;,&quot;columns&quot;:&quot;3&quot;,&quot;columns_responsive&quot;:&quot;custom&quot;,&quot;columns_1440&quot;:&quot;3&quot;,&quot;columns_1366&quot;:&quot;3&quot;,&quot;columns_1024&quot;:&quot;2&quot;,&quot;columns_768&quot;:&quot;1&quot;,&quot;columns_680&quot;:&quot;1&quot;,&quot;columns_480&quot;:&quot;1&quot;,&quot;space&quot;:&quot;normal&quot;,&quot;posts_per_page&quot;:&quot;-1&quot;,&quot;orderby&quot;:&quot;date&quot;,&quot;order&quot;:&quot;ASC&quot;,&quot;additional_params&quot;:&quot;tax&quot;,&quot;tax&quot;:&quot;property-category&quot;,&quot;tax_slug&quot;:&quot;apartments&quot;,&quot;pagination_type&quot;:&quot;no-pagination&quot;,&quot;object_class_name&quot;:&quot;HendonCorePropertyListShortcode&quot;,&quot;additional_query_args&quot;:{&quot;tax_query&quot;:[{&quot;taxonomy&quot;:&quot;property-category&quot;,&quot;field&quot;:&quot;slug&quot;,&quot;terms&quot;:&quot;apartments&quot;}]},&quot;query_array&quot;:{&quot;post_status&quot;:&quot;publish&quot;,&quot;post_type&quot;:&quot;property-item&quot;,&quot;posts_per_page&quot;:&quot;-1&quot;,&quot;orderby&quot;:&quot;date&quot;,&quot;order&quot;:&quot;ASC&quot;,&quot;ignore_sticky_posts&quot;:1,&quot;paged&quot;:1,&quot;tax_query&quot;:[{&quot;taxonomy&quot;:&quot;property-category&quot;,&quot;field&quot;:&quot;slug&quot;,&quot;terms&quot;:&quot;apartments&quot;}]},&quot;item_classes&quot;:&quot;qodef-e qodef-grid-item&quot;,&quot;posts_count&quot;:1,&quot;space_value&quot;:15}\">\n    <div class=\"qodef-grid-inner clear\">\n        <article class=\"qodef-e qodef-grid-item qodef-item--full post-3380 property-item type-property-item status-publish has-post-thumbnail hentry property-category-apartments\">\n    <div class=\"qodef-e-inner\">\n        <div class=\"qodef-e-image\">\n            \t<div class=\"qodef-e-media-image\">\n\t\t<a itemprop=\"url\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-item\/penny-place\/\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg.jpeg\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg.jpeg 1920w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-300x169.jpeg 300w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-1024x576.jpeg 1024w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-768x432.jpeg 768w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-1536x864.jpeg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/>\t\t<\/a>\n\t<\/div>\n\t        <div class=\"qodef-e-pattern-holder\"><\/div>\n        <\/div>\n        <div class=\"qodef-e-content\">\n            <h4 itemprop=\"name\" class=\"qodef-e-title entry-title\" >\n\t<a itemprop=\"url\" class=\"qodef-e-title-link\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-item\/penny-place\/\">\n\t\tPenny Place\t<\/a>\n<\/h4>                <div class=\"qodef-e-info-category\">\n                    <a itemprop=\"url\" class=\"qodef-e-category\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-category\/apartments\/\">\n                Apartments            <\/a>\n            <\/div>\n            \t\t<p itemprop=\"description\" class=\"qodef-e-excerpt\" >\n            A growing commuter city benefiting from affordability, strong rental demand, and proximity to major UK hubs.\t\t<\/p>\n\t                <div class=\"qodef-e-read-more\">\n        <a class=\"qodef-shortcode qodef-m qodef-button qodef-layout--minimal qodef-html--link\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-item\/penny-place\/\" target=\"_self\"  >\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" width=\"74px\" height=\"40px\" viewBox=\"0 0 74 40\" enable-background=\"new 0 0 74 40\" xml:space=\"preserve\"><g><circle opacity=\"0.5\" fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\" style=\"\"><\/circle><circle fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\"><\/circle><\/g><polygon fill=\"rgb(252,193,28)\" points=\"49.525,14.265 48.898,15.044 54.481,19.541 6.444,19.541 6.444,20.541 54.464,20.541 48.901,24.954 49.522,25.737 56.7,20.044 \"><\/polygon><\/svg><\/a>    <\/div>\n        <\/div>\n    <\/div>\n<\/article>    <\/div>\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f1856a elementor-widget elementor-widget-slider_revolution\" data-id=\"9f1856a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"slider_revolution.default\">\n\t\t\t\t\t\n\t\t<div class=\"wp-block-themepunch-revslider\">\n\t\t\t\t<p class=\"rs-p-wp-fix\"><\/p>\n\t\t\t\t<sr7-module data-alias=\"camden\" data-id=\"10\" id=\"SR7_10_2\" class=\"rs-ov-hidden\" data-version=\"6.7.39\">\n\t\t\t\t\t<sr7-adjuster><\/sr7-adjuster>\n\t\t\t\t\t<sr7-content>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_10_2-17\" data-key=\"17\">\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_10_2-29\" data-key=\"29\">\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_10_2-29-7\" class=\"sr7-layer\" srscsrc>\n<a class=\"qodef-shortcode qodef-m qodef-button qodef-layout--minimal qodef-html--link\" href=\"#none\" target=\"_self\"  >\n\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" width=\"74px\" height=\"40px\" viewBox=\"0 0 74 40\" enable-background=\"new 0 0 74 40\" xml:space=\"preserve\"><g><circle opacity=\"0.5\" fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\" style=\"\"><\/circle><circle fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\"><\/circle><\/g><polygon fill=\"rgb(252,193,28)\" points=\"49.525,14.265 48.898,15.044 54.481,19.541 6.444,19.541 6.444,20.541 54.464,20.541 48.901,24.954 49.522,25.737 56.7,20.044 \"><\/polygon><\/svg>\n<\/a><\/sr7-txt>\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t<\/sr7-content>\n\t\t\t\t\t<image_lists style=\"display:none\">\n\t\t\t\t\t\t<img data-src=\"\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_2ea8bt2ea8bt2ea8__1_-removebg-preview.png\" data-libid=\"3420\" data-lib=\"medialibrary\" title=\"Gemini_Generated_Image_2ea8bt2ea8bt2ea8__1_-removebg-preview\" width=\"0\" height=\"0\" data-dbsrc=\"Ly9qb3NlcGgtbWV3cy5jb20udHIvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvR2VtaW5pX0dlbmVyYXRlZF9JbWFnZV8yZWE4YnQyZWE4YnQyZWE4X18xXy1yZW1vdmViZy1wcmV2aWV3LnBuZw==\"\/>\n\t\t\t\t\t<\/image_lists>\n\t\t\t\t<\/sr7-module>\n\t\t\t\t<script>\n\t\t\t\t\tSR7.PMH ??={}; SR7.PMH[\"SR7_10_2\"] = {cn:100,state:false,fn: function() { if (_tpt!==undefined && _tpt.prepareModuleHeight !== undefined) {  _tpt.prepareModuleHeight({id:\"SR7_10_2\",el:[1100,1100,600,700,500],type:'standard',shdw:'0',gh:[1100,1100,600,500,400],gw:[1920,1920,1300,780,480],vpt:['-100px&#039;,&#039;-100px&#039;,&#039;-100px&#039;,&#039;-100px&#039;,&#039;-100px'],size:{fullWidth:true, fullHeight:false},mh:'0',onh:0,onw:0,bg:{color:'{\"orig\":\"transparent\",\"type\":\"solid\",\"string\":\"transparent\"}'}});   SR7.PMH[\"SR7_10_2\"].state=true;} else if(SR7.PMH[\"SR7_10_2\"].cn-->0)\tsetTimeout( SR7.PMH[\"SR7_10_2\"].fn,19);}};SR7.PMH[\"SR7_10_2\" ].fn();\n\t\t\t\t<\/script>\n<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dd3a86c e-flex e-con-boxed qodef-elementor-content-no e-con e-parent\" data-id=\"dd3a86c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0688a88 e-con-full qodef-elementor-content-grid elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"0688a88\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-022fb6a e-con-full e-flex qodef-elementor-content-no e-con e-child\" data-id=\"022fb6a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee14040 elementor-widget__width-initial elementor-widget elementor-widget-hendon_core_property_list\" data-id=\"ee14040\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hendon_core_property_list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"qodef-shortcode qodef-m qodef-property-list qodef-item-layout--info-aside qodef-grid qodef-layout--columns qodef-gutter--normal qodef-col-num--3 qodef-item-layout--info-aside qodef--no-bottom-space qodef-pagination--off qodef-responsive--custom qodef-col-num--1440--3 qodef-col-num--1366--3 qodef-col-num--1024--2 qodef-col-num--768--1 qodef-col-num--680--1 qodef-col-num--480--1\" data-options=\"{&quot;plugin&quot;:&quot;hendon_core&quot;,&quot;module&quot;:&quot;plugins\\\/property\\\/post-types\\\/property\\\/shortcodes&quot;,&quot;shortcode&quot;:&quot;property-list&quot;,&quot;post_type&quot;:&quot;property-item&quot;,&quot;next_page&quot;:&quot;2&quot;,&quot;max_pages_num&quot;:0,&quot;layout&quot;:&quot;info-aside&quot;,&quot;title_tag&quot;:&quot;h4&quot;,&quot;behavior&quot;:&quot;columns&quot;,&quot;images_proportion&quot;:&quot;full&quot;,&quot;columns&quot;:&quot;3&quot;,&quot;columns_responsive&quot;:&quot;custom&quot;,&quot;columns_1440&quot;:&quot;3&quot;,&quot;columns_1366&quot;:&quot;3&quot;,&quot;columns_1024&quot;:&quot;2&quot;,&quot;columns_768&quot;:&quot;1&quot;,&quot;columns_680&quot;:&quot;1&quot;,&quot;columns_480&quot;:&quot;1&quot;,&quot;space&quot;:&quot;normal&quot;,&quot;posts_per_page&quot;:&quot;-1&quot;,&quot;orderby&quot;:&quot;date&quot;,&quot;order&quot;:&quot;ASC&quot;,&quot;additional_params&quot;:&quot;tax&quot;,&quot;tax&quot;:&quot;property-category&quot;,&quot;tax_slug&quot;:&quot;apartments&quot;,&quot;pagination_type&quot;:&quot;no-pagination&quot;,&quot;object_class_name&quot;:&quot;HendonCorePropertyListShortcode&quot;,&quot;additional_query_args&quot;:{&quot;tax_query&quot;:[{&quot;taxonomy&quot;:&quot;property-category&quot;,&quot;field&quot;:&quot;slug&quot;,&quot;terms&quot;:&quot;apartments&quot;}]},&quot;query_array&quot;:{&quot;post_status&quot;:&quot;publish&quot;,&quot;post_type&quot;:&quot;property-item&quot;,&quot;posts_per_page&quot;:&quot;-1&quot;,&quot;orderby&quot;:&quot;date&quot;,&quot;order&quot;:&quot;ASC&quot;,&quot;ignore_sticky_posts&quot;:1,&quot;paged&quot;:1,&quot;tax_query&quot;:[{&quot;taxonomy&quot;:&quot;property-category&quot;,&quot;field&quot;:&quot;slug&quot;,&quot;terms&quot;:&quot;apartments&quot;}]},&quot;item_classes&quot;:&quot;qodef-e qodef-grid-item&quot;,&quot;posts_count&quot;:1,&quot;space_value&quot;:15}\">\n    <div class=\"qodef-grid-inner clear\">\n        <article class=\"qodef-e qodef-grid-item qodef-item--full post-3380 property-item type-property-item status-publish has-post-thumbnail hentry property-category-apartments\">\n    <div class=\"qodef-e-inner\">\n        <div class=\"qodef-e-image\">\n            \t<div class=\"qodef-e-media-image\">\n\t\t<a itemprop=\"url\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-item\/penny-place\/\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg.jpeg\" class=\"attachment-full size-full wp-post-image\" alt=\"\" srcset=\"https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg.jpeg 1920w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-300x169.jpeg 300w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-1024x576.jpeg 1024w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-768x432.jpeg 768w, https:\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Wakefield_1920-x-1080.jpg-1536x864.jpeg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/>\t\t<\/a>\n\t<\/div>\n\t        <div class=\"qodef-e-pattern-holder\"><\/div>\n        <\/div>\n        <div class=\"qodef-e-content\">\n            <h4 itemprop=\"name\" class=\"qodef-e-title entry-title\" >\n\t<a itemprop=\"url\" class=\"qodef-e-title-link\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-item\/penny-place\/\">\n\t\tPenny Place\t<\/a>\n<\/h4>                <div class=\"qodef-e-info-category\">\n                    <a itemprop=\"url\" class=\"qodef-e-category\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-category\/apartments\/\">\n                Apartments            <\/a>\n            <\/div>\n            \t\t<p itemprop=\"description\" class=\"qodef-e-excerpt\" >\n            A growing commuter city benefiting from affordability, strong rental demand, and proximity to major UK hubs.\t\t<\/p>\n\t                <div class=\"qodef-e-read-more\">\n        <a class=\"qodef-shortcode qodef-m qodef-button qodef-layout--minimal qodef-html--link\" href=\"https:\/\/joseph-mews.com.tr\/tr\/property-item\/penny-place\/\" target=\"_self\"  >\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" width=\"74px\" height=\"40px\" viewBox=\"0 0 74 40\" enable-background=\"new 0 0 74 40\" xml:space=\"preserve\"><g><circle opacity=\"0.5\" fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\" style=\"\"><\/circle><circle fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\"><\/circle><\/g><polygon fill=\"rgb(252,193,28)\" points=\"49.525,14.265 48.898,15.044 54.481,19.541 6.444,19.541 6.444,20.541 54.464,20.541 48.901,24.954 49.522,25.737 56.7,20.044 \"><\/polygon><\/svg><\/a>    <\/div>\n        <\/div>\n    <\/div>\n<\/article>    <\/div>\n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4bcf633 elementor-widget elementor-widget-slider_revolution\" data-id=\"4bcf633\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"slider_revolution.default\">\n\t\t\t\t\t\n\t\t<div class=\"wp-block-themepunch-revslider\">\n\t\t\t\t<p class=\"rs-p-wp-fix\"><\/p>\n\t\t\t\t<sr7-module data-alias=\"camden\" data-id=\"10\" id=\"SR7_10_3\" class=\"rs-ov-hidden\" data-version=\"6.7.39\">\n\t\t\t\t\t<sr7-adjuster><\/sr7-adjuster>\n\t\t\t\t\t<sr7-content>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_10_3-17\" data-key=\"17\">\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t\t<sr7-slide id=\"SR7_10_3-29\" data-key=\"29\">\n\t\t\t\t\t\t\t<sr7-txt id=\"SR7_10_3-29-7\" class=\"sr7-layer\" srscsrc>\n<a class=\"qodef-shortcode qodef-m qodef-button qodef-layout--minimal qodef-html--link\" href=\"#none\" target=\"_self\"  >\n\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" width=\"74px\" height=\"40px\" viewBox=\"0 0 74 40\" enable-background=\"new 0 0 74 40\" xml:space=\"preserve\"><g><circle opacity=\"0.5\" fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\" style=\"\"><\/circle><circle fill=\"none\" stroke=\"rgb(252,193,28)\" cx=\"71%\" cy=\"50%\" r=\"24%\"><\/circle><\/g><polygon fill=\"rgb(252,193,28)\" points=\"49.525,14.265 48.898,15.044 54.481,19.541 6.444,19.541 6.444,20.541 54.464,20.541 48.901,24.954 49.522,25.737 56.7,20.044 \"><\/polygon><\/svg>\n<\/a><\/sr7-txt>\n\t\t\t\t\t\t<\/sr7-slide>\n\t\t\t\t\t<\/sr7-content>\n\t\t\t\t\t<image_lists style=\"display:none\">\n\t\t\t\t\t\t<img data-src=\"\/\/joseph-mews.com.tr\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_2ea8bt2ea8bt2ea8__1_-removebg-preview.png\" data-libid=\"3420\" data-lib=\"medialibrary\" title=\"Gemini_Generated_Image_2ea8bt2ea8bt2ea8__1_-removebg-preview\" width=\"0\" height=\"0\" data-dbsrc=\"Ly9qb3NlcGgtbWV3cy5jb20udHIvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvR2VtaW5pX0dlbmVyYXRlZF9JbWFnZV8yZWE4YnQyZWE4YnQyZWE4X18xXy1yZW1vdmViZy1wcmV2aWV3LnBuZw==\"\/>\n\t\t\t\t\t<\/image_lists>\n\t\t\t\t<\/sr7-module>\n\t\t\t\t<script>\n\t\t\t\t\tSR7.PMH ??={}; SR7.PMH[\"SR7_10_3\"] = {cn:100,state:false,fn: function() { if (_tpt!==undefined && _tpt.prepareModuleHeight !== undefined) {  _tpt.prepareModuleHeight({id:\"SR7_10_3\",el:[1100,1100,600,700,500],type:'standard',shdw:'0',gh:[1100,1100,600,500,400],gw:[1920,1920,1300,780,480],vpt:['-100px&#039;,&#039;-100px&#039;,&#039;-100px&#039;,&#039;-100px&#039;,&#039;-100px'],size:{fullWidth:true, fullHeight:false},mh:'0',onh:0,onw:0,bg:{color:'{\"orig\":\"transparent\",\"type\":\"solid\",\"string\":\"transparent\"}'}});   SR7.PMH[\"SR7_10_3\"].state=true;} else if(SR7.PMH[\"SR7_10_3\"].cn-->0)\tsetTimeout( SR7.PMH[\"SR7_10_3\"].fn,19);}};SR7.PMH[\"SR7_10_3\" ].fn();\n\t\t\t\t<\/script>\n<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4921b4b e-con-full e-flex qodef-elementor-content-no e-con e-parent\" data-id=\"4921b4b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4032d77 elementor-widget elementor-widget-html\" data-id=\"4032d77\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"html-st-paul\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=5.0\">\n<meta name=\"theme-color\" content=\"#1C1710\">\n<title>No. 30 St Pauls \u2014 Birmingham Investment | Joseph Mews<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500&family=Montserrat:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n<style>\n@font-face{font-family:'JMNumerics';src:url('https:\/\/fonts.gstatic.com\/s\/fraunces\/v31\/6NUu8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnDiw.woff2') format('woff2');font-weight:300;font-style:normal;unicode-range:U+0030-0039,U+002C,U+002E,U+002B,U+002D,U+002F,U+0025,U+00A3,U+20AC,U+0024;}\n@font-face{font-family:'JMNumerics';src:url('https:\/\/fonts.gstatic.com\/s\/fraunces\/v31\/6NUu8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnDiw.woff2') format('woff2');font-weight:400;font-style:normal;unicode-range:U+0030-0039,U+002C,U+002E,U+002B,U+002D,U+002F,U+0025,U+00A3,U+20AC,U+0024;}\n\n:root{\n  --gold:#B8A06A;--gold-light:#D4BC8A;--gold-dim:#9B8A6A;\n  --dark:#1C1710;--dark2:#0c0a07;\n  --cream:#F5F0E8;--cream-mid:#EDE8DF;\n  --green:#2E6E42;--white:#ffffff;\n}\n*{box-sizing:border-box;margin:0;padding:0;}\nhtml{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}\nbody{font-family:'Montserrat',sans-serif;background:var(--cream);color:var(--dark);overflow-x:hidden;-webkit-font-smoothing:antialiased;}\nbutton,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer;}\ninput,textarea,select{font-size:16px;}\nbody *{font-feature-settings:\"lnum\" 1,\"tnum\" 1;}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   PROJECT IDENTITY BAR\n   (sits right below the hero video)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.proj-identity{\n  background:var(--dark);\n  padding:0 10%;\n  display:flex;align-items:stretch;justify-content:space-between;\n  border-bottom:0.5px solid rgba(184,160,106,0.12);\n  position:sticky;top:0;z-index:90;\n}\n.proj-id-left{\n  display:flex;flex-direction:column;justify-content:center;\n  padding:22px 0;\n  border-right:0.5px solid rgba(184,160,106,0.1);\n  padding-right:48px;\n}\n.proj-id-tag{font-size:8px;letter-spacing:4px;text-transform:uppercase;color:var(--gold-dim);font-weight:500;margin-bottom:5px;}\n.proj-id-name{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:22px;font-weight:300;color:#fff;line-height:1;\n}\n.proj-id-city{font-size:9px;letter-spacing:2px;color:rgba(255,255,255,0.3);margin-top:4px;text-transform:uppercase;}\n.proj-id-pills{\n  display:flex;align-items:center;gap:8px;padding:0 40px;flex:1;\n  flex-wrap:wrap;\n}\n.proj-pill{\n  display:inline-flex;align-items:center;gap:7px;\n  padding:7px 16px;\n  background:rgba(184,160,106,0.08);\n  border:0.5px solid rgba(184,160,106,0.18);\n  font-size:8px;letter-spacing:2px;text-transform:uppercase;\n  color:rgba(255,255,255,0.55);font-weight:500;\n}\n.proj-pill-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);}\n.proj-pill.badge-avail .proj-pill-dot{background:#4CAF50;}\n.proj-id-right{\n  display:flex;align-items:center;gap:0;\n  border-left:0.5px solid rgba(184,160,106,0.1);\n  padding-left:40px;\n}\n.proj-id-price{\n  display:flex;flex-direction:column;align-items:flex-end;\n  padding-right:32px;\n  border-right:0.5px solid rgba(184,160,106,0.1);\n  margin-right:32px;\n}\n.proj-id-price-label{font-size:7.5px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,0.3);margin-bottom:4px;}\n.proj-id-price-value{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:24px;font-weight:300;color:var(--gold);line-height:1;\n}\n.enquire-btn{\n  padding:14px 28px;background:var(--gold);color:var(--dark);\n  font-size:8.5px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;\n  text-decoration:none;white-space:nowrap;transition:background 0.22s;\n  border:none;\n}\n.enquire-btn:hover{background:var(--gold-light);}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   GALLERY\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.gallery-sec{\n  position:relative;background:var(--dark2);overflow:hidden;\n}\n\n\/* Main slider *\/\n.gallery-main{\n  position:relative;\n  width:100%;\n  height:85vh;\n  min-height:480px;\n  overflow:hidden;\n}\n.gallery-slides{\n  display:flex;height:100%;width:100%;\n  transition:transform 0.75s cubic-bezier(0.25,0.46,0.45,0.94);\n}\n.gallery-slide{\n  flex:0 0 100%;width:100%;height:100%;position:relative;overflow:hidden;\n  background:var(--dark2);\n}\n\/* animated placeholder bg *\/\n.gallery-slide-ph{\n  position:absolute;inset:0;\n  display:flex;align-items:center;justify-content:center;\n  flex-direction:column;gap:16px;\n}\n.gallery-slide-ph-label{\n  font-size:9px;letter-spacing:4px;text-transform:uppercase;\n  color:rgba(184,160,106,0.2);text-align:center;line-height:2.5;\n  border:0.5px solid rgba(184,160,106,0.08);padding:20px 40px;\n}\n.gallery-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}\n.gallery-slide-overlay{\n  position:absolute;inset:0;\n  background:linear-gradient(to top,rgba(12,10,7,0.45) 0%,transparent 40%);\n  z-index:1;pointer-events:none;\n}\n\n\/* slide counter *\/\n.gallery-counter{\n  position:absolute;bottom:28px;left:10%;z-index:5;\n  display:flex;align-items:center;gap:12px;\n}\n.gallery-counter-current{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:32px;font-weight:300;color:var(--gold);line-height:1;\n}\n.gallery-counter-sep{width:28px;height:0.5px;background:rgba(255,255,255,0.25);}\n.gallery-counter-total{font-size:10px;letter-spacing:2px;color:rgba(255,255,255,0.3);}\n\n\/* nav arrows *\/\n.gallery-arrow{\n  position:absolute;top:50%;z-index:5;\n  transform:translateY(-50%);\n  width:52px;height:52px;\n  border:0.5px solid rgba(184,160,106,0.25);\n  background:rgba(28,23,16,0.65);\n  backdrop-filter:blur(8px);\n  display:flex;align-items:center;justify-content:center;\n  cursor:pointer;transition:background 0.22s,border-color 0.22s;\n  font-size:18px;color:rgba(255,255,255,0.7);\n}\n.gallery-arrow:hover{background:rgba(184,160,106,0.2);border-color:var(--gold);}\n.gallery-arrow-prev{left:10%;}\n.gallery-arrow-next{right:10%;}\n\n\/* dots *\/\n.gallery-dots{\n  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:5;\n  display:flex;gap:8px;\n}\n.gallery-dot{\n  width:24px;height:2px;background:rgba(255,255,255,0.2);\n  cursor:pointer;transition:background 0.25s,width 0.25s;\n}\n.gallery-dot.active{width:40px;background:var(--gold);}\n\n\/* category tabs *\/\n.gallery-tabs{\n  display:flex;background:var(--dark);border-top:0.5px solid rgba(184,160,106,0.08);\n}\n.gallery-tab{\n  flex:1;padding:16px;\n  font-size:9px;letter-spacing:3px;text-transform:uppercase;font-weight:500;\n  color:rgba(255,255,255,0.3);\n  border:none;background:transparent;\n  cursor:pointer;transition:color 0.22s,background 0.22s;\n  border-right:0.5px solid rgba(184,160,106,0.08);\n  border-bottom:2px solid transparent;\n}\n.gallery-tab:last-child{border-right:none;}\n.gallery-tab.active{color:var(--gold);border-bottom-color:var(--gold);}\n.gallery-tab:hover{color:rgba(255,255,255,0.7);background:rgba(184,160,106,0.04);}\n\n\/* thumbnail strip *\/\n.gallery-thumbs{\n  display:flex;gap:3px;padding:3px;background:var(--dark);overflow-x:auto;scrollbar-width:none;\n}\n.gallery-thumbs::-webkit-scrollbar{display:none;}\n.gallery-thumb{\n  flex:0 0 110px;height:68px;\n  position:relative;overflow:hidden;cursor:pointer;\n  background:#1a1710;\n  opacity:0.4;transition:opacity 0.22s;\n}\n.gallery-thumb.active{opacity:1;outline:1.5px solid var(--gold);}\n.gallery-thumb:hover{opacity:0.75;}\n.gallery-thumb-ph{\n  position:absolute;inset:0;\n  display:flex;align-items:center;justify-content:center;\n  font-size:7px;letter-spacing:2px;text-transform:uppercase;\n  color:rgba(184,160,106,0.15);\n}\n.gallery-thumb img{width:100%;height:100%;object-fit:cover;}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   OVERVIEW SECTION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.overview-sec{\n  display:grid;grid-template-columns:1fr 1fr;\n  border-top:none;\n}\n\n\/* Left \u2014 key info *\/\n.overview-left{\n  padding:88px 10%;\n  background:var(--cream);\n  display:flex;flex-direction:column;justify-content:center;\n}\n.sec-eyebrow{\n  display:flex;align-items:center;gap:12px;\n  font-size:9.5px;letter-spacing:4px;text-transform:uppercase;\n  color:var(--gold);margin-bottom:24px;font-weight:500;\n}\n.sec-eyebrow::before{content:'';display:block;width:24px;height:0.5px;background:var(--gold);}\n\n.overview-title{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:clamp(36px,4vw,54px);font-weight:300;\n  color:var(--dark);line-height:1.0;margin-bottom:28px;letter-spacing:-0.01em;\n}\n.overview-title em{font-style:italic;color:var(--gold-dim);}\n.overview-intro{\n  font-size:13px;color:rgba(28,23,16,0.45);line-height:1.9;margin-bottom:36px;max-width:440px;\n}\n\n\/* highlights list *\/\n.highlights{display:flex;flex-direction:column;gap:0;margin-bottom:40px;}\n.highlight-row{\n  display:flex;align-items:center;gap:18px;\n  padding:15px 0;border-bottom:0.5px solid rgba(28,23,16,0.07);\n}\n.highlight-row:first-child{border-top:0.5px solid rgba(28,23,16,0.07);}\n.hl-icon{\n  width:32px;height:32px;background:var(--dark);\n  display:flex;align-items:center;justify-content:center;\n  flex-shrink:0;\n}\n.hl-icon svg{width:14px;height:14px;}\n.hl-label{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(28,23,16,0.35);font-weight:500;}\n.hl-value{font-size:13px;color:var(--dark);font-weight:500;margin-left:auto;text-align:right;}\n\n\/* download buttons *\/\n.dl-buttons{display:flex;gap:10px;flex-wrap:wrap;}\n.dl-btn{\n  display:inline-flex;align-items:center;gap:10px;\n  padding:14px 24px;\n  background:var(--dark);color:#fff;\n  font-size:8.5px;letter-spacing:2.5px;text-transform:uppercase;font-weight:500;\n  text-decoration:none;border:none;cursor:pointer;\n  transition:background 0.22s;\n}\n.dl-btn:hover{background:#2e2820;}\n.dl-btn-outline{\n  background:transparent;color:var(--dark);\n  border:0.5px solid rgba(28,23,16,0.25);\n}\n.dl-btn-outline:hover{background:rgba(28,23,16,0.05);}\n.dl-btn svg{width:13px;height:13px;flex-shrink:0;}\n\n\/* Right \u2014 key stats panel *\/\n.overview-right{\n  background:var(--dark);\n  padding:88px 10%;\n  display:flex;flex-direction:column;justify-content:space-between;\n  position:relative;overflow:hidden;\n}\n.overview-right::before{\n  content:'';position:absolute;inset:0;pointer-events:none;\n  background:radial-gradient(ellipse 80% 70% at 80% 20%,rgba(184,160,106,0.10) 0%,transparent 55%);\n}\n.overview-right-title{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:clamp(24px,2.5vw,34px);font-weight:300;color:#fff;\n  line-height:1.2;margin-bottom:40px;position:relative;z-index:1;\n}\n.overview-right-title em{font-style:italic;color:var(--gold);}\n\n.key-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5px;position:relative;z-index:1;}\n.key-stat{\n  background:rgba(255,255,255,0.03);\n  border:0.5px solid rgba(184,160,106,0.08);\n  padding:28px 24px;\n  transition:background 0.3s;\n}\n.key-stat:hover{background:rgba(184,160,106,0.06);}\n.key-stat-n{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:clamp(24px,2.5vw,34px);font-weight:300;color:var(--gold);\n  line-height:1;margin-bottom:7px;\n}\n.key-stat-l{font-size:8px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,0.28);font-weight:500;}\n\n\/* CTA strip inside right panel *\/\n.overview-cta{\n  margin-top:40px;position:relative;z-index:1;\n  padding-top:32px;border-top:0.5px solid rgba(184,160,106,0.1);\n  display:flex;align-items:center;justify-content:space-between;gap:24px;\n}\n.overview-cta p{font-size:12px;color:rgba(255,255,255,0.3);line-height:1.7;max-width:220px;}\n.overview-cta a{\n  flex-shrink:0;padding:14px 28px;\n  background:var(--gold);color:var(--dark);\n  font-size:8.5px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;\n  text-decoration:none;transition:background 0.22s;white-space:nowrap;\n}\n.overview-cta a:hover{background:var(--gold-light);}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   GRADIENT TRANSITION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.grad-dark{height:72px;background:linear-gradient(to bottom,var(--cream) 0%,var(--dark2) 100%);}\n.grad-light{height:72px;background:linear-gradient(to bottom,var(--dark2) 0%,var(--cream) 100%);}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   LOCATION SECTION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.location-sec{\n  background:var(--dark2);\n  padding:96px 10% 112px;\n  position:relative;overflow:hidden;\n}\n.location-sec::before{\n  content:'';position:absolute;inset:0;pointer-events:none;\n  background:\n    radial-gradient(ellipse 70% 60% at 85% 30%,rgba(184,160,106,0.09) 0%,transparent 55%),\n    radial-gradient(ellipse 50% 70% at 15% 80%,rgba(100,75,35,0.06) 0%,transparent 50%);\n}\n.location-inner{\n  position:relative;z-index:1;\n  display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;\n}\n.location-left{}\n.location-eyebrow{\n  display:flex;align-items:center;gap:12px;\n  font-size:9.5px;letter-spacing:4px;text-transform:uppercase;\n  color:var(--gold);margin-bottom:24px;font-weight:500;\n}\n.location-eyebrow::before{content:'';display:block;width:24px;height:0.5px;background:var(--gold);}\n.location-title{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:clamp(38px,4.5vw,58px);font-weight:300;color:#fff;\n  line-height:0.95;letter-spacing:-0.02em;margin-bottom:28px;\n}\n.location-title em{font-style:italic;color:var(--gold);}\n.location-body{font-size:13px;color:rgba(255,255,255,0.35);line-height:1.95;margin-bottom:36px;max-width:440px;}\n\n\/* location stats row *\/\n.loc-stats{\n  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px;margin-bottom:36px;\n}\n.loc-stat{\n  background:rgba(255,255,255,0.03);border:0.5px solid rgba(184,160,106,0.08);\n  padding:22px 20px;\n}\n.loc-stat-n{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:26px;font-weight:300;color:var(--gold);line-height:1;margin-bottom:6px;\n}\n.loc-stat-l{font-size:7.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.22);font-weight:500;}\n\n\/* Right \u2014 reason cards *\/\n.location-right{}\n.location-reasons{display:flex;flex-direction:column;gap:1.5px;}\n.reason-card{\n  background:rgba(255,255,255,0.02);\n  border:0.5px solid rgba(184,160,106,0.07);\n  padding:28px 30px;\n  display:grid;grid-template-columns:24px 1fr;gap:20px;\n  align-items:start;\n  transition:background 0.3s;\n}\n.reason-card:hover{background:rgba(184,160,106,0.05);}\n.reason-n{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:13px;color:rgba(184,160,106,0.3);font-weight:300;padding-top:3px;\n}\n.reason-title{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:19px;font-weight:300;color:#fff;margin-bottom:6px;line-height:1.15;\n}\n.reason-body{font-size:11.5px;color:rgba(255,255,255,0.25);line-height:1.8;}\n\n\/* map placeholder *\/\n.loc-map-ph{\n  margin-top:32px;\n  background:rgba(255,255,255,0.02);border:0.5px solid rgba(184,160,106,0.1);\n  height:200px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;\n}\n.loc-map-ph-label{font-size:8.5px;letter-spacing:3px;text-transform:uppercase;color:rgba(184,160,106,0.2);}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CALCULATOR SECTION HEADER\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.calc-sec{background:var(--cream);}\n.calc-hd{\n  display:flex;align-items:flex-end;justify-content:space-between;\n  margin-bottom:40px;gap:32px;\n  padding:96px 10% 0;\n}\n.c-eyebrow{\n  display:flex;align-items:center;gap:12px;\n  font-size:10px;letter-spacing:4px;text-transform:uppercase;\n  color:var(--gold);margin-bottom:16px;font-weight:500;\n}\n.c-eyebrow::before{content:'';display:block;width:28px;height:0.5px;background:var(--gold);}\n.c-title{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:clamp(34px,3.8vw,50px);font-weight:300;color:var(--dark);line-height:1.0;\n}\n.c-title em{font-style:italic;color:var(--gold);}\n.c-sub{\n  max-width:360px;font-family:'Montserrat',sans-serif;\n  font-size:13px;color:rgba(28,23,16,0.38);line-height:1.9;text-align:right;flex-shrink:0;\n}\n#calculatorContainer{overflow:hidden;position:relative;}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   REVEAL ANIMATIONS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.75s ease,transform 0.75s ease;}\n.reveal.visible{opacity:1;transform:none;}\n.d2{transition-delay:0.1s;}.d3{transition-delay:0.2s;}.d4{transition-delay:0.3s;}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   RESPONSIVE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media(max-width:1200px){\n  .overview-left,.overview-right{padding:72px 5%;}\n  .location-sec{padding:80px 5% 96px;}\n  .calc-hd{padding:80px 5% 0;}\n}\n@media(max-width:1024px){\n  .proj-identity{padding:0 5%;}\n  .proj-id-pills{display:none;}\n  .overview-sec{grid-template-columns:1fr;}\n  .location-inner{grid-template-columns:1fr;gap:56px;}\n  .key-stats{grid-template-columns:repeat(4,1fr);}\n  .loc-stats{grid-template-columns:1fr 1fr;}\n  .calc-hd{flex-direction:column;align-items:flex-start;padding:72px 5% 0;}\n  .c-sub{text-align:left;max-width:100%;}\n}\n@media(max-width:768px){\n  .proj-identity{flex-direction:column;align-items:flex-start;padding:16px 5%;gap:12px;position:relative;}\n  .proj-id-left{border-right:none;padding-right:0;padding-bottom:0;}\n  .proj-id-right{border-left:none;padding-left:0;}\n  .gallery-arrow{width:40px;height:40px;font-size:14px;}\n  .gallery-arrow-prev{left:5%;}\n  .gallery-arrow-next{right:5%;}\n  .key-stats{grid-template-columns:1fr 1fr;}\n  .loc-stats{grid-template-columns:1fr;}\n  .dl-buttons{flex-direction:column;}\n  .overview-cta{flex-direction:column;align-items:flex-start;}\n  .gallery-tabs{overflow-x:auto;scrollbar-width:none;}\n  .gallery-tab{flex:0 0 auto;padding:14px 20px;}\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   LEAD FORM\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.form-sec{\n  position:relative;background:#fff;padding:0;overflow:hidden;\n}\n.form-inner{\n  display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:0;\n}\n.form-left-panel{\n  position:relative;background:var(--cream);\n  padding:96px 10%;overflow:hidden;\n}\n.form-left-panel::before{\n  content:'';position:absolute;top:-40px;right:-60px;\n  width:280px;height:280px;border-radius:50%;\n  background:radial-gradient(circle,rgba(184,160,106,0.12) 0%,transparent 70%);\n  pointer-events:none;\n}\n.form-left-panel::after{\n  content:'';position:absolute;bottom:60px;left:-40px;\n  width:200px;height:200px;border-radius:50%;\n  background:radial-gradient(circle,rgba(184,160,106,0.07) 0%,transparent 70%);\n  pointer-events:none;\n}\n.form-right-panel{\n  background:#fff;padding:96px 10% 96px 6%;\n  border-left:0.5px solid rgba(28,23,16,0.07);\n}\n.f-eyebrow{\n  display:flex;align-items:center;gap:12px;\n  font-size:10px;letter-spacing:4px;text-transform:uppercase;\n  color:var(--gold-dim);margin-bottom:16px;font-weight:500;\n}\n.f-eyebrow::before{content:'';display:block;width:28px;height:0.5px;background:var(--gold);}\n.f-title{\n  font-family:'JMNumerics','Cormorant Garamond',serif;\n  font-size:clamp(34px,3.8vw,50px);font-weight:300;color:var(--dark);line-height:1.0;margin-bottom:20px;\n}\n.f-title em{font-style:italic;color:var(--gold);}\n.f-trust{font-size:13px;color:rgba(28,23,16,0.45);line-height:1.95;margin-bottom:40px;}\n.f-feats{display:flex;flex-direction:column;gap:0;}\n.f-feat{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:0.5px solid rgba(28,23,16,0.06);}\n.f-feat:last-child{border-bottom:none;}\n.f-feat-dot{\n  width:32px;height:32px;flex-shrink:0;margin-top:2px;\n  border:0.5px solid rgba(184,160,106,0.25);\n  display:flex;align-items:center;justify-content:center;\n}\n.f-feat-txt{font-size:12px;color:rgba(28,23,16,0.5);line-height:1.7;}\n.f-feat-txt strong{color:var(--dark);display:block;font-weight:500;margin-bottom:2px;font-size:13px;}\n.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}\n.form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}\n.form-label{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(28,23,16,0.45);font-weight:500;}\n.form-input,.form-textarea{\n  border:0.5px solid rgba(28,23,16,0.15);background:transparent;\n  padding:13px 16px;font-family:'Montserrat',sans-serif;\n  font-size:13px;color:var(--dark);outline:none;\n  transition:border-color 0.22s;width:100%;\n}\n.form-input:focus,.form-textarea:focus{border-color:var(--gold);}\n.form-input::placeholder,.form-textarea::placeholder{color:rgba(28,23,16,0.25);}\n.form-textarea{resize:none;min-height:90px;}\n.form-submit{\n  width:100%;padding:16px;background:var(--dark);color:#fff;\n  font-family:'Montserrat',sans-serif;font-size:9px;\n  letter-spacing:3px;text-transform:uppercase;font-weight:500;\n  border:none;cursor:pointer;margin-top:8px;transition:background 0.22s;\n}\n.form-submit:hover{background:var(--gold);color:var(--dark);}\n.form-privacy{font-size:10px;color:rgba(28,23,16,0.3);line-height:1.7;margin-top:14px;}\n.footer{\n  background:var(--dark2);padding:28px 10%;\n  display:flex;justify-content:space-between;align-items:center;\n  border-top:0.5px solid rgba(184,160,106,0.08);\n}\n.footer-logo{font-family:'JMNumerics','Cormorant Garamond',serif;font-size:1.2rem;color:#fff;}\n.footer-copy{font-size:10px;color:rgba(255,255,255,0.15);letter-spacing:0.5px;}\n@media(max-width:1024px){\n  .form-inner{grid-template-columns:1fr;}\n  .form-left-panel,.form-right-panel{padding:64px 5%;}\n  .form-right-panel{border-left:none;border-top:0.5px solid rgba(28,23,16,0.07);}\n}\n@media(max-width:768px){\n  .form-row{grid-template-columns:1fr;}\n  .footer{flex-direction:column;gap:10px;text-align:center;padding:22px 5%;}\n}\n<\/style>\n<\/head>\n<body>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     \u2191 HERO VIDEO \/ NAV \u2014 ALREADY BUILT\n     EVERYTHING BELOW THIS LINE IS NEW\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n\n<!-- PROJECT IDENTITY BAR -->\n<div class=\"proj-identity\">\n  <div class=\"proj-id-left\">\n    <div class=\"proj-id-tag\">Birmingham \u00b7 Jewellery Quarter<\/div>\n    <div class=\"proj-id-name\">No. 30 St Pauls<\/div>\n    <div class=\"proj-id-city\">St Paul's Square, Jewellery Quarter, Birmingham<\/div>\n  <\/div>\n  <div class=\"proj-id-pills\">\n    <div class=\"proj-pill badge-avail\"><div class=\"proj-pill-dot\"><\/div>Now Available<\/div>\n  <\/div>\n  <div class=\"proj-id-right\">\n    <div class=\"proj-id-price\">\n      <div class=\"proj-id-price-label\">1-Bed from<\/div>\n      <div class=\"proj-id-price-value\">\u00a3249,950<\/div>\n    <\/div>\n    <a href=\"#enquire\" class=\"enquire-btn\">Register Interest<\/a>\n  <\/div>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     1. GALLERY\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"gallery-sec\">\n\n  <!-- Main Slider -->\n  <div class=\"gallery-main\" id=\"galleryMain\">\n    <div class=\"gallery-slides\" id=\"gallerySlides\">\n\n      <!-- Slide 1 \u2014 Exterior -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(145deg,#0f0d09 0%,#1e180e 40%,#0c0a07 100%);\">\n          <div style=\"position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 30% 50%,rgba(184,160,106,0.09) 0%,transparent 55%);\"><\/div>\n          <div class=\"gallery-slide-ph-label\" style=\"position:relative;z-index:1;\">Exterior Photo 01<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 2 -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(155deg,#0d0c08 0%,#1a1508 50%,#0a0908 100%);\">\n          <div style=\"position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 70% 40%,rgba(100,80,40,0.08) 0%,transparent 55%);\"><\/div>\n          <div class=\"gallery-slide-ph-label\" style=\"position:relative;z-index:1;\">Exterior Photo 02<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 3 -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(140deg,#0e0d08 0%,#1b1709 45%,#0d0b07 100%);\">\n          <div class=\"gallery-slide-ph-label\">Exterior Photo 03<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 4 \u2014 Interior living -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(135deg,#100f0a 0%,#1c1810 40%,#0e0c08 100%);\">\n          <div class=\"gallery-slide-ph-label\">Interior \u2014 Living Area<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 5 \u2014 Kitchen -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(160deg,#0c0b07 0%,#181510 40%,#0b0a06 100%);\">\n          <div class=\"gallery-slide-ph-label\">Interior \u2014 Kitchen<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 6 \u2014 Bedroom -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(150deg,#0f0e09 0%,#1d1a10 40%,#0c0b07 100%);\">\n          <div class=\"gallery-slide-ph-label\">Interior \u2014 Bedroom<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 7 \u2014 Bathroom -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(145deg,#0d0c08 0%,#191610 40%,#0c0a07 100%);\">\n          <div class=\"gallery-slide-ph-label\">Interior \u2014 Bathroom<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 8 \u2014 Terrace -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(155deg,#0e0d08 0%,#1a180a 45%,#0c0b07 100%);\">\n          <div class=\"gallery-slide-ph-label\">Private Terrace<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 9 \u2014 Courtyard -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(135deg,#100f09 0%,#1e1b0e 40%,#0e0c07 100%);\">\n          <div class=\"gallery-slide-ph-label\">Landscaped Courtyard<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 10 \u2014 St Paul's Square -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(160deg,#0b0a07 0%,#161410 40%,#0a0907 100%);\">\n          <div class=\"gallery-slide-ph-label\">St Paul's Square<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 11 \u2014 Aerial -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(145deg,#0f0e09 0%,#1c1a0e 40%,#0d0b07 100%);\">\n          <div class=\"gallery-slide-ph-label\">Aerial \/ Development View<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n      <!-- Slide 12 \u2014 CGI -->\n      <div class=\"gallery-slide\">\n        <div class=\"gallery-slide-ph\" style=\"background:linear-gradient(140deg,#0e0d08 0%,#1b1a0d 45%,#0c0b07 100%);\">\n          <div class=\"gallery-slide-ph-label\">CGI \/ Development Render<br>[ Place your image here ]<\/div>\n        <\/div>\n        <div class=\"gallery-slide-overlay\"><\/div>\n      <\/div>\n\n    <\/div><!-- \/slides -->\n\n    <!-- Counter -->\n    <div class=\"gallery-counter\">\n      <div class=\"gallery-counter-current\" id=\"galleryCurrent\">01<\/div>\n      <div class=\"gallery-counter-sep\"><\/div>\n      <div class=\"gallery-counter-total\">12<\/div>\n    <\/div>\n\n    <!-- Arrows -->\n    <button class=\"gallery-arrow gallery-arrow-prev\" id=\"galleryPrev\" aria-label=\"Previous\">&#8592;<\/button>\n    <button class=\"gallery-arrow gallery-arrow-next\" id=\"galleryNext\" aria-label=\"Next\">&#8594;<\/button>\n\n    <!-- Dots -->\n    <div class=\"gallery-dots\" id=\"galleryDots\">\n      <div class=\"gallery-dot active\" data-i=\"0\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"1\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"2\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"3\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"4\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"5\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"6\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"7\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"8\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"9\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"10\"><\/div>\n      <div class=\"gallery-dot\" data-i=\"11\"><\/div>\n    <\/div>\n  <\/div><!-- \/gallery-main -->\n\n  <!-- Thumbnail strip \u2014 full width, equal cells -->\n  <div class=\"gallery-thumbs\" id=\"galleryThumbs\" style=\"display:grid;grid-template-columns:repeat(12,1fr);gap:3px;padding:3px;overflow:hidden;\">\n    <div class=\"gallery-thumb active\" data-i=\"0\"><div class=\"gallery-thumb-ph\">Ext 01<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"1\"><div class=\"gallery-thumb-ph\">Ext 02<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"2\"><div class=\"gallery-thumb-ph\">Ext 03<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"3\"><div class=\"gallery-thumb-ph\">Living<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"4\"><div class=\"gallery-thumb-ph\">Kitchen<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"5\"><div class=\"gallery-thumb-ph\">Bedroom<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"6\"><div class=\"gallery-thumb-ph\">Bathroom<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"7\"><div class=\"gallery-thumb-ph\">Terrace<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"8\"><div class=\"gallery-thumb-ph\">Courtyard<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"9\"><div class=\"gallery-thumb-ph\">Square<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"10\"><div class=\"gallery-thumb-ph\">Aerial<\/div><\/div>\n    <div class=\"gallery-thumb\" data-i=\"11\"><div class=\"gallery-thumb-ph\">CGI<\/div><\/div>\n  <\/div>\n\n<\/section><!-- \/gallery -->\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     2. PROJECT OVERVIEW\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"overview-sec\" id=\"overview\">\n\n  <!-- LEFT: intro + highlights + downloads -->\n  <div class=\"overview-left reveal\">\n    <div class=\"sec-eyebrow\">The Development<\/div>\n    <h2 class=\"overview-title\">No. 30<br><em>St Pauls.<\/em><\/h2>\n    <p class=\"overview-intro\">Once a warehouse for the Cambrian Button Works and later a silver workshop, this landmark building has been reimagined by Elevate \u2014 Midlands Residential Developer of the Year \u2014 into 58 apartments across Studios, 1-Beds, 1-Beds Plus Study, 2-Beds, and 3-Beds. Each residence boasts private terraces, with select units offering breathtaking views over St Paul's Square and its iconic church.<\/p>\n\n    <div class=\"highlights\">\n      <div class=\"highlight-row\">\n        <div class=\"hl-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z\"\/><circle cx=\"12\" cy=\"9\" r=\"2.5\"\/><\/svg>\n        <\/div>\n        <span class=\"hl-label\">Location<\/span>\n        <span class=\"hl-value\">St Paul's Square, Jewellery Quarter<\/span>\n      <\/div>\n      <div class=\"highlight-row\">\n        <div class=\"hl-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"1.5\" stroke-linecap=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M9 9h6M9 12h6M9 15h4\"\/><\/svg>\n        <\/div>\n        <span class=\"hl-label\">Unit Types<\/span>\n        <span class=\"hl-value\">Studio \u00b7 1-Bed \u00b7 2-Bed \u00b7 3-Bed<\/span>\n      <\/div>\n      <div class=\"highlight-row\">\n        <div class=\"hl-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"1.5\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 8v4l3 3\"\/><\/svg>\n        <\/div>\n        <span class=\"hl-label\">Completion<\/span>\n        <span class=\"hl-value\">Q1 2026<\/span>\n      <\/div>\n      <div class=\"highlight-row\">\n        <div class=\"hl-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z\"\/><\/svg>\n        <\/div>\n        <span class=\"hl-label\">Developer<\/span>\n        <span class=\"hl-value\">Elevate \u2014 Midlands Developer of the Year<\/span>\n      <\/div>\n      <div class=\"highlight-row\">\n        <div class=\"hl-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z\"\/><\/svg>\n        <\/div>\n        <span class=\"hl-label\">Total Units<\/span>\n        <span class=\"hl-value\">58 Apartments<\/span>\n      <\/div>\n      <div class=\"highlight-row\">\n        <div class=\"hl-icon\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75\"\/><\/svg>\n        <\/div>\n        <span class=\"hl-label\">Tenure<\/span>\n        <span class=\"hl-value\">Leasehold<\/span>\n      <\/div>\n    <\/div>\n\n    <!-- Unit breakdown -->\n    <div style=\"margin-bottom:28px;border:0.5px solid rgba(28,23,16,0.08);\">\n      <div style=\"padding:10px 16px;background:rgba(28,23,16,0.04);border-bottom:0.5px solid rgba(28,23,16,0.07);display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;\">\n        <span style=\"font-size:10px;letter-spacing:1px;color:var(--gold-dim);font-weight:600;\">2<\/span>\n        <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(28,23,16,0.5);font-weight:500;\">Studios<\/span>\n        <span style=\"font-size:10px;color:rgba(28,23,16,0.35);\">482\u2013490 sq.ft<\/span>\n      <\/div>\n      <div style=\"padding:10px 16px;border-bottom:0.5px solid rgba(28,23,16,0.07);display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;\">\n        <span style=\"font-size:10px;letter-spacing:1px;color:var(--gold-dim);font-weight:600;\">37<\/span>\n        <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(28,23,16,0.5);font-weight:500;\">One Beds<\/span>\n        <span style=\"font-size:10px;color:rgba(28,23,16,0.35);\">412\u2013741 sq.ft<\/span>\n      <\/div>\n      <div style=\"padding:10px 16px;border-bottom:0.5px solid rgba(28,23,16,0.07);display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;\">\n        <span style=\"font-size:10px;letter-spacing:1px;color:var(--gold-dim);font-weight:600;\">4<\/span>\n        <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(28,23,16,0.5);font-weight:500;\">One Beds Plus Study<\/span>\n        <span style=\"font-size:10px;color:rgba(28,23,16,0.35);\">932\u20131,207 sq.ft<\/span>\n      <\/div>\n      <div style=\"padding:10px 16px;border-bottom:0.5px solid rgba(28,23,16,0.07);display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;\">\n        <span style=\"font-size:10px;letter-spacing:1px;color:var(--gold-dim);font-weight:600;\">13<\/span>\n        <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(28,23,16,0.5);font-weight:500;\">Two Beds<\/span>\n        <span style=\"font-size:10px;color:rgba(28,23,16,0.35);\">775\u20131,775 sq.ft<\/span>\n      <\/div>\n      <div style=\"padding:10px 16px;display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;\">\n        <span style=\"font-size:10px;letter-spacing:1px;color:var(--gold-dim);font-weight:600;\">2<\/span>\n        <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(28,23,16,0.5);font-weight:500;\">Three Beds<\/span>\n        <span style=\"font-size:10px;color:rgba(28,23,16,0.35);\">1,117\u20131,132 sq.ft<\/span>\n      <\/div>\n    <\/div>\n\n    <!-- Downloads -->\n    <div class=\"dl-buttons\">\n      <a href=\"#\" class=\"dl-btn\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3\"\/><\/svg>\n        Download Brochure\n      <\/a>\n      <a href=\"#\" class=\"dl-btn dl-btn-outline\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 9h18M9 21V9\"\/><\/svg>\n        View Floor Plans\n      <\/a>\n    <\/div>\n  <\/div>\n\n  <!-- RIGHT: investment stats -->\n  <div class=\"overview-right reveal d2\">\n    <div>\n      <div class=\"sec-eyebrow\" style=\"color:var(--gold)\">\n        <span style=\"display:block;width:24px;height:0.5px;background:var(--gold);margin-right:12px;\"><\/span>\n        Investment Snapshot\n      <\/div>\n      <h3 class=\"overview-right-title\">Strong fundamentals.<br><em>Exceptional location.<\/em><\/h3>\n\n      <!-- Unit pricing breakdown -->\n      <div style=\"margin-bottom:24px;border:0.5px solid rgba(184,160,106,0.12);\">\n        <div style=\"padding:12px 20px;border-bottom:0.5px solid rgba(184,160,106,0.08);display:flex;justify-content:space-between;align-items:center;\">\n          <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4);font-weight:500;\">Studio<\/span>\n          <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:18px;font-weight:300;color:var(--gold);\">from \u00a3239,950<\/span>\n        <\/div>\n        <div style=\"padding:12px 20px;border-bottom:0.5px solid rgba(184,160,106,0.08);display:flex;justify-content:space-between;align-items:center;\">\n          <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4);font-weight:500;\">1 Bedroom Apartment<\/span>\n          <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:18px;font-weight:300;color:var(--gold);\">from \u00a3249,950<\/span>\n        <\/div>\n        <div style=\"padding:12px 20px;border-bottom:0.5px solid rgba(184,160,106,0.08);display:flex;justify-content:space-between;align-items:center;\">\n          <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4);font-weight:500;\">2 Bedroom Apartment<\/span>\n          <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:18px;font-weight:300;color:var(--gold);\">from \u00a3429,950<\/span>\n        <\/div>\n        <div style=\"padding:12px 20px;display:flex;justify-content:space-between;align-items:center;\">\n          <span style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.4);font-weight:500;\">3 Bedroom Apartment<\/span>\n          <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:18px;font-weight:300;color:var(--gold);\">from \u00a3574,950<\/span>\n        <\/div>\n      <\/div>\n\n      <!-- Payment Plan -->\n      <div style=\"margin-bottom:24px;\">\n        <div style=\"font-size:9px;letter-spacing:3.5px;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:20px;display:flex;align-items:center;gap:10px;\">\n          <span style=\"display:block;width:18px;height:0.5px;background:var(--gold);\"><\/span>\n          Payment Plan\n        <\/div>\n\n        <!-- Step 1 -->\n        <div style=\"display:grid;grid-template-columns:36px 1fr;gap:16px;padding:20px 0;border-bottom:0.5px solid rgba(184,160,106,0.1);align-items:start;\">\n          <div style=\"width:36px;height:36px;border:0.5px solid rgba(184,160,106,0.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n            <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:14px;color:var(--gold);font-weight:300;\">1<\/span>\n          <\/div>\n          <div>\n            <div style=\"font-size:11px;font-weight:600;color:#fff;letter-spacing:0.5px;margin-bottom:4px;\">Reservation<\/div>\n            <div style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:22px;font-weight:300;color:var(--gold);line-height:1;margin-bottom:6px;\">\u00a35,000<\/div>\n            <div style=\"font-size:11px;color:rgba(255,255,255,0.28);line-height:1.7;\">Secures your unit. Fully refundable reservation fee paid upon reservation.<\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Step 2 -->\n        <div style=\"display:grid;grid-template-columns:36px 1fr;gap:16px;padding:20px 0;border-bottom:0.5px solid rgba(184,160,106,0.1);align-items:start;\">\n          <div style=\"width:36px;height:36px;border:0.5px solid rgba(184,160,106,0.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n            <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:14px;color:var(--gold);font-weight:300;\">2<\/span>\n          <\/div>\n          <div>\n            <div style=\"font-size:11px;font-weight:600;color:#fff;letter-spacing:0.5px;margin-bottom:4px;\">Exchange \u2014 28 Days Later<\/div>\n            <div style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:22px;font-weight:300;color:var(--gold);line-height:1;margin-bottom:6px;\">20% Deposit<\/div>\n            <div style=\"font-size:11px;color:rgba(255,255,255,0.28);line-height:1.7;\">Exchange of contracts within 28 days of reservation. 20% deposit (minus \u00a35,000 reservation fee) is due at this stage.<\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Step 3 -->\n        <div style=\"display:grid;grid-template-columns:36px 1fr;gap:16px;padding:20px 0;align-items:start;\">\n          <div style=\"width:36px;height:36px;border:0.5px solid rgba(184,160,106,0.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;\">\n            <span style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:14px;color:var(--gold);font-weight:300;\">3<\/span>\n          <\/div>\n          <div>\n            <div style=\"font-size:11px;font-weight:600;color:#fff;letter-spacing:0.5px;margin-bottom:4px;\">Completion \u2014 Q1 2026<\/div>\n            <div style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:22px;font-weight:300;color:var(--gold);line-height:1;margin-bottom:6px;\">80% Balance<\/div>\n            <div style=\"font-size:11px;color:rgba(255,255,255,0.28);line-height:1.7;\">Remaining balance payable upon completion. Available via mortgage or cash purchase.<\/div>\n            <!-- Mortgage \/ Cash tags -->\n            <div style=\"display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;\">\n              <span style=\"padding:5px 14px;border:0.5px solid rgba(184,160,106,0.25);font-size:8px;letter-spacing:2px;text-transform:uppercase;color:rgba(184,160,106,0.7);font-weight:500;\">Mortgage<\/span>\n              <span style=\"padding:5px 14px;border:0.5px solid rgba(184,160,106,0.25);font-size:8px;letter-spacing:2px;text-transform:uppercase;color:rgba(184,160,106,0.7);font-weight:500;\">Cash Purchase<\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n    <div class=\"overview-cta\">\n      <p>Speak with our team for a full financial breakdown tailored to your investment.<\/p>\n      <a href=\"#enquire\">Request Details \u2192<\/a>\n    <\/div>\n  <\/div>\n\n<\/section>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     GRADIENT BAND: cream \u2192 dark\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"grad-dark\"><\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     3. LOCATION \/ CITY SECTION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section class=\"location-sec\" id=\"location\">\n  <div class=\"location-inner\">\n\n    <!-- LEFT: City case -->\n    <div class=\"location-left reveal\">\n      <div class=\"location-eyebrow\">The City<\/div>\n      <h2 class=\"location-title\">Birmingham<br>is <em>rising.<\/em><\/h2>\n      <p class=\"location-body\">Birmingham is the UK's second city \u2014 home to 1.24 million residents and a \u00a324.8 billion economy, the strongest outside London. With Goldman Sachs, PwC, HSBC, and Deutsche Bank all established here, and HS2 set to revolutionise connectivity, demand for high-quality rental homes has never been stronger.<\/p>\n\n      <!-- Map placeholder -->\n      <div class=\"loc-map-ph\" style=\"height:340px;margin-top:36px;\">\n        <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(184,160,106,0.2)\" stroke-width=\"1\" stroke-linecap=\"round\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z\"\/><circle cx=\"12\" cy=\"9\" r=\"2.5\"\/><\/svg>\n        <div class=\"loc-map-ph-label\">Interactive Map \u2014 Place here<\/div>\n      <\/div>\n    <\/div>\n\n    <!-- RIGHT: reason cards -->\n    <div class=\"location-right reveal d2\">\n      <div class=\"location-reasons\">\n        <div class=\"reason-card\">\n          <div class=\"reason-n\">01<\/div>\n          <div>\n            <div class=\"reason-title\">Prime Jewellery Quarter Address<\/div>\n            <div class=\"reason-body\">St Paul's Square is a rare Georgian conservation area \u2014 just a 10-minute walk from the Colmore Business District and Snow Hill station (0.3 miles), with New Street 0.7 miles away.<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"reason-card\">\n          <div class=\"reason-n\">02<\/div>\n          <div>\n            <div class=\"reason-title\">Exceptional Rental Growth<\/div>\n            <div class=\"reason-body\">Citywide rental values have surged 55.9% over the past five years. The Jewellery Quarter commands average yields of 6.4%, with 1-bed new-builds generating up to 8.5%.<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"reason-card\">\n          <div class=\"reason-n\">03<\/div>\n          <div>\n            <div class=\"reason-title\">Birmingham's Strongest Economy<\/div>\n            <div class=\"reason-body\">Goldman Sachs, PwC, HSBC, and Deutsche Bank are all established here. Birmingham's \u00a324.8 billion economy is the strongest outside London, attracting a new wave of professionals.<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"reason-card\">\n          <div class=\"reason-n\">04<\/div>\n          <div>\n            <div class=\"reason-title\">HS2 & Capital Value Uplift<\/div>\n            <div class=\"reason-body\">HS2 is set to revolutionise connectivity. Property values forecast to increase by 24% over the next 5 years (JLL), with rental values forecast to rise a further 18.8%.<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"reason-card\">\n          <div class=\"reason-n\">05<\/div>\n          <div>\n            <div class=\"reason-title\">Highest Big Six Price Growth<\/div>\n            <div class=\"reason-body\">Birmingham recorded the highest annual price growth of all Big Six cities in the 12 months to June 2025, with average new-build apartment prices rising 5.6% (JLL).<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     GRADIENT BAND: dark \u2192 cream\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"grad-light\"><\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     4. INVESTMENT CALCULATOR (injected)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"calc-sec\">\n    <div class=\"calc-hd reveal\">\n      <div>\n        <div class=\"c-eyebrow\">Investment tools<\/div>\n        <h2 class=\"c-title\">Calculate your<br><em>returns.<\/em><\/h2>\n      <\/div>\n      <div class=\"c-sub\">Select a development, choose your unit type and instantly see projected yield, net income and\n        15-year capital growth \u2014 in real time.<\/div>\n    <\/div>\n\n    <div id=\"calculatorContainer\" style=\"position:relative;width:100%;overflow:hidden;\">\n      <style>\n        @font-face {\n          font-family: 'JMNumerics';\n          src: local('Fraunces'), local('Fraunces Regular');\n          font-weight: 400;\n          font-style: normal;\n          unicode-range: U+0030-0039, U+002C, U+002E, U+002B, U+002D, U+002F, U+0020, U+0025, U+00A3, U+20AC, U+0024;\n        }\n\n        @font-face {\n          font-family: 'JMNumerics';\n          src: local('Fraunces'), local('Fraunces Light');\n          font-weight: 300;\n          font-style: normal;\n          unicode-range: U+0030-0039, U+002C, U+002E, U+002B, U+002D, U+002F, U+0020, U+0025, U+00A3, U+20AC, U+0024;\n        }\n\n        @font-face {\n          font-family: 'JMNumerics';\n          src: local('Fraunces'), local('Fraunces Medium');\n          font-weight: 500;\n          font-style: normal;\n          unicode-range: U+0030-0039, U+002C, U+002E, U+002B, U+002D, U+002F, U+0020, U+0025, U+00A3, U+20AC, U+0024;\n        }\n\n        .jm * {\n          font-feature-settings: \"lnum\" 1, \"tnum\" 1;\n        }\n\n        * {\n          box-sizing: border-box;\n          margin: 0;\n          padding: 0;\n        }\n\n        html {\n          font-size: 15px;\n          -webkit-text-size-adjust: 100%;\n        }\n\n        body {\n          font-size: 15px;\n          line-height: 1.6;\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm {\n          width: 100%;\n          font-family: 'Montserrat', sans-serif;\n          color: #1C1710;\n          background: #F5F0E8;\n        }\n\n        \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN SYSTEM\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n        .jm-screen {\n          display: none;\n          position: relative;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          width: 100%;\n          height: 100%;\n          overflow-y: visible;\n          z-index: 1;\n          background: #F5F0E8;\n        }\n\n        .jm-screen.active {\n          display: block;\n          min-height: 100vh;\n        }\n\n        #jmS1 {\n          background: #1C1710;\n        }\n\n        \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 1 \u2014 LANDING (unchanged from original)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n        #jmS1 {\n          background: #1C1710;\n          display: flex;\n          flex-direction: column;\n          align-items: center;\n          justify-content: center;\n          text-align: center;\n          padding: 80px 10%;\n          min-height: 100%;\n        }\n\n        .jm-s1-tag {\n          font-size: 9px;\n          letter-spacing: 5px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 24px;\n        }\n\n        .jm-s1-title {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 72px;\n          font-weight: 300;\n          color: #fff;\n          line-height: 1.0;\n          margin-bottom: 20px;\n          letter-spacing: 1px;\n        }\n\n        .jm-s1-title em {\n          font-style: italic;\n          color: #B8A06A;\n        }\n\n        .jm-s1-sub {\n          font-size: 14px;\n          color: rgba(255, 255, 255, 0.35);\n          line-height: 1.9;\n          max-width: 440px;\n          margin: 0 auto 48px;\n          letter-spacing: 0.3px;\n        }\n\n        .jm-s1-btns {\n          display: flex;\n          gap: 12px;\n          justify-content: center;\n          flex-wrap: wrap;\n        }\n\n        .jm-btn-primary {\n          padding: 16px 56px;\n          background: #B8A06A;\n          border: none;\n          color: #1C1710;\n          font-size: 20px;\n          letter-spacing: 3px;\n          text-transform: uppercase;\n          font-family: 'Montserrat', sans-serif;\n          cursor: pointer;\n        }\n\n        .jm-btn-outline {\n          padding: 16px 40px;\n          background: transparent;\n          border: 0.5px solid rgba(184, 160, 106, 0.4);\n          color: #B8A06A;\n          font-size: 9px;\n          letter-spacing: 3px;\n          text-transform: uppercase;\n          font-family: 'Montserrat', sans-serif;\n          cursor: pointer;\n        }\n\n        .jm-s1-stats {\n          display: flex;\n          gap: 40px;\n          justify-content: center;\n          margin-top: 56px;\n          padding-top: 40px;\n          border-top: 0.5px solid rgba(255, 255, 255, 0.08);\n          flex-wrap: wrap;\n        }\n\n        .jm-s1-stat-n {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 38px;\n          color: #B8A06A;\n          font-weight: 300;\n        }\n\n        .jm-s1-stat-l {\n          font-size: 8px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: rgba(255, 255, 255, 0.2);\n          margin-top: 4px;\n        }\n\n        \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 2 \u2014 CONFIGURE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n        #jmS2 {\n          background: #F5F0E8;\n        }\n\n        .jm-s2-top {\n          background: #1C1710;\n          padding: 20px 8%;\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          position: sticky;\n          top: 0;\n          z-index: 1000;\n          border-bottom: 1px solid rgba(184, 160, 106, 0.2);\n        }\n\n        .jm-s2-top-title {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 28px;\n          color: #fff;\n          font-weight: 400;\n          letter-spacing: 0.5px;\n        }\n\n        .jm-s2-top-sub {\n          font-size: 13px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: rgba(184, 160, 106, 0.8);\n          margin-top: 5px;\n        }\n\n        .jm-s2-top-right {\n          display: flex;\n          align-items: center;\n          gap: 16px;\n        }\n\n        .jm-port-count-badge {\n          background: rgba(184, 160, 106, 0.12);\n          border: 0.5px solid rgba(184, 160, 106, 0.35);\n          padding: 10px 20px;\n          font-size: 14px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: #D4BC8A;\n          white-space: nowrap;\n        }\n\n        .jm-summary-btn-top {\n          padding: 13px 28px;\n          background: #B8A06A;\n          border: none;\n          color: #1C1710;\n          font-size: 14px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          font-family: 'Montserrat', sans-serif;\n          cursor: not-allowed;\n          opacity: 0.35;\n          transition: all 0.2s;\n          white-space: nowrap;\n          font-weight: 500;\n        }\n\n        .jm-summary-btn-top.enabled {\n          opacity: 1;\n          cursor: pointer;\n        }\n\n        .jm-summary-btn-top.enabled:hover {\n          background: #D4BC8A;\n        }\n\n        \/* Add-to-portfolio feedback animations *\/\n        @keyframes jmBadgePulse {\n          0% {\n            transform: scale(1);\n            background: rgba(184, 160, 106, 0.12);\n          }\n\n          40% {\n            transform: scale(1.12);\n            background: rgba(184, 160, 106, 0.35);\n          }\n\n          100% {\n            transform: scale(1);\n            background: rgba(184, 160, 106, 0.12);\n          }\n        }\n\n        .jm-badge-pulse {\n          animation: jmBadgePulse 0.55s ease-out;\n        }\n\n        @keyframes jmCardFlash {\n          0% {\n            background: #FFF3D6;\n          }\n\n          100% {\n            background: #fff;\n          }\n        }\n\n        .jm-card-flash {\n          animation: jmCardFlash 0.7s ease-out;\n        }\n\n        .jm-s2-body {\n          display: grid;\n          grid-template-columns: 1fr 1fr;\n          min-height: calc(100% - 80px);\n        }\n\n        \/* LEFT \u2014 config panel *\/\n        .jm-config {\n          background: #F5F0E8;\n          padding: 40px 6% 40px 8%;\n          border-right: 0.5px solid rgba(28, 23, 16, 0.1);\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm-config-sec {\n          font-size: 13px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 24px;\n          padding-bottom: 12px;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.08);\n          font-weight: 500;\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm-field {\n          margin-bottom: 24px;\n        }\n\n        .jm-lbl {\n          font-size: 13px;\n          letter-spacing: 0.5px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.55);\n          margin-bottom: 10px;\n          font-weight: 500;\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm-sel {\n          width: 100%;\n          background: transparent;\n          border: none;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.25);\n          color: #1C1710;\n          font-size: 18px;\n          font-family: 'Montserrat', sans-serif;\n          padding: 12px 0;\n          outline: none;\n          cursor: pointer;\n          -webkit-appearance: none;\n          font-weight: 400;\n          letter-spacing: 0;\n        }\n\n        .jm-dd {\n          position: relative;\n          width: 100%;\n          margin-bottom: 0;\n        }\n\n        .jm-dd-btn {\n          width: 100%;\n          background: transparent;\n          border: none;\n          border-bottom: 1px solid rgba(28, 23, 16, 0.2);\n          color: #1C1710;\n          font-size: 18px;\n          font-family: 'Montserrat', sans-serif;\n          padding: 14px 0;\n          text-align: left;\n          cursor: pointer;\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n          font-weight: 400;\n          letter-spacing: 0;\n          line-height: 1.4;\n        }\n\n        .jm-dd-btn svg {\n          flex-shrink: 0;\n          transition: transform 0.2s;\n        }\n\n        .jm-dd-btn.open svg {\n          transform: rotate(180deg);\n        }\n\n        .jm-dd-list {\n          display: none;\n          position: absolute;\n          top: 100%;\n          left: 0;\n          right: 0;\n          background: #F5F0E8;\n          border: 0.5px solid rgba(28, 23, 16, 0.15);\n          z-index: 9999;\n          max-height: 260px;\n          overflow-y: auto;\n          box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);\n        }\n\n        .jm-dd-list.open {\n          display: block;\n        }\n\n        .jm-dd-opt {\n          padding: 14px 18px;\n          font-size: 15px;\n          font-family: 'Montserrat', sans-serif;\n          color: #1C1710;\n          cursor: pointer;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.05);\n          letter-spacing: 0;\n          line-height: 1.4;\n        }\n\n        .jm-dd-opt:last-child {\n          border-bottom: none;\n        }\n\n        .jm-dd-opt:hover {\n          background: rgba(28, 23, 16, 0.04);\n        }\n\n        .jm-dd-opt.selected {\n          color: #9B8A6A;\n          font-weight: 500;\n        }\n\n        .jm-sel option {\n          background: #F5F0E8;\n          font-family: sans-serif;\n          font-size: 15px;\n        }\n\n        \/* Unit type cards *\/\n        .jm-type-row {\n          display: grid;\n          grid-template-columns: repeat(4, 1fr);\n          gap: 1px;\n          background: rgba(28, 23, 16, 0.08);\n          margin-bottom: 24px;\n        }\n\n        .jm-tc {\n          background: #F5F0E8;\n          padding: 16px 12px;\n          cursor: pointer;\n          text-align: center;\n          border-bottom: 2px solid transparent;\n          transition: all 0.15s;\n        }\n\n        .jm-tc:hover {\n          background: #EDE8DE;\n        }\n\n        .jm-tc.active {\n          background: #1C1710;\n          border-bottom-color: #B8A06A;\n        }\n\n        .jm-tc-label {\n          font-size: 15px;\n          letter-spacing: 0.3px;\n          text-transform: none;\n          color: rgba(28, 23, 16, 0.7);\n          margin-bottom: 6px;\n          font-weight: 500;\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm-tc.active .jm-tc-label {\n          color: rgba(255, 255, 255, 0.45);\n        }\n\n        .jm-tc-price {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 18px;\n          color: #9B8A6A;\n          font-weight: 400;\n        }\n\n        .jm-tc.active .jm-tc-price {\n          color: #B8A06A;\n        }\n\n        .jm-tc.unavailable {\n          opacity: 0.25;\n          cursor: default;\n          pointer-events: none;\n        }\n\n        .jm-divider {\n          border: none;\n          border-top: 0.5px solid rgba(28, 23, 16, 0.1);\n          margin: 24px 0;\n        }\n\n        \/* Toggles *\/\n        .jm-toggle {\n          display: flex;\n          border: 0.5px solid rgba(28, 23, 16, 0.18);\n          width: 100%;\n        }\n\n        .jm-tog {\n          flex: 1;\n          padding: 14px;\n          font-size: 14px;\n          letter-spacing: 0.5px;\n          text-transform: none;\n          cursor: pointer;\n          background: transparent;\n          border: none;\n          font-family: 'Montserrat', sans-serif;\n          color: rgba(28, 23, 16, 0.35);\n          transition: all 0.15s;\n        }\n\n        .jm-tog.on {\n          background: #1C1710;\n          color: #F5F0E8;\n        }\n\n        \/* Slider *\/\n        .jm-ltv-row {\n          display: flex;\n          align-items: center;\n          gap: 20px;\n        }\n\n        .jm-ltv-pct {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 38px;\n          color: #1C1710;\n          font-weight: 300;\n          min-width: 72px;\n          line-height: 1;\n        }\n\n        .jm-ltv-ctrl {\n          flex: 1;\n        }\n\n        .jm-slider {\n          width: 100%;\n          -webkit-appearance: none;\n          height: 1px;\n          background: rgba(28, 23, 16, 0.15);\n          outline: none;\n          cursor: pointer;\n        }\n\n        .jm-slider::-webkit-slider-thumb {\n          -webkit-appearance: none;\n          width: 16px;\n          height: 16px;\n          border-radius: 50%;\n          background: #1C1710;\n          cursor: pointer;\n        }\n\n        .jm-slider-ends {\n          display: flex;\n          justify-content: space-between;\n          font-size: 10px;\n          color: rgba(28, 23, 16, 0.4);\n          letter-spacing: 1px;\n          margin-top: 6px;\n        }\n\n        \/* Add to portfolio btn *\/\n        .jm-add-btn {\n          width: 100%;\n          padding: 16px;\n          background: #1C1710;\n          border: none;\n          color: #F5F0E8;\n          font-size: 15px;\n          letter-spacing: 0.5px;\n          text-transform: none;\n          font-family: 'Montserrat', sans-serif;\n          cursor: pointer;\n          margin-top: 8px;\n          transition: opacity 0.2s;\n        }\n\n        .jm-add-btn:hover {\n          opacity: 0.8;\n        }\n\n        \/* Portfolio pills *\/\n        .jm-pills-area {\n          margin-top: 20px;\n        }\n\n        .jm-pills-lbl {\n          font-size: 13px;\n          letter-spacing: 0.3px;\n          color: rgba(28, 23, 16, 0.45);\n          margin-bottom: 10px;\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm-pills {\n          display: flex;\n          flex-wrap: wrap;\n          gap: 8px;\n        }\n\n        .jm-pill {\n          display: flex;\n          align-items: center;\n          gap: 7px;\n          border: 0.5px solid rgba(28, 23, 16, 0.18);\n          padding: 7px 12px;\n          font-size: 9px;\n          color: #1C1710;\n          letter-spacing: 0.3px;\n          background: #fff;\n        }\n\n        .jm-pill-x {\n          cursor: pointer;\n          color: rgba(28, 23, 16, 0.3);\n          font-size: 15px;\n          line-height: 1;\n        }\n\n        .jm-pill-x:hover {\n          color: #1C1710;\n        }\n\n        \/* RIGHT \u2014 results panel *\/\n        .jm-results {\n          background: #fff;\n          padding: 40px 8% 40px 6%;\n        }\n\n        .jm-res-unit {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 28px;\n          font-weight: 300;\n          color: #1C1710;\n          margin-bottom: 4px;\n        }\n\n        .jm-res-sub {\n          font-size: 13px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 28px;\n          font-weight: 500;\n        }\n\n        \/* 4 metric cards *\/\n        .jm-metrics {\n          display: grid;\n          grid-template-columns: 1fr 1fr;\n          gap: 1px;\n          background: rgba(28, 23, 16, 0.08);\n          margin-bottom: 1px;\n        }\n\n        .jm-met {\n          background: #F5F0E8;\n          padding: 20px;\n        }\n\n        .jm-met-l {\n          font-size: 12px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.55);\n          margin-bottom: 8px;\n          font-weight: 500;\n        }\n\n        .jm-met-v {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 30px;\n          font-weight: 300;\n          color: #1C1710;\n          white-space: nowrap;\n          display: block;\n          min-height: 36px;\n        }\n\n        .jm-met-v.gold {\n          color: #9B8A6A;\n        }\n\n        \/* Key figures *\/\n        .jm-kf-row {\n          display: grid;\n          grid-template-columns: 1fr 1fr;\n          gap: 1px;\n          background: rgba(28, 23, 16, 0.08);\n          margin-bottom: 24px;\n        }\n\n        .jm-kf {\n          background: #1C1710;\n          padding: 20px;\n          display: flex;\n          flex-direction: column;\n          justify-content: space-between;\n          gap: 10px;\n          min-height: 80px;\n        }\n\n        .jm-kf-l {\n          font-size: 12px;\n          letter-spacing: 0.5px;\n          text-transform: uppercase;\n          color: rgba(255, 255, 255, 0.65);\n          font-weight: 400;\n          line-height: 1.5;\n        }\n\n        .jm-kf-v {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 26px;\n          color: #B8A06A;\n          font-weight: 300;\n          white-space: nowrap;\n        }\n\n        \/* Payment plan *\/\n        .jm-payment-plan {\n          background: #F5F0E8;\n          border: 0.5px solid rgba(28, 23, 16, 0.1);\n          padding: 20px;\n          margin-bottom: 24px;\n        }\n\n        .jm-pp-title {\n          font-size: 13px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 16px;\n          font-weight: 500;\n        }\n\n        .jm-pp-row {\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n          padding: 8px 0;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.06);\n        }\n\n        .jm-pp-row:last-child {\n          border-bottom: none;\n        }\n\n        .jm-pp-lbl {\n          font-size: 15px;\n          color: rgba(28, 23, 16, 0.7);\n          line-height: 1.5;\n        }\n\n        .jm-pp-val {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 22px;\n          color: #1C1710;\n          font-weight: 400;\n          white-space: nowrap;\n        }\n\n        \/* Projections *\/\n        .jm-proj-lbl {\n          font-size: 12px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 14px;\n          font-weight: 500;\n        }\n\n        .jm-proj-hd {\n          display: grid;\n          grid-template-columns: 60px 1fr 1fr 1fr;\n          gap: 4px;\n          padding-bottom: 8px;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.08);\n          margin-bottom: 2px;\n        }\n\n        .jm-phc {\n          font-size: 12px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.55);\n          font-weight: 500;\n        }\n\n        .jm-prow {\n          display: grid;\n          grid-template-columns: 60px 1fr 1fr 1fr;\n          gap: 4px;\n          padding: 9px 0;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.05);\n        }\n\n        .jm-pyr {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 18px;\n          color: rgba(28, 23, 16, 0.6);\n          white-space: nowrap;\n        }\n\n        .jm-pv {\n          font-size: 15px;\n          color: rgba(28, 23, 16, 0.75);\n          font-weight: 500;\n          white-space: nowrap;\n          min-width: 80px;\n        }\n\n        .jm-pv.pos {\n          color: #2E6E42;\n          font-weight: 500;\n          white-space: nowrap;\n        }\n\n        \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 3 \u2014 SUMMARY\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n        #jmS3 {\n          background: #F5F0E8;\n        }\n\n        .jm-s3-hdr {\n          background: #1C1710;\n          padding: 40px 8%;\n          display: flex;\n          justify-content: space-between;\n          align-items: flex-end;\n          flex-wrap: wrap;\n          gap: 16px;\n        }\n\n        .jm-s3-back {\n          background: transparent;\n          border: 0.5px solid rgba(184, 160, 106, 0.3);\n          color: #B8A06A;\n          font-size: 11px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          padding: 11px 20px;\n          cursor: pointer;\n          font-family: 'Montserrat', sans-serif;\n        }\n\n        .jm-s3-title {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 44px;\n          font-weight: 300;\n          color: #fff;\n          line-height: 1.05;\n        }\n\n        .jm-s3-title em {\n          font-style: italic;\n          color: #B8A06A;\n        }\n\n        .jm-s3-sub {\n          font-size: 12px;\n          letter-spacing: 1.2px;\n          color: rgba(255, 255, 255, 0.45);\n          margin-top: 10px;\n        }\n\n        .jm-s3-body {\n          padding: 40px 8%;\n        }\n\n        \/* Unit cards *\/\n        .jm-ucard {\n          border: 0.5px solid rgba(28, 23, 16, 0.1);\n          background: #fff;\n          margin-bottom: 16px;\n          overflow: hidden;\n        }\n\n        .jm-ucard-hd {\n          background: #1C1710;\n          padding: 14px 20px;\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n        }\n\n        .jm-ucard-name {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 20px;\n          color: #fff;\n          font-weight: 300;\n        }\n\n        .jm-ucard-badge {\n          background: #B8A06A;\n          color: #1C1710;\n          font-size: 10px;\n          letter-spacing: 1px;\n          padding: 4px 10px;\n          text-transform: uppercase;\n          font-weight: 500;\n        }\n\n        .jm-ucard-grid {\n          display: grid;\n          grid-template-columns: repeat(4, 1fr);\n        }\n\n        .jm-ucell {\n          padding: 16px;\n          border-right: 0.5px solid rgba(28, 23, 16, 0.06);\n        }\n\n        .jm-ucell:last-child {\n          border-right: none;\n        }\n\n        .jm-ucell-l {\n          font-size: 10px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.5);\n          margin-bottom: 6px;\n          font-weight: 500;\n        }\n\n        .jm-ucell-v {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 20px;\n          font-weight: 300;\n          color: #1C1710;\n        }\n\n        .jm-ucell-v.gold {\n          color: #9B8A6A;\n        }\n\n        .jm-ucell-v.green {\n          color: #2E6E42;\n        }\n\n        .jm-ucell-v.muted {\n          color: rgba(28, 23, 16, 0.35);\n          font-size: 15px;\n        }\n\n        .jm-ucell-sub {\n          font-size: 11px;\n          color: rgba(28, 23, 16, 0.5);\n          margin-top: 3px;\n        }\n\n        .jm-ucard-divlbl {\n          font-size: 11px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          padding: 10px 16px;\n          background: rgba(28, 23, 16, 0.02);\n          border-top: 0.5px solid rgba(28, 23, 16, 0.05);\n          font-weight: 500;\n        }\n\n        \/* Payment plan in summary *\/\n        .jm-ucard-pp {\n          padding: 12px 16px;\n          background: #F5F0E8;\n          border-top: 0.5px solid rgba(28, 23, 16, 0.06);\n        }\n\n        .jm-ucard-pp-title {\n          font-size: 11px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 10px;\n          font-weight: 500;\n        }\n\n        .jm-ucard-pp-rows {\n          display: grid;\n          grid-template-columns: repeat(3, 1fr);\n          gap: 8px;\n        }\n\n        .jm-ucard-pp-item {\n          background: #fff;\n          padding: 10px 12px;\n        }\n\n        .jm-ucard-pp-item-l {\n          font-size: 10px;\n          color: rgba(28, 23, 16, 0.55);\n          letter-spacing: 0.5px;\n          margin-bottom: 4px;\n          font-weight: 500;\n        }\n\n        .jm-ucard-pp-item-v {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 18px;\n          color: #1C1710;\n          font-weight: 300;\n        }\n\n        \/* Projections in summary *\/\n        .jm-ucard-proj {\n          padding: 12px 16px;\n          border-top: 0.5px solid rgba(28, 23, 16, 0.05);\n        }\n\n        .jm-up-hd {\n          display: grid;\n          grid-template-columns: 56px 1fr 1fr 1fr 1fr;\n          gap: 4px;\n          padding-bottom: 6px;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.07);\n          margin-bottom: 3px;\n        }\n\n        .jm-uphc {\n          font-size: 10px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.45);\n          font-weight: 500;\n        }\n\n        .jm-uprow {\n          display: grid;\n          grid-template-columns: 56px 1fr 1fr 1fr 1fr;\n          gap: 4px;\n          padding: 6px 0;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.04);\n        }\n\n        .jm-uprow:last-child {\n          border-bottom: none;\n        }\n\n        .jm-upyr {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 15px;\n          color: rgba(28, 23, 16, 0.5);\n        }\n\n        .jm-upv {\n          font-size: 13px;\n          color: rgba(28, 23, 16, 0.7);\n        }\n\n        .jm-upv.gr {\n          color: #2E6E42;\n        }\n\n        \/* Combined totals *\/\n        .jm-combined {\n          background: #1C1710;\n          padding: 32px;\n          margin-bottom: 16px;\n        }\n\n        .jm-comb-ttl {\n          font-size: 11px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: #B8A06A;\n          margin-bottom: 20px;\n          font-weight: 500;\n        }\n\n        .jm-comb-sec {\n          font-size: 10px;\n          letter-spacing: 1.8px;\n          text-transform: uppercase;\n          color: rgba(255, 255, 255, 0.4);\n          margin-bottom: 12px;\n          padding-bottom: 8px;\n          border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\n          font-weight: 500;\n        }\n\n        .jm-comb-grid {\n          display: grid;\n          grid-template-columns: repeat(3, 1fr);\n          gap: 1px;\n          background: rgba(255, 255, 255, 0.05);\n          margin-bottom: 16px;\n        }\n\n        .jm-cc {\n          background: #1C1710;\n          padding: 16px;\n        }\n\n        .jm-cc-l {\n          font-size: 10px;\n          letter-spacing: 1px;\n          text-transform: uppercase;\n          color: rgba(255, 255, 255, 0.5);\n          margin-bottom: 6px;\n          font-weight: 500;\n        }\n\n        .jm-cc-v {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 22px;\n          font-weight: 300;\n        }\n\n        .jm-cc-v.gold {\n          color: #B8A06A;\n        }\n\n        .jm-cc-v.green {\n          color: #8FCF9A;\n        }\n\n        .jm-cc-v.white {\n          color: #fff;\n        }\n\n        .jm-cc-sub {\n          font-size: 11px;\n          color: rgba(255, 255, 255, 0.4);\n          margin-top: 4px;\n        }\n\n        \/* Action cards *\/\n        .jm-act-lbl {\n          font-size: 12px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 14px;\n          font-weight: 500;\n        }\n\n        .jm-act-title {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 38px;\n          font-weight: 300;\n          color: #1C1710;\n          margin-bottom: 32px;\n          line-height: 1.1;\n        }\n\n        .jm-act-grid {\n          display: grid;\n          grid-template-columns: 1fr 1fr 1fr;\n          gap: 1px;\n          background: rgba(28, 23, 16, 0.08);\n        }\n\n        .jm-act {\n          padding: 32px 28px;\n          background: #fff;\n          position: relative;\n        }\n\n        .jm-act:last-child {\n          background: #1C1710;\n        }\n\n        .jm-act-n {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 48px;\n          color: rgba(28, 23, 16, 0.04);\n          font-weight: 300;\n          position: absolute;\n          top: 16px;\n          right: 20px;\n          line-height: 1;\n        }\n\n        .jm-act:last-child .jm-act-n {\n          color: rgba(255, 255, 255, 0.04);\n        }\n\n        .jm-act-icon {\n          width: 32px;\n          height: 32px;\n          border: 0.5px solid rgba(28, 23, 16, 0.15);\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          margin-bottom: 16px;\n        }\n\n        .jm-act:last-child .jm-act-icon {\n          border-color: rgba(184, 160, 106, 0.3);\n        }\n\n        .jm-act-ct {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 22px;\n          font-weight: 300;\n          color: #1C1710;\n          margin-bottom: 8px;\n        }\n\n        .jm-act:last-child .jm-act-ct {\n          color: #fff;\n        }\n\n        .jm-act-desc {\n          font-size: 13px;\n          line-height: 1.6;\n          color: rgba(28, 23, 16, 0.6);\n          margin-bottom: 22px;\n        }\n\n        .jm-act:last-child .jm-act-desc {\n          color: rgba(255, 255, 255, 0.55);\n        }\n\n        .jm-act-btn {\n          display: inline-block;\n          padding: 12px 22px;\n          font-size: 11px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          font-family: 'Montserrat', sans-serif;\n          background: #1C1710;\n          color: #F5F0E8;\n          border: none;\n          cursor: pointer;\n          font-weight: 500;\n        }\n\n        .jm-act:last-child .jm-act-btn {\n          background: #B8A06A;\n          color: #1C1710;\n        }\n\n        .jm-disc {\n          padding: 24px 0;\n          font-size: 12px;\n          color: rgba(28, 23, 16, 0.6);\n          line-height: 1.6;\n          border-top: 0.5px solid rgba(28, 23, 16, 0.12);\n          margin-top: 32px;\n          font-weight: 400;\n        }\n\n        \/* Collapsible unit card *\/\n        .jm-ucard-toggle {\n          cursor: pointer;\n          user-select: none;\n        }\n\n        .jm-ucard-arrow {\n          width: 28px;\n          height: 28px;\n          border: 0.5px solid rgba(255, 255, 255, 0.2);\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          transition: transform 0.25s;\n          flex-shrink: 0;\n        }\n\n        .jm-ucard-arrow.open {\n          transform: rotate(180deg);\n        }\n\n        .jm-ucard-body {\n          overflow: hidden;\n          transition: max-height 0.3s ease;\n          max-height: 0;\n        }\n\n        .jm-ucard-body.open {\n          max-height: 2000px;\n        }\n\n        \/* New combined section *\/\n        .jm-sum-combined {\n          background: #F5F0E8;\n          border: 0.5px solid rgba(28, 23, 16, 0.1);\n          margin-bottom: 24px;\n          overflow: hidden;\n        }\n\n        .jm-sum-combined-hd {\n          background: #1C1710;\n          padding: 20px 24px;\n        }\n\n        .jm-sum-combined-title {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 26px;\n          color: #fff;\n          font-weight: 300;\n          margin-bottom: 4px;\n        }\n\n        .jm-sum-combined-sub {\n          font-size: 12px;\n          letter-spacing: 1.2px;\n          color: rgba(255, 255, 255, 0.5);\n          text-transform: uppercase;\n          font-weight: 500;\n        }\n\n        \/* Big number cards *\/\n        .jm-big-cards {\n          display: grid;\n          grid-template-columns: 1fr 1fr 1fr;\n          gap: 1px;\n          background: rgba(28, 23, 16, 0.08);\n          margin-bottom: 1px;\n        }\n\n        .jm-big-card {\n          background: #fff;\n          padding: 24px 20px;\n        }\n\n        .jm-big-card.dark {\n          background: #1C1710;\n        }\n\n        .jm-big-card-emoji {\n          font-size: 22px;\n          margin-bottom: 10px;\n        }\n\n        .jm-big-card-label {\n          font-size: 12px;\n          letter-spacing: 1.5px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.4);\n          margin-bottom: 6px;\n          font-weight: 500;\n        }\n\n        .jm-big-card.dark .jm-big-card-label {\n          color: rgba(255, 255, 255, 0.35);\n        }\n\n        .jm-big-card-value {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 34px;\n          font-weight: 300;\n          color: #1C1710;\n          line-height: 1;\n        }\n\n        .jm-big-card.dark .jm-big-card-value {\n          color: #B8A06A;\n        }\n\n        .jm-big-card-value.green {\n          color: #2E6E42;\n        }\n\n        .jm-big-card-sub {\n          font-size: 13px;\n          color: rgba(28, 23, 16, 0.4);\n          margin-top: 6px;\n        }\n\n        .jm-big-card.dark .jm-big-card-sub {\n          color: rgba(255, 255, 255, 0.25);\n        }\n\n        \/* Simple breakdown table *\/\n        .jm-breakdown {\n          padding: 24px;\n        }\n\n        .jm-breakdown-title {\n          font-size: 12px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 16px;\n          font-weight: 500;\n        }\n\n        .jm-breakdown-row {\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n          padding: 12px 0;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.06);\n          gap: 8px;\n          flex-wrap: wrap;\n        }\n\n        .jm-breakdown-row:last-child {\n          border-bottom: none;\n        }\n\n        .jm-breakdown-label {\n          font-size: 16px;\n          color: rgba(28, 23, 16, 0.65);\n          line-height: 1.4;\n        }\n\n        .jm-breakdown-label.bold {\n          color: #1C1710;\n          font-weight: 500;\n        }\n\n        .jm-breakdown-value {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 22px;\n          color: #1C1710;\n          font-weight: 300;\n          white-space: nowrap;\n        }\n\n        .jm-breakdown-value.green {\n          color: #2E6E42;\n        }\n\n        .jm-breakdown-value.gold {\n          color: #9B8A6A;\n        }\n\n        .jm-breakdown-value.red {\n          color: #B85A5A;\n        }\n\n        \/* Chart bar *\/\n        .jm-chart {\n          padding: 24px;\n          background: #F5F0E8;\n          border-top: 0.5px solid rgba(28, 23, 16, 0.06);\n        }\n\n        .jm-chart-title {\n          font-size: 12px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 20px;\n          font-weight: 500;\n        }\n\n        .jm-chart-row {\n          display: flex;\n          align-items: center;\n          gap: 12px;\n          margin-bottom: 10px;\n        }\n\n        .jm-chart-label {\n          font-size: 13px;\n          color: rgba(28, 23, 16, 0.5);\n          width: 50px;\n          text-align: right;\n          flex-shrink: 0;\n        }\n\n        .jm-chart-bar-wrap {\n          flex: 1;\n          height: 32px;\n          background: rgba(28, 23, 16, 0.05);\n          position: relative;\n          overflow: hidden;\n        }\n\n        .jm-chart-bar {\n          height: 100%;\n          background: #1C1710;\n          display: flex;\n          align-items: center;\n          padding-left: 10px;\n          transition: width 0.8s ease;\n        }\n\n        .jm-chart-bar.gold {\n          background: #B8A06A;\n        }\n\n        .jm-chart-bar-val {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 15px;\n          color: #fff;\n          white-space: nowrap;\n        }\n\n        .jm-chart-bar-delta {\n          font-family: 'Montserrat', sans-serif;\n          font-size: 11px;\n          color: rgba(255, 255, 255, 0.7);\n          margin-left: 8px;\n          white-space: nowrap;\n          font-weight: 400;\n        }\n\n        \/* Intermediate (sub) chart rows \u2014 smaller, muted *\/\n        .jm-chart-sub {\n          display: none;\n        }\n\n        .jm-chart-sub.open {\n          display: flex;\n        }\n\n        .jm-chart-sub .jm-chart-bar-wrap {\n          height: 22px;\n        }\n\n        .jm-chart-sub .jm-chart-label {\n          font-size: 12px;\n          color: rgba(28, 23, 16, 0.4);\n        }\n\n        .jm-chart-sub .jm-chart-bar {\n          background: rgba(184, 160, 106, 0.55);\n        }\n\n        .jm-chart-sub .jm-chart-bar-val {\n          font-size: 13px;\n        }\n\n        .jm-chart-sub .jm-chart-bar-delta {\n          font-size: 10px;\n          color: rgba(255, 255, 255, 0.75);\n        }\n\n        \/* Toggle row to expand intermediate years *\/\n        .jm-chart-toggle {\n          display: flex;\n          align-items: center;\n          gap: 12px;\n          margin-bottom: 10px;\n          cursor: pointer;\n          user-select: none;\n        }\n\n        .jm-chart-toggle .jm-chart-toggle-btn {\n          font-family: 'Montserrat', sans-serif;\n          font-size: 11px;\n          letter-spacing: 0.5px;\n          color: #9B8A6A;\n          padding: 6px 12px;\n          border: 0.5px dashed rgba(155, 138, 106, 0.45);\n          background: transparent;\n          margin-left: 62px;\n          transition: all 0.2s;\n          text-transform: none;\n          font-weight: 500;\n        }\n\n        .jm-chart-toggle:hover .jm-chart-toggle-btn {\n          color: #1C1710;\n          border-color: rgba(28, 23, 16, 0.4);\n          background: rgba(184, 160, 106, 0.1);\n        }\n\n        .jm-chart-toggle-icon {\n          display: inline-block;\n          width: 10px;\n          margin-right: 6px;\n          font-weight: 500;\n        }\n\n        .jm-chart-legend {\n          display: flex;\n          gap: 20px;\n          margin-top: 12px;\n          flex-wrap: wrap;\n        }\n\n        \/* Assumptions panel (summary) *\/\n        .jm-assumptions {\n          padding: 28px 24px;\n          background: #fff;\n          border-top: 0.5px solid rgba(28, 23, 16, 0.06);\n        }\n\n        .jm-assumptions-title {\n          font-size: 12px;\n          letter-spacing: 2px;\n          text-transform: uppercase;\n          color: #9B8A6A;\n          margin-bottom: 6px;\n          font-weight: 500;\n        }\n\n        .jm-assumptions-lead {\n          font-size: 12px;\n          color: rgba(28, 23, 16, 0.55);\n          line-height: 1.5;\n          margin-bottom: 18px;\n        }\n\n        .jm-assumptions-grid {\n          display: grid;\n          grid-template-columns: 1fr 1fr;\n          gap: 14px 24px;\n        }\n\n        .jm-assumption {\n          padding: 10px 0;\n          border-bottom: 0.5px solid rgba(28, 23, 16, 0.06);\n        }\n\n        .jm-assumption:last-child,\n        .jm-assumption:nth-last-child(2) {\n          border-bottom: none;\n        }\n\n        .jm-assumption-label {\n          font-size: 11px;\n          letter-spacing: 0.5px;\n          text-transform: uppercase;\n          color: rgba(28, 23, 16, 0.5);\n          margin-bottom: 4px;\n          font-weight: 500;\n        }\n\n        .jm-assumption-value {\n          font-family: 'JMNumerics', 'Cormorant Garamond', serif;\n          font-size: 18px;\n          color: #1C1710;\n          font-weight: 400;\n          line-height: 1.3;\n        }\n\n        .jm-assumption-note {\n          font-size: 11px;\n          color: rgba(28, 23, 16, 0.45);\n          margin-top: 3px;\n          line-height: 1.4;\n        }\n\n        @media(max-width:768px) {\n          .jm-assumptions-grid {\n            grid-template-columns: 1fr;\n            gap: 4px;\n          }\n\n          .jm-assumption:nth-last-child(2) {\n            border-bottom: 0.5px solid rgba(28, 23, 16, 0.06);\n          }\n        }\n\n        .jm-chart-leg-item {\n          display: flex;\n          align-items: center;\n          gap: 6px;\n          font-size: 12px;\n          color: rgba(28, 23, 16, 0.5);\n        }\n\n        .jm-chart-leg-dot {\n          width: 10px;\n          height: 10px;\n          flex-shrink: 0;\n        }\n\n        \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   MOBILE RESPONSIVE \u2014 768px and below\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n        @media(max-width:768px) {\n\n          \/* Landing *\/\n          #jmS1>div {\n            padding: 48px 6% 40px !important;\n          }\n\n          .jm-s1-title {\n            font-size: 44px !important;\n          }\n\n          .jm-s1-sub {\n            font-size: 15px !important;\n          }\n\n          .jm-btn-primary,\n          .jm-btn-outline {\n            padding: 14px 32px !important;\n            font-size: 13px !important;\n          }\n\n          .jm-s1-stats {\n            grid-template-columns: 1fr 1fr !important;\n            gap: 1px !important;\n          }\n\n          \/* Top bar *\/\n          .jm-s2-top {\n            padding: 16px 5% !important;\n            flex-wrap: wrap;\n            gap: 10px;\n          }\n\n          .jm-s2-top-title {\n            font-size: 22px !important;\n          }\n\n          .jm-s2-top-right {\n            width: 100%;\n            justify-content: space-between;\n          }\n\n          \/* Main layout \u2014 stack vertically *\/\n          .jm-s2-body {\n            grid-template-columns: 1fr !important;\n            min-height: auto !important;\n          }\n\n          \/* Config panel *\/\n          .jm-config {\n            padding: 24px 5% !important;\n            border-right: none !important;\n            border-bottom: 0.5px solid rgba(28, 23, 16, 0.1);\n          }\n\n          \/* Unit type cards \u2014 2x2 grid *\/\n          .jm-type-row {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          \/* Results panel *\/\n          .jm-results {\n            padding: 24px 5% !important;\n          }\n\n          .jm-res-unit {\n            font-size: 22px !important;\n          }\n\n          \/* 4 metric cards \u2014 2x2 *\/\n          .jm-metrics {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          .jm-met {\n            padding: 16px !important;\n          }\n\n          .jm-met-v {\n            font-size: 26px !important;\n          }\n\n          \/* KF row \u2014 stack *\/\n          .jm-kf-row {\n            grid-template-columns: 1fr !important;\n          }\n\n          \/* Projections \u2014 scrollable *\/\n          .jm-proj-hd,\n          .jm-prow {\n            grid-template-columns: 48px 1fr 1fr 1fr !important;\n            gap: 4px !important;\n          }\n\n          .jm-phc,\n          .jm-pv {\n            font-size: 12px !important;\n          }\n\n          \/* Toggle buttons *\/\n          .jm-tog {\n            font-size: 12px !important;\n            padding: 11px 6px !important;\n            letter-spacing: 0.5px !important;\n          }\n\n          \/* Slider row *\/\n          .jm-ltv-row {\n            gap: 12px !important;\n          }\n\n          .jm-ltv-pct {\n            font-size: 30px !important;\n            min-width: 60px !important;\n          }\n\n          \/* Summary screen *\/\n          .jm-s3-hdr {\n            padding: 28px 5% !important;\n            flex-direction: column;\n            gap: 16px;\n            align-items: flex-start !important;\n          }\n\n          .jm-s3-title {\n            font-size: 34px !important;\n          }\n\n          .jm-s3-body {\n            padding: 20px 5% !important;\n          }\n\n          \/* Unit cards in summary \u2014 2 cols *\/\n          .jm-ucard-grid {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          .jm-ucell {\n            padding: 12px !important;\n          }\n\n          .jm-ucell-v {\n            font-size: 15px !important;\n          }\n\n          \/* 5 col grid \u2014 2+3 *\/\n          .jm-ucard-grid[style*=\"repeat(5\"] {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          \/* Combined big cards \u2014 stack *\/\n          .jm-big-cards {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-big-card-value {\n            font-size: 28px !important;\n          }\n\n          \/* Breakdown table *\/\n          .jm-breakdown {\n            padding: 16px !important;\n          }\n\n          .jm-breakdown-label {\n            font-size: 14px !important;\n          }\n\n          .jm-breakdown-value {\n            font-size: 18px !important;\n          }\n\n          \/* Combined grid *\/\n          .jm-comb-grid {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          .jm-cc-v {\n            font-size: 20px !important;\n          }\n\n          \/* Action cards \u2014 stack *\/\n          .jm-act-grid {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-act {\n            border-right: none !important;\n            border-bottom: 0.5px solid rgba(28, 23, 16, 0.08);\n          }\n\n          \/* Payment plan *\/\n          .jm-ucard-pp-rows {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          \/* Bar chart labels *\/\n          .jm-chart-label {\n            font-size: 12px !important;\n            width: 36px !important;\n          }\n\n          .jm-chart-bar-val {\n            font-size: 13px !important;\n          }\n\n          \/* Proj strip in summary *\/\n          .jm-up-hd,\n          .jm-uprow {\n            grid-template-columns: 40px 1fr 1fr 1fr !important;\n          }\n\n          .jm-uphc,\n          .jm-upv {\n            font-size: 11px !important;\n          }\n\n          \/* Portfolio cards *\/\n          #jmPortCards>div>div[style*=\"grid-template-columns:1fr 1fr 1fr 1fr\"] {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          \/* Empty portfolio state *\/\n          #jmPortEmpty {\n            padding: 20px !important;\n          }\n        }\n\n        \/* \u2500\u2500\u2500 Very small phones \u2500\u2500\u2500 *\/\n        @media(max-width:380px) {\n          .jm-s1-title {\n            font-size: 34px !important;\n          }\n\n          .jm-metrics {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-ucard-grid {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-comb-grid {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-breakdown-row {\n            flex-direction: column;\n            align-items: flex-start !important;\n            gap: 4px;\n          }\n\n          .jm-breakdown-value {\n            font-size: 16px !important;\n          }\n        }\n\n        \/* \u2500\u2500\u2500 iPad \/ Tablet 768-1024px \u2500\u2500\u2500 *\/\n        @media(min-width:769px) and (max-width:1024px) {\n          .jm-s2-body {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-config {\n            padding: 28px 5% !important;\n            border-right: none !important;\n            border-bottom: 0.5px solid rgba(28, 23, 16, 0.1);\n          }\n\n          .jm-results {\n            padding: 28px 5% !important;\n          }\n\n          .jm-s2-top {\n            padding: 16px 5% !important;\n          }\n\n          .jm-s1-title {\n            font-size: 56px !important;\n          }\n\n          .jm-type-row {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          .jm-big-cards {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-ucard-grid {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          .jm-s3-hdr {\n            padding: 28px 5% !important;\n            flex-direction: column;\n            gap: 16px;\n          }\n\n          .jm-s3-body {\n            padding: 24px 5% !important;\n          }\n\n          .jm-comb-grid {\n            grid-template-columns: 1fr 1fr !important;\n          }\n\n          .jm-act-grid {\n            grid-template-columns: 1fr !important;\n          }\n\n          .jm-s3-title {\n            font-size: 38px !important;\n          }\n        }\n      <\/style>\n\n      <div class=\"jm\" style=\"position:relative;width:100%;\">\n\n        <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 1 \u2014 LANDING\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n        <div id=\"jmS1\" class=\"jm-screen active\">\n          <div\n            style=\"display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 6%;min-height:100%;background:#1C1710;\">\n            <div class=\"jm-s1-title\">Welcome to your<br><em>investment<\/em><br>calculator.<\/div>\n            <div class=\"jm-s1-sub\">Build your personalised UK property portfolio. See gross yield, net income, capital\n              growth\n              and 15-year projections \u2014 all in real time.<\/div>\n            <div class=\"jm-s1-btns\">\n              <button class=\"jm-btn-primary\" onclick=\"jmGo(2)\">Calculate Now \u2192<\/button>\n            <\/div>\n            <div\n              style=\"margin-top:56px;padding-top:40px;border-top:0.5px solid rgba(255,255,255,0.08);display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,0.06);width:100%;max-width:900px;\">\n              <div style=\"background:#1C1710;padding:28px 24px;text-align:center;\">\n                <div style=\"font-size:30px;margin-bottom:10px;\"><\/div>\n                <div\n                  style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:20px;color:#fff;font-weight:300;margin-bottom:6px;\">\n                  5 Cities<\/div>\n                <div style=\"font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(184,160,106,0.6);\">\n                  UK's\n                  best markets<\/div>\n              <\/div>\n              <div style=\"background:#1C1710;padding:28px 24px;text-align:center;\">\n                <div style=\"font-size:30px;margin-bottom:10px;\"><\/div>\n                <div\n                  style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:20px;color:#fff;font-weight:300;margin-bottom:6px;\">\n                  Real-time<\/div>\n                <div style=\"font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(184,160,106,0.6);\">\n                  Instant\n                  projections<\/div>\n              <\/div>\n              <div style=\"background:#1C1710;padding:28px 24px;text-align:center;\">\n                <div style=\"font-size:30px;margin-bottom:10px;\"><\/div>\n                <div\n                  style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:20px;color:#fff;font-weight:300;margin-bottom:6px;\">\n                  No hidden costs<\/div>\n                <div style=\"font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(184,160,106,0.6);\">\n                  Full\n                  transparency<\/div>\n              <\/div>\n              <div style=\"background:#1C1710;padding:28px 24px;text-align:center;\">\n                <div style=\"font-size:30px;margin-bottom:10px;\"><\/div>\n                <div\n                  style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:20px;color:#fff;font-weight:300;margin-bottom:6px;\">\n                  15-year view<\/div>\n                <div style=\"font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(184,160,106,0.6);\">\n                  Capital\n                  growth & income<\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 2 \u2014 CONFIGURE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n        <div id=\"jmS2\" class=\"jm-screen\">\n          <div class=\"jm-s2-top\">\n            <div>\n              <div class=\"jm-s2-top-title\">Build your portfolio<\/div>\n              <div class=\"jm-s2-top-sub\">Select project, choose unit type and configure your investment<\/div>\n            <\/div>\n            <div class=\"jm-s2-top-right\">\n              <div class=\"jm-port-count-badge\" id=\"jmPortBadge\">0 units added<\/div>\n              <button class=\"jm-summary-btn-top\" id=\"jmSumBtn\" title=\"Add at least one unit to your portfolio first\"\n                onclick=\"if(!this.classList.contains('enabled')){return;}jmGo(3)\">View summary \u2192<\/button>\n            <\/div>\n          <\/div>\n\n          <div class=\"jm-s2-body\">\n            <!-- LEFT: CONFIG -->\n            <div class=\"jm-config\">\n              <div class=\"jm-config-sec\">Step 01 \u2014 Select your investment<\/div>\n\n              <div class=\"jm-field\">\n                <div class=\"jm-lbl\">Development<\/div>\n                <div class=\"jm-dd\" id=\"jmProjDD\">\n                  <button class=\"jm-dd-btn\" id=\"jmProjBtn\" onclick=\"jmToggleDD('jmProjDD')\">\n                    <span id=\"jmProjLabel\">Penny Place \u2014 Wolverhampton<\/span>\n                    <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\n                      <path d=\"M1 1l5 5 5-5\" stroke=\"#9B8A6A\" stroke-width=\"1.5\" stroke-linecap=\"round\" \/>\n                    <\/svg>\n                  <\/button>\n                  <div class=\"jm-dd-list\" id=\"jmProjList\">\n                    <div class=\"jm-dd-opt selected\" onclick=\"jmPickProj('penny','Penny Place \u2014 Wolverhampton',this)\">\n                      Penny\n                      Place \u2014 Wolverhampton<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickProj('lombe','Lombe House \u2014 Derby',this)\">Lombe House \u2014 Derby\n                    <\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickProj('cathedral','Cathedral One \u2014 Derby',this)\">Cathedral One\n                      \u2014\n                      Derby<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickProj('stpaul','30 St Paul \u2014 Birmingham',this)\">30 St Paul \u2014\n                      Birmingham<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickProj('chapmans','Chapmans Yard \u2014 Birmingham',this)\">Chapmans\n                      Yard \u2014\n                      Birmingham<\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n\n              <div class=\"jm-field\">\n                <div class=\"jm-lbl\">Unit type<\/div>\n                <div class=\"jm-type-row\" id=\"jmTypeRow\">\n                  <div class=\"jm-tc\" id=\"jmTcStudio\" onclick=\"jmSetType('studio',this)\">\n                    <div class=\"jm-tc-label\">Studio<\/div>\n                    <div class=\"jm-tc-price\" id=\"jmPriceStudio\">\u2014<\/div>\n                  <\/div>\n                  <div class=\"jm-tc active\" id=\"jmTc1bed\" onclick=\"jmSetType('1bed',this)\">\n                    <div class=\"jm-tc-label\">1 Bed<\/div>\n                    <div class=\"jm-tc-price\" id=\"jmPrice1bed\">\u2014<\/div>\n                  <\/div>\n                  <div class=\"jm-tc\" id=\"jmTc2bed\" onclick=\"jmSetType('2bed',this)\">\n                    <div class=\"jm-tc-label\">2 Bed<\/div>\n                    <div class=\"jm-tc-price\" id=\"jmPrice2bed\">\u2014<\/div>\n                  <\/div>\n                  <div class=\"jm-tc\" id=\"jmTc3bed\" onclick=\"jmSetType('3bed',this)\">\n                    <div class=\"jm-tc-label\">3 Bed<\/div>\n                    <div class=\"jm-tc-price\" id=\"jmPrice3bed\">\u2014<\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n\n              <div class=\"jm-divider\"><\/div>\n              <div class=\"jm-config-sec\">Step 02 \u2014 Payment settings<\/div>\n\n              <div class=\"jm-field\">\n                <div class=\"jm-lbl\">Investment type<\/div>\n                <div class=\"jm-toggle\">\n                  <button class=\"jm-tog on\" id=\"jmBtnMort\" onclick=\"jmSetPay('mortgage')\">Mortgage<\/button>\n                  <button class=\"jm-tog off\" id=\"jmBtnCash\" onclick=\"jmSetPay('cash')\">Cash investment<\/button>\n                <\/div>\n              <\/div>\n\n              <div class=\"jm-field\">\n                <div class=\"jm-lbl\">Nationality<\/div>\n                <div class=\"jm-dd\" id=\"jmNatDD\">\n                  <button class=\"jm-dd-btn\" id=\"jmNatBtn\" onclick=\"jmToggleDD('jmNatDD')\">\n                    <span id=\"jmNatLabel\">Turkey<\/span>\n                    <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\n                      <path d=\"M1 1l5 5 5-5\" stroke=\"#9B8A6A\" stroke-width=\"1.5\" stroke-linecap=\"round\" \/>\n                    <\/svg>\n                  <\/button>\n                  <div class=\"jm-dd-list\" id=\"jmNatList\">\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickNat('uk','UK Resident',this)\">UK Resident<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickNat('uae','UAE \/ GCC',this)\">UAE \/ GCC<\/div>\n                    <div class=\"jm-dd-opt selected\" onclick=\"jmPickNat('turkey','Turkey',this)\">Turkey<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickNat('china','China \/ Hong Kong',this)\">China \/ Hong Kong<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickNat('india','India',this)\">India<\/div>\n                    <div class=\"jm-dd-opt\" onclick=\"jmPickNat('other','Other \/ Non-UK',this)\">Other \/ Non-UK<\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n\n              <div id=\"jmMortSection\">\n                <div class=\"jm-field\">\n                  <div class=\"jm-lbl\">Loan to value<\/div>\n                  <div class=\"jm-ltv-row\">\n                    <div class=\"jm-ltv-pct\" id=\"jmLtvPct\">70%<\/div>\n                    <div class=\"jm-ltv-ctrl\">\n                      <input type=\"range\" class=\"jm-slider\" id=\"jmLtv\" min=\"0\" max=\"75\" value=\"70\" step=\"5\"\n                        oninput=\"S.ltv=parseInt(this.value);document.getElementById('jmLtvPct').textContent=S.ltv+'%';jmCalc()\">\n                      <div class=\"jm-slider-ends\"><span>0%<\/span><span>75% max<\/span><\/div>\n                    <\/div>\n                  <\/div>\n                <\/div>\n                <div class=\"jm-field\">\n                  <div class=\"jm-lbl\">Mortgage type<\/div>\n                  <div class=\"jm-toggle\">\n                    <button class=\"jm-tog on\" id=\"jmBtnIO\" onclick=\"jmSetMort('io')\">Interest only<\/button>\n                    <button class=\"jm-tog off\" id=\"jmBtnRep\" onclick=\"jmSetMort('rep')\">Repayment<\/button>\n                  <\/div>\n                  <div id=\"jmMortExplain\"\n                    style=\"margin-top:10px;padding:12px;background:rgba(28,23,16,0.04);border-left:2px solid #9B8A6A;\">\n                    <div style=\"font-size:9px;font-weight:500;color:#1C1710;letter-spacing:0.3px;margin-bottom:4px;\"\n                      id=\"jmMortExplainTitle\">Interest Only<\/div>\n                    <div style=\"font-size:12px;color:rgba(28,23,16,0.5);line-height:1.6;\" id=\"jmMortExplainText\">You\n                      only pay\n                      the interest each month \u2014 not the loan itself. Your monthly payments are lower, but the full loan\n                      amount\n                      remains at the end of the term. Popular with buy-to-let investors.<\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n\n              <button class=\"jm-add-btn\" onclick=\"jmAddToPortfolio()\">+ Add to portfolio<\/button>\n\n              <!-- Empty state \u2014 always visible -->\n              <div id=\"jmPortEmpty\"\n                style=\"margin-top:16px;padding:24px;border:0.5px dashed rgba(28,23,16,0.2);text-align:center;\">\n                <div\n                  style=\"font-family:'JMNumerics','Cormorant Garamond',serif;font-size:20px;font-weight:300;color:rgba(28,23,16,0.3);margin-bottom:6px;\">\n                  Your portfolio is empty<\/div>\n                <div style=\"font-size:9px;color:rgba(28,23,16,0.25);letter-spacing:0.5px;line-height:1.6;\">Configure\n                  your\n                  investment above and click<br>\"+ Add to portfolio\" to begin building.<\/div>\n              <\/div>\n\n              <!-- Portfolio cards \u2014 shown after adding -->\n              <div class=\"jm-pills-area\" id=\"jmPortArea\" style=\"display:none;margin-top:16px;\">\n                <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;\">\n                  <div class=\"jm-pills-lbl\" id=\"jmCountLabel\" style=\"margin-bottom:0;\"><span id=\"jmCount\">0<\/span> units\n                    in\n                    portfolio<\/div>\n                  <button onclick=\"jmGo(3)\"\n                    style=\"padding:9px 18px;background:#1C1710;border:none;color:#F5F0E8;font-size:8px;letter-spacing:2px;text-transform:uppercase;font-family:'Montserrat',sans-serif;cursor:pointer;\">View\n                    summary \u2192<\/button>\n                <\/div>\n                <div id=\"jmPortCards\"><\/div>\n              <\/div>\n            <\/div>\n\n            <!-- RIGHT: RESULTS -->\n            <div class=\"jm-results\" id=\"jmResultsPanel\">\n              <div class=\"jm-res-unit\" id=\"jmResTitle\">Select a unit type to see projections<\/div>\n              <div class=\"jm-res-sub\" id=\"jmResSub\">Choose a development and unit type on the left<\/div>\n\n              <div class=\"jm-metrics\">\n                <div class=\"jm-met\">\n                  <div class=\"jm-met-l\">Monthly rental income<\/div>\n                  <div class=\"jm-met-v gold\" id=\"jmMonRent\">\u2014<\/div>\n                <\/div>\n                <div class=\"jm-met\">\n                  <div class=\"jm-met-l\">Net monthly income<\/div>\n                  <div class=\"jm-met-v gold\" id=\"jmNetMon\">\u2014<\/div>\n                <\/div>\n                <div class=\"jm-met\">\n                  <div class=\"jm-met-l\">Annual rental income<\/div>\n                  <div class=\"jm-met-v\" id=\"jmAnnRent\">\u2014<\/div>\n                <\/div>\n                <div class=\"jm-met\">\n                  <div class=\"jm-met-l\">Net yield<\/div>\n                  <div class=\"jm-met-v\" id=\"jmNetYield\">\u2014<\/div>\n                <\/div>\n              <\/div>\n\n              <div class=\"jm-kf-row\">\n                <div class=\"jm-kf\">\n                  <div class=\"jm-kf-l\" id=\"jmMortLbl\">Monthly mortgage<\/div>\n                  <div class=\"jm-kf-v\" id=\"jmMortVal\">\u2014<\/div>\n                <\/div>\n                <div class=\"jm-kf\">\n                  <div class=\"jm-kf-l\">Cash needed<br><span style=\"font-size:8px;opacity:0.6;\">Exchange + SDLT + fees\n                      (excl.\n                      mortgage)<\/span><\/div>\n                  <div class=\"jm-kf-v\" id=\"jmTotalCash\">\u2014<\/div>\n                <\/div>\n              <\/div>\n\n              <!-- Payment plan \u2014 always visible, content updates -->\n              <div class=\"jm-payment-plan\" id=\"jmPayPlan\">\n                <div class=\"jm-pp-title\">Payment plan \/ installment schedule<\/div>\n                <div id=\"jmPayPlanRows\"><\/div>\n              <\/div>\n\n              <div class=\"jm-proj-lbl\">15-year projections<\/div>\n              <div class=\"jm-proj-hd\"><span class=\"jm-phc\">Year<\/span><span class=\"jm-phc\">Property value<\/span><span\n                  class=\"jm-phc\">Net annual income<\/span><span class=\"jm-phc\">Total return<\/span><\/div>\n              <div class=\"jm-prow\"><span class=\"jm-pyr\">Year 1<\/span><span class=\"jm-pv\" id=\"jmPV1\">\u2014<\/span><span\n                  class=\"jm-pv\" id=\"jmRI1\">\u2014<\/span><span class=\"jm-pv pos\" id=\"jmTR1\">\u2014<\/span><\/div>\n              <div class=\"jm-prow\"><span class=\"jm-pyr\">Year 5<\/span><span class=\"jm-pv\" id=\"jmPV5\">\u2014<\/span><span\n                  class=\"jm-pv\" id=\"jmRI5\">\u2014<\/span><span class=\"jm-pv pos\" id=\"jmTR5\">\u2014<\/span><\/div>\n              <div class=\"jm-prow\"><span class=\"jm-pyr\">Year 10<\/span><span class=\"jm-pv\" id=\"jmPV10\">\u2014<\/span><span\n                  class=\"jm-pv\" id=\"jmRI10\">\u2014<\/span><span class=\"jm-pv pos\" id=\"jmTR10\">\u2014<\/span><\/div>\n              <div class=\"jm-prow\"><span class=\"jm-pyr\">Year 15<\/span><span class=\"jm-pv\" id=\"jmPV15\">\u2014<\/span><span\n                  class=\"jm-pv\" id=\"jmRI15\">\u2014<\/span><span class=\"jm-pv pos\" id=\"jmTR15\">\u2014<\/span><\/div>\n\n              <div class=\"jm-disc\" id=\"jmDiscS2\"><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 3 \u2014 SUMMARY\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n        <div id=\"jmS3\" class=\"jm-screen\">\n          <div class=\"jm-s3-hdr\">\n            <div>\n              <div class=\"jm-s3-title\">Your portfolio<br><em>summary.<\/em><\/div>\n              <div class=\"jm-s3-sub\" id=\"jmS3Sub\">0 units selected<\/div>\n            <\/div>\n            <button class=\"jm-s3-back\" onclick=\"jmGo(2)\">\u2190 Back to calculator<\/button>\n          <\/div>\n          <div class=\"jm-s3-body\" id=\"jmSumBody\">\n            <div\n              style=\"padding:60px 0;text-align:center;font-family:'JMNumerics','Cormorant Garamond',serif;font-size:26px;font-weight:300;color:rgba(28,23,16,0.3);\">\n              No units added yet.<br><span\n                style=\"font-size:16px;font-family:'Montserrat',sans-serif;letter-spacing:1px;margin-top:12px;display:block;\">Go\n                back and add units to your portfolio.<\/span><\/div>\n          <\/div>\n        <\/div>\n\n      <\/div><!-- end .jm -->\n\n      <script>\n        \/\/ \u2500\u2500 DATA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        const JMP = {\n          penny: {\n            name: 'Penny Place', city: 'Wolverhampton', yield: 0.07, cg: 0.04, rg: 0.05, sc_psf: 2.07,\n            paymentPlan: {\n              type: 'phased',\n              steps: [\n                { label: 'Reservation fee', value: 5000, note: 'On signing' },\n                { label: 'Exchange deposit (5%)', pct: 0.05, note: 'On exchange' },\n                { label: '24 monthly instalments (25%)', pct: 0.25, months: 24, note: 'During build' },\n                { label: 'Completion balance (70%)', pct: 0.70, note: 'On completion' },\n              ]\n            },\n            prices: { studio: 154950, '1bed': 164950, '2bed': 204950, '3bed': null }\n          },\n          lombe: {\n            name: 'Lombe House', city: 'Derby', yield: 0.07, cg: 0.04, rg: 0.05, sc_psf: 2.0,\n            paymentPlan: { type: 'lump', steps: [{ label: 'Reservation fee', value: 5000, note: 'On signing' }, { label: 'Exchange deposit (20%)', pct: 0.20, note: 'On exchange' }, { label: 'Completion balance (80%)', pct: 0.80, note: 'On completion' }] },\n            prices: { studio: 148000, '1bed': 190000, '2bed': 230000, '3bed': 300000 }\n          },\n          cathedral: {\n            name: 'Cathedral One', city: 'Derby', yield: 0.065, cg: 0.0492, rg: 0.04, sc_psf: 2.34,\n            paymentPlan: { type: 'lump', steps: [{ label: 'Reservation fee', value: 5000, note: 'On signing' }, { label: 'Exchange deposit (20%)', pct: 0.20, note: 'On exchange' }, { label: 'Completion balance (80%)', pct: 0.80, note: 'On completion' }] },\n            prices: { studio: 175000, '1bed': 200000, '2bed': 262000, '3bed': null }\n          },\n          stpaul: {\n            name: '30 St Paul', city: 'Birmingham', yield: 0.06, cg: 0.04, rg: 0.0425, sc_psf: 2.07,\n            paymentPlan: { type: 'lump', steps: [{ label: 'Reservation fee', value: 5000, note: 'On signing' }, { label: 'Exchange deposit (20%)', pct: 0.20, note: 'On exchange' }, { label: 'Completion balance (80%)', pct: 0.80, note: 'On completion' }] },\n            prices: { studio: 277500, '1bed': 249950, '2bed': 439950, '3bed': 599950 }\n          },\n          chapmans: {\n            name: 'Chapmans Yard', city: 'Birmingham', yield: 0.06, cg: 0.0384, rg: 0.0386, sc_psf: 2.5,\n            paymentPlan: { type: 'lump', steps: [{ label: 'Reservation fee', value: 5000, note: 'On signing' }, { label: 'Exchange deposit (20%)', pct: 0.20, note: 'Standard' }, { label: 'Exchange deposit \u2014 Duplex (35%)', pct: 0.35, note: 'Duplex units only' }, { label: 'Completion balance', pct: null, note: 'Remaining amount on completion' }] },\n            prices: { studio: null, '1bed': 237000, '2bed': 362500, '3bed': null }\n          },\n        };\n\n        const JMR = { uk: 0.045, uae: 0.055, turkey: 0.06, china: 0.055, india: 0.055, other: 0.06 };\n        const JM_NAT_LABEL = { uk: 'UK Resident', uae: 'UAE \/ GCC', turkey: 'Turkey', china: 'China \/ Hong Kong', india: 'India', other: 'Other \/ Non-UK' };\n        const JM_SOL = 2100, JM_FIXED = 190 + 1500 + 1000 + 500 + 2000;\n\n        \/\/ Single source of truth for the legal disclaimer shown on both S2 and S3.\n        \/\/ Year is injected at init time so the copyright stays current without manual edits.\n        const JM_DISCLAIMER = 'These figures are approximate and for illustrative purposes only. Net income is calculated after mortgage payments, 8% management fee and service charge. Capital growth projections are based on Savills 2025\u20132029 forecasts. Non-UK residents pay a 2% Stamp Duty surcharge on all bands. Mortgage availability and maximum LTV vary by nationality and lender. Always consult a qualified solicitor and mortgage broker before investing. \u00a9 Joseph Mews {{YEAR}}';\n        function jmDisclaimerText() {\n          return JM_DISCLAIMER.replace('{{YEAR}}', new Date().getFullYear());\n        }\n        function jmInitDynamicContent() {\n          const s2 = document.getElementById('jmDiscS2');\n          if (s2) s2.textContent = jmDisclaimerText();\n        }\n\n        function jmSdlt(p, nat) {\n          const b = nat !== 'uk' ? [[125000, .07], [125000, .09], [675000, .12], [575000, .17], [Infinity, .19]] : [[125000, 0], [125000, .02], [675000, .05], [575000, .10], [Infinity, .12]];\n          let t = 0, r = p; for (const [x, rt] of b) { if (r <= 0) break; const s = Math.min(r, x); t += s * rt; r -= s; } return Math.round(t);\n        }\n        function jmF(n) { return '\u00a3' + Math.round(n).toLocaleString('en-GB'); }\n        function jmFP(n) { return '+\u00a3' + Math.round(n).toLocaleString('en-GB'); }\n\n        let S = { proj: 'penny', type: '1bed', pay: 'mortgage', nat: 'turkey', ltv: 70, mort: 'io', portfolio: [], calc: null };\n\n        \/\/ \u2500\u2500 NAVIGATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmGo(n) {\n          document.querySelectorAll('.jm-screen').forEach(s => s.className = 'jm-screen');\n          document.getElementById('jmS' + n).className = 'jm-screen active';\n          window.scrollTo(0, 0);\n          if (n === 3) jmBuildSummary();\n        }\n\n        \/\/ \u2500\u2500 PROJECT CHANGE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmOnProjChange() {\n          \/\/ proj already set by jmPickProj\n          S.calc = null;\n          jmUpdateTypePrices();\n          \/\/ reset type to first available\n          const proj = JMP[S.proj];\n          const types = ['studio', '1bed', '2bed', '3bed'];\n          const first = types.find(t => proj.prices[t]);\n          if (first) jmSetType(first, document.getElementById('jmTc' + first.replace('bed', 'bed') || 'jmTc' + first));\n          else jmCalc();\n        }\n\n        function jmUpdateTypePrices() {\n          const proj = JMP[S.proj];\n          ['studio', '1bed', '2bed', '3bed'].forEach(t => {\n            const price = proj.prices[t];\n            const card = document.getElementById('jmTc' + (t === 'studio' ? 'Studio' : t === '1bed' ? '1bed' : t === '2bed' ? '2bed' : '3bed'));\n            const priceEl = document.getElementById('jmPrice' + (t === 'studio' ? 'Studio' : t === '1bed' ? '1bed' : t === '2bed' ? '2bed' : '3bed'));\n            if (card && priceEl) {\n              if (price) { priceEl.textContent = 'From ' + jmF(price); card.className = 'jm-tc' + (S.type === t ? ' active' : ''); }\n              else { priceEl.textContent = 'N\/A'; card.className = 'jm-tc unavailable'; }\n            }\n          });\n        }\n\n        function jmSetType(type, el) {\n          S.type = type;\n          document.querySelectorAll('.jm-tc').forEach(c => { if (!c.classList.contains('unavailable')) c.className = 'jm-tc'; });\n          if (el) el.className = 'jm-tc active';\n          jmCalc();\n        }\n\n        \/\/ \u2500\u2500 PAYMENT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmSetPay(m) {\n          S.pay = m;\n          document.getElementById('jmBtnMort').className = 'jm-tog ' + (m === 'mortgage' ? 'on' : 'off');\n          document.getElementById('jmBtnCash').className = 'jm-tog ' + (m === 'cash' ? 'on' : 'off');\n          document.getElementById('jmMortSection').style.display = m === 'mortgage' ? 'block' : 'none';\n          jmCalc();\n        }\n        function jmSetMort(t) {\n          S.mort = t;\n          document.getElementById('jmBtnIO').className = 'jm-tog ' + (t === 'io' ? 'on' : 'off');\n          document.getElementById('jmBtnRep').className = 'jm-tog ' + (t === 'rep' ? 'on' : 'off');\n          const title = document.getElementById('jmMortExplainTitle');\n          const text = document.getElementById('jmMortExplainText');\n          if (t === 'io') {\n            title.textContent = 'Interest Only';\n            text.textContent = 'You only pay the interest each month \u2014 not the loan itself. Your monthly payments are lower, but the full loan amount remains at the end of the term. Popular with buy-to-let investors.';\n          } else {\n            title.textContent = 'Repayment';\n            text.textContent = 'You pay both the interest and a portion of the loan each month. Your monthly payments are higher, but you gradually own more of the property and owe nothing at the end of the term.';\n          }\n          jmCalc();\n        }\n\n        \/\/ \u2500\u2500 CALCULATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmCalc() {\n          const proj = JMP[S.proj];\n          const price = proj.prices[S.type];\n          if (!price) {\n            document.getElementById('jmResTitle').textContent = 'Not available';\n            document.getElementById('jmResSub').textContent = 'This development does not offer this unit type';\n            ['jmMonRent', 'jmNetMon', 'jmAnnRent', 'jmNetYield', 'jmMortVal', 'jmTotalCash'].forEach(id => document.getElementById(id).textContent = '\u2014');\n            \/\/ payment plan always shown\n            S.calc = null; return;\n          }\n\n          const nat = S.nat || 'turkey';\n          const ltv = Math.round(parseInt(document.getElementById('jmLtv').value)) \/ 100; S.ltv = Math.round(ltv * 100);\n          const rate = JMR[nat];\n          const annRent = Math.round(price * proj.yield);\n          const moRent = Math.round(annRent \/ 12);\n          const scAnn = Math.round(price * 0.006);\n          const mgmtAnn = Math.round(annRent * 0.08);\n          const loan = Math.round(price * ltv);\n          let mort = 0;\n          if (S.pay === 'mortgage' && ltv > 0) {\n            if (S.mort === 'io') mort = Math.round(loan * rate \/ 12);\n            else { const r = rate \/ 12, n = 300; mort = Math.round(loan * (r * Math.pow(1 + r, n)) \/ (Math.pow(1 + r, n) - 1)); }\n          }\n          const netMo = moRent - mort - Math.round(mgmtAnn \/ 12) - Math.round(scAnn \/ 12);\n          const netYield = ((annRent - mgmtAnn - scAnn) \/ price * 100).toFixed(2);\n          const sdlt = jmSdlt(price, nat);\n          const resFee = 5000; \/\/ Fixed \u00a35,000 reservation for all projects\n          const exchPct = proj.paymentPlan.type === 'phased' ? 0.05 : 0.20;\n          \/\/ Exchange = (price * pct) MINUS reservation fee already paid\n          const exchAmt = Math.round(price * exchPct) - resFee;\n          \/\/ Completion amount client pays = price - resFee - exchAmt - mortgage\n          const completionAmt = Math.max(0, price - resFee - exchAmt - loan);\n          const legalFees = JM_SOL + (S.pay === 'mortgage' && ltv > 0 ? JM_FIXED : 0);\n          \/\/ Cash needed = res fee + exchange + completion + SDLT + legal fees\n          const totalCash = resFee + exchAmt + completionAmt + sdlt + legalFees;\n\n          document.getElementById('jmResTitle').textContent = proj.name + ' \u2014 ' +\n            (S.type === 'studio' ? 'Studio' : S.type === '1bed' ? '1 Bedroom' : S.type === '2bed' ? '2 Bedroom' : '3 Bedroom');\n          document.getElementById('jmResSub').textContent = proj.city + ' \u00b7 From ' + jmF(price) + ' \u00b7 ' + S.type.replace('bed', ' bed').replace('studio', 'Studio').toUpperCase();\n          document.getElementById('jmMonRent').textContent = jmF(moRent);\n          document.getElementById('jmNetMon').textContent = jmF(netMo);\n          document.getElementById('jmAnnRent').textContent = jmF(annRent);\n          document.getElementById('jmNetYield').textContent = netYield + '%';\n          const mortLabel = S.pay === 'cash' ? 'Cash investment' : (S.mort === 'io' ? 'Interest only' : 'Repayment') + ' mortgage';\n          document.getElementById('jmMortLbl').textContent = mortLabel;\n          document.getElementById('jmMortVal').textContent = S.pay === 'cash' ? '\u00a30 \/ mo' : jmF(mort) + ' \/ mo';\n          document.getElementById('jmTotalCash').textContent = jmF(totalCash);\n\n          \/\/ Payment plan \u2014 mortgage aware\n          const pp = proj.paymentPlan;\n          const ppEl = document.getElementById('jmPayPlan');\n          const ppRows = document.getElementById('jmPayPlanRows');\n          ppRows.innerHTML = '';\n\n          if (pp.type === 'phased') {\n            \/\/ Penny Place style: reservation + exchange(5%) + 24 instalments(25%) + completion remainder\n            const resFee2 = pp.steps.find(s => s.label.toLowerCase().includes('reservation'))?.value || 0;\n            const exchPct2 = pp.steps.find(s => s.label.toLowerCase().includes('exchange'))?.pct || 0.05;\n            const instPct2 = pp.steps.find(s => s.label.toLowerCase().includes('instalment') || s.label.toLowerCase().includes('installment'))?.pct || 0.25;\n            const instMonths = pp.steps.find(s => s.label.toLowerCase().includes('instalment') || s.label.toLowerCase().includes('installment'))?.months || 24;\n\n            const exchAmt2 = Math.round(price * exchPct2) - resFee2; \/\/ subtract reservation already paid\n            const instTotal = Math.round(price * instPct2);\n            const instMonthly = Math.round(instTotal \/ instMonths);\n            const mortgageAmt = loan; \/\/ from LTV calculation above\n            \/\/ What client pays at completion = price - resFee - exchAmt - instTotal - mortgageAmt\n            const completionClient = Math.max(0, price - resFee2 - exchAmt2 - instTotal - mortgageAmt);\n            const rows = [\n              { label: 'Reservation fee', note: 'On signing', amt: jmF(resFee2) },\n              { label: `Exchange deposit (${Math.round(exchPct2 * 100)}%)`, note: 'On exchange', amt: jmF(exchAmt2) },\n              { label: `${instMonths} monthly instalments (${Math.round(instPct2 * 100)}%)`, note: `During build \u00b7 ${jmF(instMonthly)}\/mo`, amt: jmF(instTotal) },\n            ];\n            if (S.pay === 'mortgage' && ltv > 0) {\n              rows.push({ label: `Mortgage (${S.ltv}% LTV)`, note: 'Bank pays on completion', amt: jmF(mortgageAmt), highlight: true });\n              if (completionClient > 0) rows.push({ label: 'Completion balance (your payment)', note: 'On completion', amt: jmF(completionClient) });\n            } else {\n              const completionCash = Math.max(0, price - resFee2 - exchAmt2 - instTotal);\n              rows.push({ label: `Completion balance (${100 - Math.round(exchPct2 * 100) - Math.round(instPct2 * 100)}%)`, note: 'On completion \u2014 cash purchase', amt: jmF(completionCash) });\n            }\n            rows.forEach(r => {\n              const goldStyle = r.highlight ? 'color:#9B8A6A;' : '';\n              ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\" style=\"${goldStyle}\">${r.label}<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">${r.note}<\/span><\/span><span class=\"jm-pp-val\" style=\"${goldStyle}\">${r.amt}<\/span><\/div>`;\n            });\n          } else {\n            \/\/ Lump sum projects: reservation + exchange + mortgage\/completion\n            const resFee2 = pp.steps.find(s => s.label.toLowerCase().includes('reservation'))?.value || 0;\n            const exchPct2 = pp.steps.find(s => s.label.toLowerCase().includes('exchange') && !s.label.toLowerCase().includes('duplex'))?.pct || 0.20;\n            const exchAmt2 = Math.round(price * exchPct2) - resFee2;\n            const mortgageAmt = loan;\n            const completionClient = Math.max(0, price - resFee2 - exchAmt2 - resFee2 - mortgageAmt);\n\n            if (resFee2 > 0) ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\">Reservation fee<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">On signing<\/span><\/span><span class=\"jm-pp-val\">${jmF(resFee2)}<\/span><\/div>`;\n            ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\">Exchange deposit (${Math.round(exchPct2 * 100)}%)<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">On exchange<\/span><\/span><span class=\"jm-pp-val\">${jmF(exchAmt2 + resFee2)}<\/span><\/div>`;\n\n            if (S.pay === 'mortgage' && ltv > 0) {\n              ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\" style=\"color:#9B8A6A;\">Mortgage (${S.ltv}% LTV)<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">Bank pays on completion<\/span><\/span><span class=\"jm-pp-val\" style=\"color:#9B8A6A;\">${jmF(mortgageAmt)}<\/span><\/div>`;\n              if (completionClient > 0) ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\">Your completion payment<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">On completion<\/span><\/span><span class=\"jm-pp-val\">${jmF(completionClient)}<\/span><\/div>`;\n              else ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\" style=\"color:rgba(28,23,16,0.4);\">Completion balance<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">Fully covered by mortgage<\/span><\/span><span class=\"jm-pp-val\" style=\"color:rgba(28,23,16,0.4);\">\u00a30<\/span><\/div>`;\n            } else {\n              const completionCash = Math.max(0, price - resFee2 - exchAmt2 - resFee2);\n              ppRows.innerHTML += `<div class=\"jm-pp-row\"><span class=\"jm-pp-lbl\">Completion balance (${100 - Math.round(exchPct2 * 100)}%)<span style=\"color:rgba(28,23,16,0.3);margin-left:8px;\">On completion \u2014 cash purchase<\/span><\/span><span class=\"jm-pp-val\">${jmF(completionCash)}<\/span><\/div>`;\n            }\n          }\n          \/\/ always visible\n\n          \/\/ Projections \u2014 net annual income & total return both after all costs\n          const annMort = mort * 12;\n          [1, 5, 10, 15].forEach(y => {\n            const pv = Math.round(price * Math.pow(1 + proj.cg, y));\n            \/\/ Gross rental at year Y\n            const grossRentY = Math.round(annRent * Math.pow(1 + proj.rg, y - 1));\n            \/\/ Net annual income at year Y = gross - mortgage - mgmt(8%) - service charge\n            const mgmtY = Math.round(grossRentY * 0.08);\n            const netAnnY = grossRentY - annMort - mgmtY - scAnn;\n            \/\/ Cumulative NET income over Y years\n            let cumNet = 0;\n            for (let j = 1; j <= y; j++) {\n              const gRent = annRent * Math.pow(1 + proj.rg, j - 1);\n              const mFee = gRent * 0.08;\n              cumNet += gRent - annMort - mFee - scAnn;\n            }\n            \/\/ Total return = cumulative net income + capital gain\n            const capGain = pv - price;\n            const totalReturn = Math.round(cumNet + capGain);\n            document.getElementById('jmPV' + y).textContent = jmF(pv);\n            document.getElementById('jmRI' + y).textContent = jmF(netAnnY);\n            document.getElementById('jmTR' + y).textContent = jmFP(totalReturn);\n          });\n\n          S.calc = { proj: S.proj, projName: proj.name, city: proj.city, type: S.type, price, annRent, moRent, mort, scAnn, mgmtAnn, netMo, netYield, sdlt, totalCash, pay: S.pay, nat, ltv: S.ltv, mortType: S.mort, resFee, exchAmt, exchPct, paymentPlan: pp, loan };\n        }\n\n        \/\/ \u2500\u2500 PORTFOLIO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmAddToPortfolio() {\n          if (!S.calc) { alert('Please select a unit type first.'); return; }\n          S.portfolio.push({ ...S.calc });\n          jmRenderPortCards();\n          document.getElementById('jmPortBadge').textContent = (S.portfolio.length === 1 ? '1 unit added' : S.portfolio.length + ' units added');\n          document.getElementById('jmCountLabel').innerHTML = (S.portfolio.length === 1 ? '<span id=\"jmCount\">1<\/span> unit in portfolio' : '<span id=\"jmCount\">' + S.portfolio.length + '<\/span> units in portfolio');\n          document.getElementById('jmPortArea').style.display = 'block';\n          document.getElementById('jmPortEmpty').style.display = 'none';\n          const sumBtn = document.getElementById('jmSumBtn');\n          sumBtn.className = 'jm-summary-btn-top enabled';\n          sumBtn.removeAttribute('title');\n          \/\/ Visual confirmation: pulse count badge\n          const badge = document.getElementById('jmPortBadge');\n          badge.classList.remove('jm-badge-pulse');\n          void badge.offsetWidth; \/\/ force reflow to restart animation\n          badge.classList.add('jm-badge-pulse');\n          \/\/ Flash the newly added card\n          setTimeout(() => {\n            const cards = document.querySelectorAll('#jmPortCards > div');\n            const last = cards[cards.length - 1];\n            if (last) {\n              last.classList.add('jm-card-flash');\n              setTimeout(() => last.classList.remove('jm-card-flash'), 700);\n            }\n          }, 10);\n        }\n\n        function jmRenderPortCards() {\n          const c = document.getElementById('jmPortCards');\n          c.innerHTML = '';\n          S.portfolio.forEach((u, i) => {\n            const tl = u.type === 'studio' ? 'Studio' : u.type === '1bed' ? '1 Bedroom' : u.type === '2bed' ? '2 Bedroom' : '3 Bedroom';\n            const d = document.createElement('div');\n            d.style.cssText = 'background:#fff;border:0.5px solid rgba(28,23,16,0.1);margin-bottom:8px;overflow:hidden;';\n            d.innerHTML =\n              '<div style=\"background:#1C1710;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;\">' +\n              '<div style=\"font-family:JMNumerics,Cormorant Garamond,serif;font-size:15px;color:#fff;font-weight:300;\">' + tl + ' \u2014 ' + u.projName + '<\/div>' +\n              '<span onclick=\"jmRemove(' + i + ')\" style=\"color:rgba(184,160,106,0.6);cursor:pointer;font-size:18px;line-height:1;\">\u00d7<\/span>' +\n              '<\/div>' +\n              '<div style=\"display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1px;background:rgba(28,23,16,0.08);\">' +\n              '<div style=\"background:#F5F0E8;padding:10px 12px;\"><div style=\"font-size:7px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(28,23,16,0.3);margin-bottom:3px;\">Price from<\/div><div style=\"font-family:JMNumerics,Cormorant Garamond,serif;font-size:15px;font-weight:300;color:#1C1710;\">' + jmF(u.price) + '<\/div><\/div>' +\n              '<div style=\"background:#F5F0E8;padding:10px 12px;\"><div style=\"font-size:7px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(28,23,16,0.3);margin-bottom:3px;\">Net yield<\/div><div style=\"font-family:JMNumerics,Cormorant Garamond,serif;font-size:15px;font-weight:300;color:#1C1710;\">' + u.netYield + '%<\/div><\/div>' +\n              '<div style=\"background:#F5F0E8;padding:10px 12px;\"><div style=\"font-size:7px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(28,23,16,0.3);margin-bottom:3px;\">Net income<\/div><div style=\"font-family:JMNumerics,Cormorant Garamond,serif;font-size:15px;font-weight:300;color:#9B8A6A;\">' + jmF(u.netMo) + '\/mo<\/div><\/div>' +\n              '<div style=\"background:#F5F0E8;padding:10px 12px;\"><div style=\"font-size:7px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(28,23,16,0.3);margin-bottom:3px;\">Cash required<\/div><div style=\"font-family:JMNumerics,Cormorant Garamond,serif;font-size:15px;font-weight:300;color:#1C1710;\">' + jmF(u.totalCash) + '<\/div><\/div>' +\n              '<\/div>';\n            c.appendChild(d);\n          });\n          document.getElementById('jmCountLabel').innerHTML = (S.portfolio.length === 1 ? '<span id=\"jmCount\">1<\/span> unit in portfolio' : '<span id=\"jmCount\">' + S.portfolio.length + '<\/span> units in portfolio');\n        }\n\n        function jmRemove(i) {\n          S.portfolio.splice(i, 1);\n          jmRenderPortCards();\n          document.getElementById('jmPortBadge').textContent = (S.portfolio.length === 1 ? '1 unit added' : S.portfolio.length + ' units added');\n          if (!S.portfolio.length) {\n            const sumBtn = document.getElementById('jmSumBtn');\n            sumBtn.className = 'jm-summary-btn-top';\n            sumBtn.setAttribute('title', 'Add at least one unit to your portfolio first');\n            document.getElementById('jmPortArea').style.display = 'none';\n            document.getElementById('jmPortEmpty').style.display = 'block';\n          }\n        }\n\n        \/\/ \u2500\u2500 SUMMARY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmBuildSummary() {\n          const body = document.getElementById('jmSumBody');\n          body.innerHTML = '';\n          const p = S.portfolio;\n\n          if (!p.length) {\n            body.innerHTML = '<div style=\"padding:60px 0;text-align:center;font-family:\\'JMNumerics\\',\\'Cormorant Garamond\\',serif;font-size:26px;font-weight:300;color:rgba(28,23,16,0.3);\">No units added yet.<br><span style=\"font-size:16px;font-family:\\'Montserrat\\',sans-serif;letter-spacing:1px;margin-top:12px;display:block;\">Go back and add units to your portfolio.<\/span><\/div>';\n            return;\n          }\n\n          const natLabel = document.getElementById('jmNatLabel') ? document.getElementById('jmNatLabel').textContent : 'Turkey';\n          document.getElementById('jmS3Sub').textContent = (p.length === 1 ? '1 unit \u00b7 ' : p.length + ' units \u00b7 ') + natLabel;\n\n          \/\/ \u2500\u2500 UNIT CARDS (collapsible) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n          p.forEach((u, idx) => {\n            const tl = u.type === 'studio' ? 'Studio' : u.type === '1bed' ? '1 Bedroom' : u.type === '2bed' ? '2 Bedroom' : '3 Bedroom';\n            const proj = JMP[u.proj];\n\n            \/\/ Build payment plan HTML\n            let ppHTML = '';\n            const price2 = u.price, loan2 = Math.round(price2 * (u.ltv || 0) \/ 100);\n            const pp2 = u.paymentPlan;\n            let ppItems = '';\n            if (pp2.type === 'phased') {\n              const rF = pp2.steps.find(s => s.label.toLowerCase().includes('reservation'))?.value || 0;\n              const eP = pp2.steps.find(s => s.label.toLowerCase().includes('exchange'))?.pct || 0.05;\n              const iP = pp2.steps.find(s => s.label.toLowerCase().includes('instalment') || s.label.toLowerCase().includes('installment'))?.pct || 0.25;\n              const iM = pp2.steps.find(s => s.label.toLowerCase().includes('instalment') || s.label.toLowerCase().includes('installment'))?.months || 24;\n              const eA = Math.round(price2 * eP), iT = Math.round(price2 * iP), iMo = Math.round(iT \/ iM);\n              const cC = Math.max(0, price2 - rF - eA - iT - loan2);\n              const items = [\n                { l: 'Reservation fee', s: 'On signing', v: jmF(rF) },\n                { l: 'Exchange deposit (' + Math.round(eP * 100) + '%)', s: 'On exchange', v: jmF(eA) },\n                { l: iM + ' monthly instalments (' + Math.round(iP * 100) + '%)', s: jmF(iMo) + '\/mo during build', v: jmF(iT) },\n              ];\n              if (u.pay === 'mortgage' && loan2 > 0) {\n                items.push({ l: 'Mortgage (' + Math.round(u.ltv || 0) + '% LTV)', s: 'Bank pays at completion', v: jmF(loan2), gold: true });\n                if (cC > 0) items.push({ l: 'Your completion payment', s: 'On completion', v: jmF(cC) });\n              } else {\n                items.push({ l: 'Completion balance', s: 'Cash purchase', v: jmF(Math.max(0, price2 - rF - eA - iT)) });\n              }\n              ppItems = items.map(i => '<div class=\"jm-ucard-pp-item\" style=\"' + (i.gold ? 'border-left:2px solid #9B8A6A;' : '') + '\"><div class=\"jm-ucard-pp-item-l\" style=\"' + (i.gold ? 'color:#9B8A6A;' : '') + '\">' + (i.l) + ' <span style=\"opacity:0.5;\">' + i.s + '<\/span><\/div><div class=\"jm-ucard-pp-item-v\" style=\"' + (i.gold ? 'color:#9B8A6A;' : '') + '\">' + i.v + '<\/div><\/div>').join('');\n            } else {\n              const rF = pp2.steps.find(s => s.label.toLowerCase().includes('reservation'))?.value || 0;\n              const eP = pp2.steps.find(s => s.label.toLowerCase().includes('exchange') && !s.label.toLowerCase().includes('duplex'))?.pct || 0.20;\n              const eA = Math.round(price2 * eP), cC = Math.max(0, price2 - eA - loan2);\n              const items = [];\n              if (rF > 0) items.push({ l: 'Reservation fee', s: 'On signing', v: jmF(rF) });\n              items.push({ l: 'Exchange deposit (' + Math.round(eP * 100) + '%)', s: 'On exchange', v: jmF(eA) });\n              if (u.pay === 'mortgage' && loan2 > 0) {\n                items.push({ l: 'Mortgage (' + Math.round(u.ltv || 0) + '% LTV)', s: 'Bank pays at completion', v: jmF(loan2), gold: true });\n                items.push({ l: cC > 0 ? 'Your completion payment' : 'Completion', s: cC > 0 ? 'On completion' : 'Fully covered by mortgage', v: jmF(cC), muted: cC === 0 });\n              } else {\n                items.push({ l: 'Completion balance', s: 'Cash purchase', v: jmF(cC) });\n              }\n              ppItems = items.map(i => '<div class=\"jm-ucard-pp-item\" style=\"' + (i.gold ? 'border-left:2px solid #9B8A6A;' : '') + '\"><div class=\"jm-ucard-pp-item-l\" style=\"' + (i.gold ? 'color:#9B8A6A;' : i.muted ? 'opacity:0.35;' : '') + '\">' + (i.l) + ' <span style=\"opacity:0.5;\">' + i.s + '<\/span><\/div><div class=\"jm-ucard-pp-item-v\" style=\"' + (i.gold ? 'color:#9B8A6A;' : i.muted ? 'opacity:0.35;' : '') + '\">' + i.v + '<\/div><\/div>').join('');\n            }\n            ppHTML = '<div class=\"jm-ucard-pp\"><div class=\"jm-ucard-pp-title\">Payment plan<\/div><div class=\"jm-ucard-pp-rows\">' + ppItems + '<\/div><\/div>';\n\n            \/\/ Build projection rows\n            const projRows = [5, 10, 15].map(y => {\n              const pv = Math.round(u.price * Math.pow(1 + (proj.cg || 0.04), y));\n              let gCum = 0; for (let j = 1; j <= y; j++) gCum += u.annRent * Math.pow(1 + (proj.rg || 0.05), j - 1);\n              let nCum = 0; for (let j = 1; j <= y; j++) { const g = u.annRent * Math.pow(1 + (proj.rg || 0.05), j - 1); nCum += g - u.mort * 12 - g * 0.08 - (u.scAnn || 0); }\n              const gY = Math.round(u.annRent * Math.pow(1 + (proj.rg || 0.05), y - 1));\n              return '<div class=\"jm-uprow\"><span class=\"jm-upyr\">Yr ' + y + '<\/span><span class=\"jm-upv\">' + jmF(pv) + '<\/span><span class=\"jm-upv\">' + jmF(gY) + '<\/span><span class=\"jm-upv\">' + jmF(Math.round(nCum)) + '<\/span><span class=\"jm-upv gr\">' + jmFP(Math.round(gCum + (pv - u.price))) + '<\/span><\/div>';\n            }).join('');\n\n            const card = document.createElement('div');\n            card.className = 'jm-ucard';\n            card.innerHTML =\n              '<div class=\"jm-ucard-hd jm-ucard-toggle\" onclick=\"jmToggleCard(' + idx + ')\" style=\"cursor:pointer;\">'\n              + '<div class=\"jm-ucard-name\">' + tl + ' \u2014 ' + u.projName + ', ' + u.city + '<\/div>'\n              + '<div style=\"display:flex;align-items:center;gap:12px;\">'\n              + '<div class=\"jm-ucard-badge\">From ' + jmF(u.price) + '<\/div>'\n              + '<div class=\"jm-ucard-arrow\" id=\"jmArrow' + idx + '\">'\n              + '<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\"><path d=\"M2 4l4 4 4-4\" stroke=\"#B8A06A\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg>'\n              + '<\/div>'\n              + '<\/div>'\n              + '<\/div>'\n              + '<div class=\"jm-ucard-body\" id=\"jmBody' + idx + '\">'\n              + '<div class=\"jm-ucard-grid\" style=\"grid-template-columns:repeat(5,1fr);\">'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Starting price<\/div><div class=\"jm-ucell-v\">' + jmF(u.price) + '<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Cash needed<\/div><div class=\"jm-ucell-v\">' + jmF((function () { const rF = 5000; const pr = JMP[u.proj]; const eP = pr.paymentPlan.type === \"phased\" ? 0.05 : 0.20; const exchA = Math.round(u.price * eP) - rF; const loan = Math.round(u.price * (u.ltv || 0) \/ 100); const compA = Math.max(0, u.price - (exchA + rF) - loan); return rF + exchA + compA; })()) + '<\/div><div class=\"jm-ucell-sub\">Res. fee + exchange + completion<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Total cash needed<\/div><div class=\"jm-ucell-v gold\">' + jmF((function () { const rF = 5000; const pr = JMP[u.proj]; const eP = pr.paymentPlan.type === \"phased\" ? 0.05 : 0.20; const exchA = Math.round(u.price * eP) - rF; const loan = Math.round(u.price * (u.ltv || 0) \/ 100); const compA = Math.max(0, u.price - (exchA + rF) - loan); return rF + exchA + compA + u.sdlt + (u.pay === \"mortgage\" ? 5690 : 2100); })()) + '<\/div><div class=\"jm-ucell-sub\">+ SDLT + legal fees<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">SDLT<\/div><div class=\"jm-ucell-v\">' + jmF(u.sdlt) + '<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Net yield<\/div><div class=\"jm-ucell-v\">' + u.netYield + '%<\/div><\/div>'\n              + '<\/div>'\n              + '<div class=\"jm-ucard-divlbl\">Monthly income breakdown<\/div>'\n              + '<div class=\"jm-ucard-grid\">'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Gross rental<\/div><div class=\"jm-ucell-v gold\">' + jmF(u.moRent) + '\/mo<\/div><div class=\"jm-ucell-sub\">' + jmF(u.annRent) + '\/yr<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Mortgage<\/div><div class=\"jm-ucell-v muted\">\u2212' + jmF(u.mort) + '\/mo<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Mgmt + service charge<\/div><div class=\"jm-ucell-v muted\">\u2212' + jmF(Math.round(u.mgmtAnn \/ 12) + Math.round(u.scAnn \/ 12)) + '\/mo<\/div><\/div>'\n              + '<div class=\"jm-ucell\"><div class=\"jm-ucell-l\">Net income<\/div><div class=\"jm-ucell-v green\">' + jmF(u.netMo) + '\/mo<\/div><div class=\"jm-ucell-sub\" style=\"color:#2E6E42;\">' + jmF(u.netMo * 12) + '\/yr<\/div><\/div>'\n              + '<\/div>'\n              + ppHTML\n              + '<div class=\"jm-ucard-proj\">'\n              + '<div class=\"jm-up-hd\"><span class=\"jm-uphc\">Year<\/span><span class=\"jm-uphc\">Property value<\/span><span class=\"jm-uphc\">Gross rental\/yr<\/span><span class=\"jm-uphc\">Net income (cum.)<\/span><span class=\"jm-uphc\">Total return<\/span><\/div>'\n              + projRows\n              + '<\/div>'\n              + '<\/div>';\n            body.appendChild(card);\n          });\n\n          \/\/ \u2500\u2500 COMBINED TOTALS (simple, clear) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n          const tGross = p.reduce((s, u) => s + u.moRent, 0);\n          const tNet = p.reduce((s, u) => s + u.netMo, 0);\n          const tInv = p.reduce((s, u) => s + u.totalCash, 0);\n          const tMort = p.reduce((s, u) => s + u.mort, 0);\n          const tSdlt = p.reduce((s, u) => s + u.sdlt, 0);\n          const tProp = p.reduce((s, u) => s + u.price, 0);\n\n          \/\/ 15yr calc\n          let tPropVal15 = 0, tNetCum15 = 0, tGrossCum15 = 0;\n          p.forEach(u => {\n            const pr = JMP[u.proj];\n            const pv15 = Math.round(u.price * Math.pow(1 + (pr.cg || 0.04), 15));\n            tPropVal15 += pv15;\n            for (let j = 1; j <= 15; j++) {\n              const g = u.annRent * Math.pow(1 + (pr.rg || 0.05), j - 1);\n              tGrossCum15 += g;\n              tNetCum15 += g - u.mort * 12 - g * 0.08 - (u.scAnn || 0);\n            }\n          });\n          const tCapGain = tPropVal15 - tProp;\n          const tTotalReturn = Math.round(tNetCum15 + tCapGain);\n          const roce = tInv > 0 ? Math.round(tTotalReturn \/ tInv * 100) : 0;\n\n          \/\/ Chart data for property value growth\n          \/\/ Compute portfolio value for every year 0..15 so both main and expandable rows stay in sync\n          const valueAtYear = y => Math.round(p.reduce((s, u) => {\n            const pr = JMP[u.proj]; return s + u.price * Math.pow(1 + (pr.cg || 0.04), y);\n          }, 0));\n          const yearValues = {};\n          for (let y = 0; y <= 15; y++) yearValues[y] = valueAtYear(y);\n          const maxVal = yearValues[15]; \/\/ Year 15 is always the largest under positive growth\n\n          \/\/ Helper: render a single chart row.\n          \/\/ isSub = true => smaller, muted intermediate row hidden behind a toggle\n          const chartRow = (label, val, isSub, groupId) => {\n            const pct = maxVal > 0 ? Math.round(val \/ maxVal * 100) : 0;\n            const delta = val - tProp;\n            const pctDelta = tProp > 0 ? (delta \/ tProp * 100) : 0;\n            const deltaStr = (delta >= 0 ? '+' : '') + jmF(delta) + ' (' + (pctDelta >= 0 ? '+' : '') + pctDelta.toFixed(1) + '%)';\n            const rowClass = isSub ? 'jm-chart-row jm-chart-sub' + (groupId ? ' jm-chart-sub-' + groupId : '') : 'jm-chart-row';\n            const barColor = isSub ? '' : ' gold';\n            \/\/ Today row: no delta shown, dark bar\n            const isToday = (label === 'Today');\n            const barColorFinal = isToday ? '' : barColor;\n            const deltaHTML = isToday ? '' : '<span class=\"jm-chart-bar-delta\">' + deltaStr + '<\/span>';\n            return '<div class=\"' + rowClass + '\">'\n              + '<div class=\"jm-chart-label\">' + label + '<\/div>'\n              + '<div class=\"jm-chart-bar-wrap\"><div class=\"jm-chart-bar' + barColorFinal + '\" style=\"width:' + pct + '%\">'\n              + '<span class=\"jm-chart-bar-val\">' + jmF(val) + '<\/span>'\n              + deltaHTML\n              + '<\/div><\/div>'\n              + '<\/div>';\n          };\n\n          \/\/ Build the chart rows with collapsible groups for intermediate years\n          \/\/ Groups: A = years 2,3,4  |  B = years 6,7,8,9  |  C = years 11,12,13,14\n          const chartToggle = (groupId, yearsLabel) =>\n            '<div class=\"jm-chart-toggle\" onclick=\"jmToggleChartGroup(\\'' + groupId + '\\', this)\">'\n            + '<button type=\"button\" class=\"jm-chart-toggle-btn\">'\n            + '<span class=\"jm-chart-toggle-icon\">+<\/span>Show years ' + yearsLabel\n            + '<\/button>'\n            + '<\/div>';\n\n          let chartRowsHTML = '';\n          chartRowsHTML += chartRow('Today', tProp, false, null);\n          chartRowsHTML += chartRow('Yr 1', yearValues[1], false, null);\n          chartRowsHTML += chartToggle('A', '2\u20134');\n          [2, 3, 4].forEach(y => { chartRowsHTML += chartRow('Yr ' + y, yearValues[y], true, 'A'); });\n          chartRowsHTML += chartRow('Yr 5', yearValues[5], false, null);\n          chartRowsHTML += chartToggle('B', '6\u20139');\n          [6, 7, 8, 9].forEach(y => { chartRowsHTML += chartRow('Yr ' + y, yearValues[y], true, 'B'); });\n          chartRowsHTML += chartRow('Yr 10', yearValues[10], false, null);\n          chartRowsHTML += chartToggle('C', '11\u201314');\n          [11, 12, 13, 14].forEach(y => { chartRowsHTML += chartRow('Yr ' + y, yearValues[y], true, 'C'); });\n          chartRowsHTML += chartRow('Yr 15', yearValues[15], false, null);\n\n          \/\/ \u2500\u2500 ASSUMPTIONS (for the transparency panel) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n          \/\/ Pull per-project rates and show as single value if uniform, or range\/average if mixed\n          const uniqueProjs = [...new Set(p.map(u => u.proj))].map(id => JMP[id]);\n          const fmtPctRange = (values) => {\n            const uniq = [...new Set(values.map(v => (v * 100).toFixed(2)))];\n            if (uniq.length === 1) return uniq[0] + '%';\n            const nums = values.map(v => v * 100);\n            return Math.min(...nums).toFixed(2) + '%\u2013' + Math.max(...nums).toFixed(2) + '%';\n          };\n          const cgStr = fmtPctRange(uniqueProjs.map(pr => pr.cg || 0.04));\n          const rgStr = fmtPctRange(uniqueProjs.map(pr => pr.rg || 0.05));\n          const yieldStr = fmtPctRange(uniqueProjs.map(pr => pr.yield || 0.06));\n          \/\/ Mortgage rate \u2014 portfolio weighted by loan amount, since each unit shares nationality in S.nat but historically could differ\n          const natSet = [...new Set(p.map(u => u.nat))];\n          const mortRateStr = natSet.length === 1\n            ? (JMR[natSet[0]] * 100).toFixed(2) + '% p.a.'\n            : natSet.map(n => (JMR[n] * 100).toFixed(2) + '%').join(' \/ ');\n          \/\/ Service charge per year (portfolio total)\n          const totalScAnn = p.reduce((s, u) => s + (u.scAnn || 0), 0);\n          const natLabelStr = natSet.length === 1 ? (JM_NAT_LABEL[natSet[0]] || natSet[0]) : natSet.map(n => JM_NAT_LABEL[n] || n).join(', ');\n          const nonUkResident = natSet.length === 1 && natSet[0] !== 'uk';\n          \/\/ Mortgage vs cash split\n          const mortCount = p.filter(u => u.pay === 'mortgage').length;\n          const cashCount = p.length - mortCount;\n          const payMixStr = mortCount && cashCount\n            ? mortCount + ' mortgage \/ ' + cashCount + ' cash'\n            : (mortCount ? 'Mortgage (Interest Only)' : 'Cash purchase');\n          \/\/ Max LTV applied\n          const ltvs = p.filter(u => u.pay === 'mortgage').map(u => u.ltv || 0);\n          const ltvStr = ltvs.length === 0 ? '\u2014 (cash only)' : (ltvs.length === 1 ? ltvs[0] + '%' : Math.min(...ltvs) + '%\u2013' + Math.max(...ltvs) + '%');\n\n          const assumptionsHTML =\n            '<div class=\"jm-assumptions\">'\n            + '<div class=\"jm-assumptions-title\">Assumptions used in these calculations<\/div>'\n            + '<div class=\"jm-assumptions-lead\">We believe in full transparency. Every number on this page is built from the values below \u2014 you can verify them with any independent source.<\/div>'\n            + '<div class=\"jm-assumptions-grid\">'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Capital growth (annual, compounded)<\/div><div class=\"jm-assumption-value\">' + cgStr + '<\/div><div class=\"jm-assumption-note\">Savills UK 2025\u20132029 residential forecasts, applied per project.<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Rental growth (annual)<\/div><div class=\"jm-assumption-value\">' + rgStr + '<\/div><div class=\"jm-assumption-note\">Forecast rental uplift applied to gross rent each year.<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Gross rental yield<\/div><div class=\"jm-assumption-value\">' + yieldStr + '<\/div><div class=\"jm-assumption-note\">Gross annual rent \u00f7 purchase price, before costs.<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Management fee<\/div><div class=\"jm-assumption-value\">8% of gross rent<\/div><div class=\"jm-assumption-note\">Standard lettings &amp; management fee for hands-off investors.<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Service charge (portfolio total)<\/div><div class=\"jm-assumption-value\">' + jmF(totalScAnn) + '\/yr<\/div><div class=\"jm-assumption-note\">Estimated from each development&apos;s service charge per sq ft.<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Mortgage interest rate<\/div><div class=\"jm-assumption-value\">' + (mortCount ? mortRateStr : '\u2014 (cash purchase)') + '<\/div><div class=\"jm-assumption-note\">' + (mortCount ? 'Indicative BTL rate for ' + natLabelStr + ' \u2014 actual rates depend on lender, LTV and loan size.' : 'No mortgage applied to this portfolio.') + '<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Loan to Value<\/div><div class=\"jm-assumption-value\">' + ltvStr + '<\/div><div class=\"jm-assumption-note\">' + payMixStr + '<\/div><\/div>'\n            + '<div class=\"jm-assumption\"><div class=\"jm-assumption-label\">Stamp Duty (SDLT)<\/div><div class=\"jm-assumption-value\">' + jmF(tSdlt) + '<\/div><div class=\"jm-assumption-note\">' + (nonUkResident ? 'Includes the 2% non-UK resident surcharge on all bands.' : 'UK resident standard bands.') + '<\/div><\/div>'\n            + '<\/div>'\n            + '<\/div>';\n\n          const combined = document.createElement('div');\n          combined.className = 'jm-sum-combined';\n          combined.innerHTML =\n            '<div class=\"jm-sum-combined-hd\">'\n            + '<div class=\"jm-sum-combined-title\">Your portfolio at a glance<\/div>'\n            + '<div class=\"jm-sum-combined-sub\">' + (p.length === 1 ? '1 unit combined' : p.length + ' units combined') + '<\/div>'\n            + '<\/div>'\n\n            \/\/ BIG 3 numbers first\n            + '<div class=\"jm-big-cards\">'\n            + '<div class=\"jm-big-card dark\">'\n            + '<div class=\"jm-big-card-label\">\ud83d\udcb0 Combined total cash needed<\/div>'\n            + '<div class=\"jm-big-card-value\">' + jmF(p.reduce((s, u) => { const rF = 5000; const pr = JMP[u.proj]; const eP = pr.paymentPlan.type === \"phased\" ? 0.05 : 0.20; const exchA = Math.round(u.price * eP) - rF; const loan = Math.round(u.price * (u.ltv || 0) \/ 100); const compA = Math.max(0, u.price - (exchA + rF) - loan); const lF = u.pay === \"mortgage\" ? 5690 : 2100; return s + rF + exchA + compA + u.sdlt + lF; }, 0)) + '<\/div>'\n            + '<div class=\"jm-big-card-sub\">All payments + SDLT + legal fees<\/div>'\n            + '<\/div>'\n            + '<div class=\"jm-big-card dark\">'\n            + '<div class=\"jm-big-card-label\">\ud83d\udcc5 You earn every month<\/div>'\n            + '<div class=\"jm-big-card-value\">' + jmF(tNet) + '\/mo<\/div>'\n            + '<div class=\"jm-big-card-sub\">After mortgage, management &amp; service charge<\/div>'\n            + '<\/div>'\n            + '<div class=\"jm-big-card dark\">'\n            + '<div class=\"jm-big-card-label\">\ud83d\udcc8 15-year total return<\/div>'\n            + '<div class=\"jm-big-card-value green\">' + jmFP(tTotalReturn) + '<\/div>'\n            + '<div class=\"jm-big-card-sub\">Net income + property value growth<\/div>'\n            + '<\/div>'\n            + '<\/div>'\n\n            \/\/ SIMPLE BREAKDOWN TABLE\n            + '<div class=\"jm-breakdown\">'\n            + '<div class=\"jm-breakdown-title\">Where does your money go?<\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Combined cash needed<\/span><span class=\"jm-breakdown-value\">' + jmF(p.reduce((s, u) => { const rF = 5000; const pr = JMP[u.proj]; const eP = pr.paymentPlan.type === \"phased\" ? 0.05 : 0.20; const exchA = Math.round(u.price * eP) - rF; const loan = Math.round(u.price * (u.ltv || 0) \/ 100); const compA = Math.max(0, u.price - (exchA + rF) - loan); return s + rF + exchA + compA; }, 0)) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Total SDLT \/ stamp duty<\/span><span class=\"jm-breakdown-value\">' + jmF(tSdlt) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Total legal &amp; mortgage fees<\/span><span class=\"jm-breakdown-value\">' + jmF(p.reduce((s, u) => s + (u.pay === 'mortgage' ? 5690 : 2100), 0)) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\" style=\"margin-top:8px;padding-top:16px;border-top:1.5px solid rgba(28,23,16,0.15);border-bottom:none;\"><span class=\"jm-breakdown-label bold\" style=\"font-size:17px;\">Combined total cash needed<\/span><span class=\"jm-breakdown-value gold\" style=\"font-size:30px;\">' + jmF(p.reduce((s, u) => { const rF = 5000; const pr = JMP[u.proj]; const eP = pr.paymentPlan.type === \"phased\" ? 0.05 : 0.20; const exchA = Math.round(u.price * eP) - rF; const loan = Math.round(u.price * (u.ltv || 0) \/ 100); const compA = Math.max(0, u.price - (exchA + rF) - loan); const lF = u.pay === \"mortgage\" ? 5690 : 2100; return s + rF + exchA + compA + u.sdlt + lF; }, 0)) + '<\/span><\/div>'\n            + '<\/div>'\n\n            + '<div class=\"jm-breakdown\" style=\"border-top:0.5px solid rgba(28,23,16,0.06);\">'\n            + '<div class=\"jm-breakdown-title\">Your monthly cash flow<\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Gross rental income<\/span><span class=\"jm-breakdown-value\">' + jmF(tGross) + '\/mo<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Mortgage payments<\/span><span class=\"jm-breakdown-value red\">\u2212' + jmF(tMort) + '\/mo<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Management fee (8%) + service charge<\/span><span class=\"jm-breakdown-value red\">\u2212' + jmF(p.reduce((s, u) => s + Math.round(u.mgmtAnn \/ 12) + Math.round(u.scAnn \/ 12), 0)) + '\/mo<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label bold\">Net income in your pocket<\/span><span class=\"jm-breakdown-value green\">' + jmF(tNet) + '\/mo (' + jmF(tNet * 12) + '\/yr)<\/span><\/div>'\n            + '<\/div>'\n\n            + '<div class=\"jm-breakdown\" style=\"border-top:0.5px solid rgba(28,23,16,0.06);\">'\n            + '<div class=\"jm-breakdown-title\">Your 15-year growth story<\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Property value today<\/span><span class=\"jm-breakdown-value\">' + jmF(tProp) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Property value in 15 years<\/span><span class=\"jm-breakdown-value\">' + jmF(Math.round(tPropVal15)) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Capital gain (property growth)<\/span><span class=\"jm-breakdown-value green\">+' + jmF(Math.round(tCapGain)) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label\">Cumulative net rental income (15yr)<\/span><span class=\"jm-breakdown-value green\">+' + jmF(Math.round(tNetCum15)) + '<\/span><\/div>'\n            + '<div class=\"jm-breakdown-row\"><span class=\"jm-breakdown-label bold\">Total return on ' + jmF(tInv) + ' invested<\/span><span class=\"jm-breakdown-value green\">' + jmFP(tTotalReturn) + ' (' + roce + '% ROCE)<\/span><\/div>'\n            + '<\/div>'\n\n            \/\/ VISUAL BAR CHART\n            + '<div class=\"jm-chart\">'\n            + '<div class=\"jm-chart-title\">How your property value grows over 15 years<\/div>'\n            + chartRowsHTML\n            + '<div class=\"jm-chart-legend\">'\n            + '<div class=\"jm-chart-leg-item\"><div class=\"jm-chart-leg-dot\" style=\"background:#1C1710;\"><\/div>Purchase price<\/div>'\n            + '<div class=\"jm-chart-leg-item\"><div class=\"jm-chart-leg-dot\" style=\"background:#B8A06A;\"><\/div>Projected value<\/div>'\n            + '<div class=\"jm-chart-leg-item\" style=\"margin-left:auto;opacity:0.75;\">Compounded annually \u2014 click a group to see intermediate years<\/div>'\n            + '<\/div>'\n            + '<\/div>'\n\n            \/\/ ASSUMPTIONS PANEL\n            + assumptionsHTML;\n\n          body.appendChild(combined);\n\n          \/\/ ACTION CARDS\n          const acts = document.createElement('div');\n          acts.innerHTML =\n            '<div class=\"jm-act-lbl\">Next steps<\/div>'\n            + '<div class=\"jm-act-title\">What would you like<br>to do next?<\/div>'\n            + '<div class=\"jm-act-grid\">'\n            + '<div class=\"jm-act\"><div class=\"jm-act-n\">01<\/div><div class=\"jm-act-icon\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#1C1710\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M12 15V3M7 10l5 5 5-5M3 17v2a2 2 0 002 2h14a2 2 0 002-2v-2\"\/><\/svg><\/div><div class=\"jm-act-ct\">Download portfolio<\/div><div class=\"jm-act-desc\">Save a complete PDF summary with all units, income projections and 15-year returns.<\/div><button class=\"jm-act-btn\">Download PDF<\/button><\/div>'\n            + '<div class=\"jm-act\"><div class=\"jm-act-n\">02<\/div><div class=\"jm-act-icon\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#1C1710\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z\"\/><\/svg><\/div><div class=\"jm-act-ct\">Share with investment team<\/div><div class=\"jm-act-desc\">Send your portfolio to our specialists so they are prepared for your call.<\/div><button class=\"jm-act-btn\">Share portfolio<\/button><\/div>'\n            + '<div class=\"jm-act\"><div class=\"jm-act-n\">03<\/div><div class=\"jm-act-icon\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B8A06A\" stroke-width=\"1.5\" stroke-linecap=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M16 2v4M8 2v4M3 10h18\"\/><\/svg><\/div><div class=\"jm-act-ct\">Book a consultation<\/div><div class=\"jm-act-desc\">Speak with one of our investment specialists about your portfolio in detail.<\/div><button class=\"jm-act-btn\">Book now<\/button><\/div>'\n            + '<\/div>'\n            + '<div class=\"jm-disc\">' + jmDisclaimerText() + '<\/div>';\n          body.appendChild(acts);\n        }\n\n        function jmToggleCard(idx) {\n          const body = document.getElementById('jmBody' + idx);\n          const arrow = document.getElementById('jmArrow' + idx);\n          const isOpen = body.classList.contains('open');\n          body.classList.toggle('open', !isOpen);\n          arrow.classList.toggle('open', !isOpen);\n        }\n\n        function jmToggleChartGroup(groupId, toggleEl) {\n          const rows = document.querySelectorAll('.jm-chart-sub-' + groupId);\n          if (!rows.length) return;\n          const isOpen = rows[0].classList.contains('open');\n          rows.forEach(r => r.classList.toggle('open', !isOpen));\n          \/\/ Update button label + icon\n          const btn = toggleEl.querySelector('.jm-chart-toggle-btn');\n          const icon = btn.querySelector('.jm-chart-toggle-icon');\n          const rangeMatch = btn.textContent.match(\/years\\s+(.+)$\/);\n          const range = rangeMatch ? rangeMatch[1] : '';\n          icon.textContent = isOpen ? '+' : '\u2013';\n          btn.innerHTML = '<span class=\"jm-chart-toggle-icon\">' + (isOpen ? '+' : '\u2013') + '<\/span>' + (isOpen ? 'Show' : 'Hide') + ' years ' + range;\n        }\n\n\n        \/\/ \u2500\u2500 CUSTOM DROPDOWNS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        function jmToggleDD(id) {\n          const dd = document.getElementById(id);\n          const list = dd.querySelector('.jm-dd-list');\n          const btn = dd.querySelector('.jm-dd-btn');\n          const isOpen = list.classList.contains('open');\n          \/\/ close all\n          document.querySelectorAll('.jm-dd-list').forEach(l => l.classList.remove('open'));\n          document.querySelectorAll('.jm-dd-btn').forEach(b => b.classList.remove('open'));\n          if (!isOpen) { list.classList.add('open'); btn.classList.add('open'); }\n        }\n        function jmPickProj(val, label, el) {\n          S.proj = val;\n          document.getElementById('jmProjLabel').textContent = label;\n          document.querySelectorAll('#jmProjList .jm-dd-opt').forEach(o => o.classList.remove('selected'));\n          el.classList.add('selected');\n          document.getElementById('jmProjList').classList.remove('open');\n          document.getElementById('jmProjBtn').classList.remove('open');\n          S.unit = null;\n          jmUpdateTypePrices();\n          jmCalc();\n        }\n        function jmPickNat(val, label, el) {\n          S.nat = val;\n          document.getElementById('jmNatLabel').textContent = label;\n          document.querySelectorAll('#jmNatList .jm-dd-opt').forEach(o => o.classList.remove('selected'));\n          el.classList.add('selected');\n          document.getElementById('jmNatList').classList.remove('open');\n          document.getElementById('jmNatBtn').classList.remove('open');\n          jmCalc();\n        }\n        \/\/ close dropdowns on outside click\n        document.addEventListener('click', function (e) {\n          if (!e.target.closest('.jm-dd')) {\n            document.querySelectorAll('.jm-dd-list').forEach(l => l.classList.remove('open'));\n            document.querySelectorAll('.jm-dd-btn').forEach(b => b.classList.remove('open'));\n          }\n        });\n\n        \/\/ \u2500\u2500 INIT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n        jmUpdateTypePrices();\n        jmInitDynamicContent();\n        jmCalc();\n      <\/script>\n    <\/div>\n  <\/section>\n\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     LEAD FORM\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"form-sec\">\n    <div class=\"form-inner\">\n\n      <!-- LEFT \u2014 cream panel with info -->\n      <div class=\"form-left-panel reveal\">\n        <div class=\"f-eyebrow\">Get in touch<\/div>\n        <h2 class=\"f-title\">Speak with our<br><em>investment advisors.<\/em><\/h2>\n        <p class=\"f-trust\">Our specialist team is ready to walk you through current opportunities, payment structures\n          and projected returns \u2014 with no obligation whatsoever.<\/p>\n        <div class=\"f-feats\">\n          <div class=\"f-feat\">\n            <div class=\"f-feat-dot\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B8A06A\"\n                stroke-width=\"1.5\" stroke-linecap=\"round\">\n                <path\n                  d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 10.8 19.79 19.79 0 01.22 2.18 2 2 0 012.2 0h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L6.91 7.91a16 16 0 006.16 6.16l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z\" \/>\n              <\/svg><\/div>\n            <div class=\"f-feat-txt\"><strong>Response within 24 hours<\/strong>From our specialist investment team<\/div>\n          <\/div>\n          <div class=\"f-feat\">\n            <div class=\"f-feat-dot\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B8A06A\"\n                stroke-width=\"1.5\" stroke-linecap=\"round\">\n                <circle cx=\"12\" cy=\"12\" r=\"10\" \/>\n                <path d=\"M12 6v6l4 2\" \/>\n              <\/svg><\/div>\n            <div class=\"f-feat-txt\"><strong>Free 30-minute consultation<\/strong>Portfolio review with no obligation\n            <\/div>\n          <\/div>\n          <div class=\"f-feat\">\n            <div class=\"f-feat-dot\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B8A06A\"\n                stroke-width=\"1.5\" stroke-linecap=\"round\">\n                <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\" \/>\n              <\/svg><\/div>\n            <div class=\"f-feat-txt\"><strong>Completely confidential<\/strong>Your data is never shared with third parties\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- RIGHT \u2014 white panel with form -->\n      <div class=\"form-right-panel reveal d2\">\n        <div class=\"form-row\">\n          <div class=\"form-field\"><label class=\"form-label\">First name<\/label><input type=\"text\" class=\"form-input\"\n              placeholder=\"Your first name\"><\/div>\n          <div class=\"form-field\"><label class=\"form-label\">Last name<\/label><input type=\"text\" class=\"form-input\"\n              placeholder=\"Your last name\"><\/div>\n        <\/div>\n        <div class=\"form-field\"><label class=\"form-label\">Email address<\/label><input type=\"email\" class=\"form-input\"\n            placeholder=\"your@email.com\"><\/div>\n        <div class=\"form-field\"><label class=\"form-label\">Phone number<\/label><input type=\"tel\" class=\"form-input\"\n            placeholder=\"+44 or international\"><\/div>\n        <div class=\"form-field\"><label class=\"form-label\">Message (optional)<\/label><textarea class=\"form-textarea\"\n            placeholder=\"Tell us about your investment goals...\"><\/textarea><\/div>\n        <button class=\"form-submit\">Request investment details \u2192<\/button>\n        <div class=\"form-privacy\">By submitting this form you agree to our Privacy Policy. Your data will never be\n          shared with third parties.<\/div>\n      <\/div>\n\n    <\/div>\n  <\/section>\n\n  <div class=\"footer\">\n    <div class=\"footer-logo\">Joseph Mews<\/div>\n    <div class=\"footer-copy\">\u00a9 Joseph Mews 2026 \u00b7 All rights reserved<\/div>\n  <\/div>\n\n  <script>\n    const ro = new IntersectionObserver((entries) => {\n      entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('visible'); ro.unobserve(e.target); } });\n    }, { threshold: 0.08 });\n    document.querySelectorAll('.reveal').forEach(el => ro.observe(el));\n  <\/script>\n<\/body>\n\n<script>\n\/\/ \u2500\u2500 GALLERY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n(function(){\n  let current = 0;\n  const total = 12;\n  const slides = document.getElementById('gallerySlides');\n  const counter = document.getElementById('galleryCurrent');\n  const dots = document.querySelectorAll('.gallery-dot');\n  const thumbs = document.querySelectorAll('.gallery-thumb');\n  let autoTimer;\n\n  function goTo(n){\n    current = (n + total) % total;\n    slides.style.transform = 'translateX(-' + (current * 100) + '%)';\n    counter.textContent = String(current + 1).padStart(2,'0');\n    dots.forEach((d,i) => d.classList.toggle('active', i === current));\n    thumbs.forEach((t,i) => t.classList.toggle('active', i === current));\n  }\n\n  function startAuto(){ autoTimer = setInterval(() => goTo(current + 1), 5000); }\n  function resetAuto(){ clearInterval(autoTimer); startAuto(); }\n\n  document.getElementById('galleryNext').addEventListener('click', () => { goTo(current + 1); resetAuto(); });\n  document.getElementById('galleryPrev').addEventListener('click', () => { goTo(current - 1); resetAuto(); });\n\n  dots.forEach(d => d.addEventListener('click', () => { goTo(+d.dataset.i); resetAuto(); }));\n  thumbs.forEach(t => t.addEventListener('click', () => { goTo(+t.dataset.i); resetAuto(); }));\n\n  \/\/ Touch swipe\n  let startX = 0;\n  const main = document.getElementById('galleryMain');\n  main.addEventListener('touchstart', e => { startX = e.touches[0].clientX; }, {passive:true});\n  main.addEventListener('touchend', e => {\n    const dx = e.changedTouches[0].clientX - startX;\n    if (Math.abs(dx) > 40) { goTo(dx < 0 ? current + 1 : current - 1); resetAuto(); }\n  });\n\n  startAuto();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3f0397b e-flex e-con-boxed qodef-elementor-content-no e-con e-parent\" data-id=\"3f0397b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\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>Penny Place Apartments A growing commuter city benefiting from affordability, strong rental demand, and proximity to major UK hubs. Penny Place Apartments A growing commuter city benefiting from affordability, strong rental demand, and proximity to major UK hubs. No. 30 St Pauls \u2014 Birmingham Investment | Joseph Mews Birmingham \u00b7 Jewellery Quarter No. 30 St [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-full-width.php","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-3496","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/pages\/3496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/comments?post=3496"}],"version-history":[{"count":9,"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/pages\/3496\/revisions"}],"predecessor-version":[{"id":3532,"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/pages\/3496\/revisions\/3532"}],"wp:attachment":[{"href":"https:\/\/joseph-mews.com.tr\/tr\/wp-json\/wp\/v2\/media?parent=3496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}