{"id":12891,"date":"2026-07-15T17:40:21","date_gmt":"2026-07-15T16:40:21","guid":{"rendered":"https:\/\/lonres.com\/public\/?p=12891"},"modified":"2026-08-12T17:56:47","modified_gmt":"2026-08-12T16:56:47","slug":"prime-london-market-dashboard-july-2026","status":"publish","type":"post","link":"https:\/\/lonres.com\/public\/prime-london-market-dashboard-july-2026\/","title":{"rendered":"Prime London Market Dashboard: July 2026"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"12891\" class=\"elementor elementor-12891\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f332fa8 main-header e-flex e-con-boxed e-con e-parent\" data-id=\"f332fa8\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-db71be6 e-con-full e-flex e-con e-child\" data-id=\"db71be6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a9ccaf5 elementor-widget elementor-widget-Breadcrumb\" data-id=\"a9ccaf5\" data-element_type=\"widget\" data-widget_type=\"Breadcrumb.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"breadcrumb-wrap\"><ul id=\"breadcrumbs\" class=\"breadcrumb breadcrumb-navigation\"><li class=\"item-home\"><a class=\"bread-link bread-home\" href=\"https:\/\/lonres.com\/public\/\" title=\"Home\"><span class=\"bread-desktop\">Home<\/span><span class=\"bread-mobile\">...<\/span><\/a><\/li><li class=\"separator separator-home\"> \/ <\/li><\/ul><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2cac53 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"c2cac53\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Prime London Market Dashboard: July 2026<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-738f603 e-con-full e-flex e-con e-child\" data-id=\"738f603\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3ccdfcb e-con-full e-flex e-con e-child\" data-id=\"3ccdfcb\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a6145e5 elementor-widget elementor-widget-spacer\" data-id=\"a6145e5\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8369a99 elementor-widget elementor-widget-Post Date\" data-id=\"8369a99\" data-element_type=\"widget\" data-widget_type=\"Post Date.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"meta-info\">\n\t\t\t\t\t\t\t\t\t<a title=\"Insights &amp; Data Reports\" href=\"https:\/\/lonres.com\/public\/resources\/insight-and-data-reports\">Insights &amp; Data Reports<\/a> <span class=\"divider\">|<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"date\">15 Jul 2026<\/span>\n\t\t\t<\/div>\n\t\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-a7fb1dd e-con-full e-flex e-con e-child\" data-id=\"a7fb1dd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3f5118 elementor-widget elementor-widget-Share This\" data-id=\"c3f5118\" data-element_type=\"widget\" data-widget_type=\"Share This.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"social-share-widget\">\n\t\t\t\t<div class=\"title-text\">\n\t\t\t\t\t<p class=\"desktop-show\">Share<\/p>\n\t\t\t\t\t<a href=\"#\" class=\"share-icon mobile-show\"><img decoding=\"async\" src=\"https:\/\/lonres.com\/public\/wp-content\/themes\/lonres\/assets\/images\/share-icon.svg\" alt=\"Share\" title=\"Share\" \/><\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"social-share-icon-wrap\">\n\t\t\t\t\t<div class=\"addtoany-wrap\"><div class=\"addtoany_shortcode\"><div class=\"a2a_kit a2a_kit_size_32 addtoany_list\" data-a2a-url=\"https:\/\/lonres.com\/public\/prime-london-market-dashboard-july-2026\/\" data-a2a-title=\"Prime London Market Dashboard: July 2026\"><a class=\"a2a_button_linkedin\" href=\"https:\/\/www.addtoany.com\/add_to\/linkedin?linkurl=https%3A%2F%2Flonres.com%2Fpublic%2Fprime-london-market-dashboard-july-2026%2F&amp;linkname=Prime%20London%20Market%20Dashboard%3A%20July%202026\" title=\"LinkedIn\" rel=\"nofollow noopener\" target=\"_blank\"><\/a><a class=\"a2a_button_x\" href=\"https:\/\/www.addtoany.com\/add_to\/x?linkurl=https%3A%2F%2Flonres.com%2Fpublic%2Fprime-london-market-dashboard-july-2026%2F&amp;linkname=Prime%20London%20Market%20Dashboard%3A%20July%202026\" title=\"X\" rel=\"nofollow noopener\" target=\"_blank\"><\/a><\/div><\/div><\/div>\n\t\t\t\t\t<div class=\"custom-icon-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0245361 e-flex e-con-boxed e-con e-parent\" data-id=\"0245361\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4eefe1 elementor-absolute elementor-widget elementor-widget-Image Shape\" data-id=\"b4eefe1\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"Image Shape.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t\t<div class=\"imageshape2226738233 desktopshape2226738233\">Image Shapae<\/div>\n\t\t\t<div class=\"imageshape2226738233 mobileshape2226738233\">Image Shapae<\/div>\n\t\t\t<style>\n\t\t\t\t.imageshape2226738233{text-indent: -9999px; overflow: hidden;}\n\t\t\t\t.imageshape2226738233{\n\t\t\t\t\tbackground-color: #EB2D8C8A;\n\t\t\t\t\theight: 170px;\n\t\t\t\t\twidth: 170px;\n\t\t\t\t}\n\t\t\t\t.imageshape2226738233.mobileshape2226738233{\t\t\t\t\n\t\t\t\t\theight: 94px;\n\t\t\t\t\twidth: 94px;\n\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\t\t.mobileshape2226738233{\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\n\t\t\t\t@media (max-width:767px) {\n\n\t\t\t\t\t.desktopshape2226738233{\n\t\t\t\t\t\tdisplay:none;\n\t\t\t\t\t}\n\n\t\t\t\t\t.mobileshape2226738233{\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t<\/style>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4b04b16 e-flex e-con-boxed e-con e-parent\" data-id=\"4b04b16\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fded84b elementor-widget elementor-widget-html\" data-id=\"fded84b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ======================================================================\n     LONRES . PRIME LONDON MARKET DASHBOARD -- JULY 2026\n     Resources-article build\n\n     PASTE INTO: Elementor > HTML widget, inside the standard resources\n     article content container. Nothing else in the section.\n\n     THE WP PAGE MUST SUPPLY (this block deliberately does not):\n       H1 ............ Prime London Market Dashboard: July 2026\n       Category ...... Insights & Data Reports\n       Hero image .... section background, min-height 498px, cover, 50% 50%\n       Slug .......... \/public\/prime-london-market-dashboard-july-2026\/\n\n     RANK MATH:\n       Meta title .... Prime London Market Dashboard: July 2026 | LonRes   (<=60 chars)\n       Meta desc ..... stat-led, <=155 chars -- see the notes file\n       OG image ...... 1200x630, per-month (do NOT leave the site default)\n       Canonical ..... self\n\n     DATA: month analysed is June 2026. Source: LonRes.\n     ====================================================================== -->\n<!-- Fonts + Chart.js. If the theme already loads either globally, the\n     web team can delete the matching line. -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&amp;family=Inter:wght@300;400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n<div class=\"plmb-dashboard plmb-dashboard--embed\" data-plmb-url=\"https:\/\/lonres.com\/public\/prime-london-monthly-dashboard-july\/\">\n<style>\n\/* =======================================================================\n  PLMB DASHBOARD -- SCOPED STYLES\n  ======================================================================= *\/\n.plmb-dashboard,\n.plmb-dashboard *,\n.plmb-dashboard *::before,\n.plmb-dashboard *::after { box-sizing: border-box; }\n.plmb-dashboard {\n  --plmb-magenta:    #DE007B;\n  --plmb-magenta-dk: #B00062;\n  --plmb-teal:      #B9A46A;\n  --plmb-cream:      #EDEBE3;\n  --plmb-cream-2:    #F6F4EE;\n  --plmb-sand:      #E2E0D8;\n  --plmb-dark:      #2A2A33;\n  --plmb-badge:      #363A45;\n  --plmb-mid:        #7C8090;\n  --plmb-border:    #E2E0D8;\n  --plmb-border-dk:  #D4D1C8;\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n  background: var(--plmb-cream);\n  color: var(--plmb-dark);\n  font-size: 14.5px;\n  line-height: 1.65;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  scroll-behavior: smooth;\n}\n.plmb-dashboard p, .plmb-dashboard h1, .plmb-dashboard h2, .plmb-dashboard h3,\n.plmb-dashboard h4, .plmb-dashboard ul, .plmb-dashboard ol, .plmb-dashboard table,\n.plmb-dashboard figure { margin: 0; padding: 0; }\n.plmb-dashboard a { color: var(--plmb-magenta); text-decoration: none; }\n.plmb-dashboard a:hover { text-decoration: underline; }\n.plmb-dashboard .plmb-serif    { font-family: 'Playfair Display', Georgia, serif; }\n.plmb-dashboard .plmb-magenta  { color: var(--plmb-magenta); }\n.plmb-dashboard .plmb-small    { font-size: 11.5px; color: var(--plmb-mid); }\n.plmb-dashboard .plmb-divider  { border: none; border-top: 1px dashed var(--plmb-border-dk); margin: 22px 0; }\n.plmb-dashboard .plmb-rule    { border: none; border-top: 1px solid var(--plmb-border); margin: 0; }\n.plmb-dashboard .plmb-logo { width: 56px; height: 56px; display: inline-block; flex-shrink: 0; }\n.plmb-dashboard .plmb-logo--sm { width: 36px; height: 36px; }\n.plmb-dashboard .plmb-logo--xs { width: 28px; height: 28px; }\n.plmb-dashboard .plmb-section { position: relative; overflow: hidden; background: var(--plmb-cream); border-bottom: 1px solid var(--plmb-border); }\n.plmb-dashboard .plmb-section--alt { background: var(--plmb-cream-2); }\n.plmb-dashboard .plmb-section--overview { background: var(--plmb-cream); }\n\/* --- COVER PAGE (hidden on web; shown only in the PDF) ----------------- *\/\n.plmb-dashboard .plmb-cover { display: none; }\n.plmb-dashboard .plmb-cover-inner {\n  position: relative; z-index: 1;\n  min-height: 297mm;\n  display: flex; flex-direction: column;\n  padding: 64px 56px 56px;\n  box-sizing: border-box;\n}\n.plmb-dashboard .plmb-cover-geo { right: -120px; bottom: -120px; width: 620px; height: 620px; opacity: 0.07; }\n.plmb-dashboard .plmb-cover-brand { display: flex; align-items: center; gap: 16px; }\n.plmb-dashboard .plmb-cover-brand-text {\n  font-size: 13px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase;\n  color: var(--plmb-mid);\n}\n.plmb-dashboard .plmb-cover-main { margin-top: auto; margin-bottom: auto; }\n.plmb-dashboard .plmb-cover-eyebrow {\n  font-size: 13px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;\n  color: var(--plmb-magenta); margin: 0 0 22px;\n}\n.plmb-dashboard .plmb-cover-title {\n  font-family: 'Playfair Display', Georgia, serif;\n  font-size: 58px; font-weight: 400; line-height: 1.04; color: var(--plmb-dark);\n  margin: 0 0 22px; max-width: 12em;\n}\n.plmb-dashboard .plmb-cover-edition {\n  font-family: 'Playfair Display', Georgia, serif; font-style: italic;\n  font-size: 26px; color: var(--plmb-magenta); margin: 0; line-height: 1.3;\n}\n.plmb-dashboard .plmb-cover-data {\n  font-family: 'Playfair Display', Georgia, serif; font-style: italic;\n  font-size: 26px; color: var(--plmb-magenta); margin: 0 0 28px; line-height: 1.3;\n}\n.plmb-dashboard .plmb-cover-edition--solo { margin-bottom: 28px; }\n.plmb-dashboard .plmb-cover-strap {\n  font-size: 16px; line-height: 1.6; color: var(--plmb-dark); max-width: 30em; margin: 0;\n}\n.plmb-dashboard .plmb-cover-cta {\n  display: inline-flex; align-items: center; gap: 10px; align-self: flex-start;\n  margin-top: 26px; background: var(--plmb-magenta); color: #fff; text-decoration: none;\n  font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.03em;\n  padding: 13px 24px;\n}\n.plmb-dashboard .plmb-cover-cta-arrow { font-family: 'Playfair Display', Georgia, serif; font-size: 20px; line-height: 1; }\n.plmb-dashboard .plmb-cover-foot {\n  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;\n  border-top: 2px solid var(--plmb-dark); padding-top: 22px;\n}\n.plmb-dashboard .plmb-cover-source {\n  font-size: 11.5px; line-height: 1.6; color: var(--plmb-mid); text-align: right; margin: 0;\n}\n.plmb-dashboard .plmb-section-inner { max-width: 1240px; margin: 0 auto; padding: 56px 56px 64px; position: relative; z-index: 1; }\n.plmb-dashboard .plmb-geo { position: absolute; pointer-events: none; opacity: 0.055; z-index: 0; }\n.plmb-dashboard .plmb-geo--hero { right: -40px; top: 40px; width: 520px; height: 520px; }\n.plmb-dashboard .plmb-geo--side { right: -80px; bottom: -80px; width: 320px; height: 320px; }\n.plmb-dashboard .plmb-section-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 22px; padding-bottom: 18px; border-bottom: 2px solid var(--plmb-dark); margin-bottom: 32px; }\n.plmb-dashboard .plmb-section-num { font-family: 'Playfair Display', Georgia, serif; font-size: 42px; font-weight: 400; color: var(--plmb-magenta); line-height: 1; letter-spacing: -0.02em; }\n.plmb-dashboard .plmb-section-label { font-size: 11.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--plmb-mid); display: block; margin-bottom: 4px; }\n.plmb-dashboard .plmb-section-title { font-family: 'Playfair Display', Georgia, serif; font-size: 26px; font-weight: 400; line-height: 1.18; color: var(--plmb-dark); }\n.plmb-dashboard .plmb-section-badge { background: var(--plmb-badge); color: #fff; font-size: 14px; font-weight: 600; padding: 11px 22px; letter-spacing: 0.06em; white-space: nowrap; text-transform: uppercase; }\n.plmb-dashboard .plmb-section-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 12px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--plmb-border); }\n.plmb-dashboard .plmb-nav-btn { display: flex; align-items: center; gap: 10px; padding: 14px 20px; background: #fff; border: 1px solid var(--plmb-border); color: var(--plmb-dark); font-size: 13px; font-weight: 500; text-decoration: none; transition: all 0.15s ease; line-height: 1.3; min-width: 0; }\n.plmb-dashboard .plmb-nav-btn:hover { border-color: var(--plmb-magenta); color: var(--plmb-magenta); text-decoration: none; transform: translateY(-1px); }\n.plmb-dashboard .plmb-nav-btn .plmb-nav-arrow { color: var(--plmb-magenta); font-family: 'Playfair Display', Georgia, serif; font-size: 22px; line-height: 1; flex-shrink: 0; }\n.plmb-dashboard .plmb-nav-btn .plmb-nav-label { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--plmb-mid); font-weight: 600; display: block; margin-bottom: 2px; }\n.plmb-dashboard .plmb-nav-btn--prev { justify-self: start; }\n.plmb-dashboard .plmb-nav-btn--next { justify-self: end; flex-direction: row-reverse; text-align: right; }\n.plmb-dashboard .plmb-nav-btn--home { justify-self: center; background: var(--plmb-magenta); color: #fff; border-color: var(--plmb-magenta); padding: 14px 24px; font-weight: 600; letter-spacing: 0.04em; }\n.plmb-dashboard .plmb-nav-btn--home:hover { background: var(--plmb-magenta-dk); border-color: var(--plmb-magenta-dk); color: #fff; }\n.plmb-dashboard .plmb-nav-btn--home .plmb-nav-arrow { color: #fff; }\n.plmb-dashboard .plmb-nav-btn--disabled { opacity: 0; pointer-events: none; }\n@media (max-width: 700px) {\n  .plmb-dashboard .plmb-section-nav { grid-template-columns: 1fr 1fr; grid-template-areas: \"home home\" \"prev next\"; gap: 10px; }\n  .plmb-dashboard .plmb-nav-btn--prev { grid-area: prev; justify-self: stretch; }\n  .plmb-dashboard .plmb-nav-btn--next { grid-area: next; justify-self: stretch; }\n  .plmb-dashboard .plmb-nav-btn--home { grid-area: home; justify-self: stretch; justify-content: center; }\n  .plmb-dashboard .plmb-nav-btn { padding: 12px 14px; font-size: 12px; }\n}\n.plmb-dashboard .plmb-overview-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--plmb-border); margin-bottom: 36px; }\n.plmb-dashboard .plmb-overview-head-left { display: flex; align-items: center; gap: 22px; }\n.plmb-dashboard .plmb-overview-title { font-family: 'Playfair Display', Georgia, serif; font-size: 44px; font-weight: 400; line-height: 1.06; color: var(--plmb-dark); }\n.plmb-dashboard .plmb-overview-title .plmb-edition { display: block; font-size: 18px; color: var(--plmb-magenta); letter-spacing: 0.04em; margin-top: 6px; font-weight: 400; font-style: italic; }\n.plmb-dashboard .plmb-overview-intro { display: grid; grid-template-columns: 5fr 6fr; gap: 48px; align-items: end; margin-bottom: 44px; padding-bottom: 36px; border-bottom: 1px solid var(--plmb-border); }\n.plmb-dashboard .plmb-overview-intro-left { min-width: 0; }\n.plmb-dashboard .plmb-overview-intro-right { min-width: 0; }\n.plmb-dashboard .plmb-overview-headline { font-family: 'Playfair Display', Georgia, serif; font-size: 36px; font-weight: 400; line-height: 1.18; color: var(--plmb-dark); margin: 0; }\n.plmb-dashboard .plmb-overview-subtext { font-size: 15px; font-weight: 400; line-height: 1.72; color: var(--plmb-dark); margin: 0; }\n.plmb-dashboard .plmb-overview-table-block { margin-bottom: 44px; }\n.plmb-dashboard .plmb-overview-bullets-block { margin-bottom: 44px; }\n.plmb-dashboard .plmb-bullets { list-style: none; padding: 0; margin: 0; }\n.plmb-dashboard .plmb-bullets--2col { columns: 2; column-gap: 44px; }\n.plmb-dashboard .plmb-bullets li { position: relative; padding: 0 0 0 22px; margin-bottom: 14px; font-size: 13.5px; line-height: 1.65; color: var(--plmb-dark); break-inside: avoid; page-break-inside: avoid; }\n.plmb-dashboard .plmb-bullets li:last-child { margin-bottom: 0; }\n.plmb-dashboard .plmb-bullets li::before { content: \"\"; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; background: var(--plmb-magenta); border-radius: 50%; }\n.plmb-dashboard .plmb-bullets li strong { color: var(--plmb-dark); font-weight: 600; }\n.plmb-dashboard .plmb-table-heading { font-size: 13px; font-weight: 600; color: var(--plmb-magenta); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 14px; }\n.plmb-dashboard .plmb-prime-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n.plmb-dashboard .plmb-prime-table thead th { background: var(--plmb-magenta); color: #fff; padding: 12px 12px; text-align: center; font-weight: 500; font-size: 11.5px; line-height: 1.35; vertical-align: middle; }\n.plmb-dashboard .plmb-prime-table thead th:first-child { background: transparent; }\n.plmb-dashboard .plmb-prime-table tbody td { padding: 13px 12px; text-align: center; border-bottom: 1px solid var(--plmb-border); color: var(--plmb-dark); font-size: 13px; background: #fff; }\n.plmb-dashboard .plmb-prime-table tbody td:first-child { text-align: left; font-weight: 500; }\n.plmb-dashboard .plmb-prime-table tbody tr:last-child td { border-bottom: none; }\n.plmb-dashboard .plmb-headlines { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--plmb-border); }\n.plmb-dashboard .plmb-headlines h4 { font-size: 12px; font-weight: 600; color: var(--plmb-magenta); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 14px; }\n.plmb-dashboard .plmb-hl-cards { display: grid; grid-template-columns: 1fr; gap: 10px; }\n.plmb-dashboard .plmb-hl-card { border: 1px solid var(--plmb-border); background: #fff; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; font-size: 13px; color: var(--plmb-dark); text-decoration: none; gap: 10px; transition: border-color 0.15s, background 0.15s, transform 0.15s; }\n.plmb-dashboard .plmb-hl-card:hover { border-color: var(--plmb-magenta); background: #fff; text-decoration: none; transform: translateY(-1px); }\n.plmb-dashboard .plmb-hl-arrow { color: var(--plmb-magenta); font-size: 18px; flex-shrink: 0; font-family: 'Playfair Display', Georgia, serif; }\n.plmb-dashboard .plmb-section-body { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }\n.plmb-dashboard .plmb-section-body--stacked { grid-template-columns: 1fr; }\n.plmb-dashboard .plmb-copy p { font-size: 14px; line-height: 1.78; color: var(--plmb-dark); margin-bottom: 16px; }\n.plmb-dashboard .plmb-copy p:last-child { margin-bottom: 0; }\n.plmb-dashboard .plmb-copy--full { grid-column: 1 \/ -1; }\n\/* Right-column stack: chart with its closing note paragraph beneath it *\/\n.plmb-dashboard .plmb-chart-col { display: flex; flex-direction: column; }\n.plmb-dashboard .plmb-chart-col-note { margin-top: 18px; }\n\/* Print\/web copy variants: web shows the full verbatim copy; the PDF swaps in a\n  minimally-tightened version of section 2 so its chart fits on the same page. *\/\n.plmb-dashboard .plmb-print-only { display: none; }\n.plmb-dashboard .plmb-chart-card { background: #fff; border: 1px solid var(--plmb-border); padding: 22px 24px 20px; position: relative; }\n.plmb-dashboard .plmb-chart-card--wide { grid-column: 1 \/ -1; }\n.plmb-dashboard .plmb-chart-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }\n.plmb-dashboard .plmb-chart-title { font-size: 14px; font-weight: 600; color: var(--plmb-dark); line-height: 1.35; flex: 1; }\n.plmb-dashboard .plmb-chart-legend { display: flex; gap: 18px; margin-bottom: 14px; flex-wrap: wrap; }\n.plmb-dashboard .plmb-leg-item { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--plmb-dark); }\n.plmb-dashboard .plmb-leg-swatch { width: 14px; height: 11px; flex-shrink: 0; }\n.plmb-dashboard .plmb-chart-wrap { position: relative; margin: 6px 0 10px; }\n.plmb-dashboard .plmb-chart-wrap--md { height: 280px; }\n.plmb-dashboard .plmb-chart-wrap--lg { height: 340px; }\n.plmb-dashboard .plmb-copy--cols { columns: 2; column-gap: 44px; }\n.plmb-dashboard .plmb-copy--cols p { break-inside: avoid; }\n.plmb-dashboard .plmb-chart-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 8px; border-top: 1px solid var(--plmb-border); margin-top: 8px; }\n.plmb-dashboard .plmb-chart-source { font-size: 11px; color: var(--plmb-mid); letter-spacing: 0.02em; }\n.plmb-dashboard .plmb-share { display: flex; align-items: center; gap: 6px; }\n.plmb-dashboard .plmb-share-label { font-size: 10.5px; color: var(--plmb-mid); letter-spacing: 0.08em; text-transform: uppercase; margin-right: 4px; font-weight: 500; }\n.plmb-dashboard .plmb-share-btn { text-decoration: none; width: 28px; height: 28px; border: 1px solid var(--plmb-border); background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; color: var(--plmb-mid); transition: all 0.15s ease; }\n.plmb-dashboard .plmb-share-btn:hover { border-color: var(--plmb-magenta); background: var(--plmb-magenta); color: #fff; }\n.plmb-dashboard .plmb-share-btn svg { width: 13px; height: 13px; fill: currentColor; }\n.plmb-dashboard .plmb-dlall-block { margin-bottom: 44px; padding: 30px 34px; background: var(--plmb-cream-2); border: 1px solid var(--plmb-border); border-left: 4px solid var(--plmb-magenta); display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }\n.plmb-dashboard .plmb-dlall-text { min-width: 0; }\n.plmb-dashboard .plmb-dlall-text h4 { font-family: 'Playfair Display', Georgia, serif; font-size: 22px; font-weight: 600; color: var(--plmb-dark); margin: 0 0 6px; letter-spacing: 0; text-transform: none; line-height: 1.2; }\n.plmb-dashboard .plmb-dlall-text p { font-size: 13.5px; color: var(--plmb-mid); margin: 0; line-height: 1.55; }\n.plmb-dashboard .plmb-dlall-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--plmb-magenta); color: #fff; border: 1px solid var(--plmb-magenta); cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; letter-spacing: 0.04em; padding: 14px 24px; white-space: nowrap; transition: background 0.15s ease, transform 0.15s ease; }\n.plmb-dashboard .plmb-dlall-btn:hover { background: var(--plmb-magenta-dk); transform: translateY(-1px); }\n.plmb-dashboard .plmb-dlall-btn svg { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; }\n.plmb-dashboard .plmb-dlall-btn[disabled] { opacity: 0.6; cursor: default; transform: none; }\n.plmb-dashboard .plmb-dlall-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n.plmb-dashboard .plmb-dlall-btn--pdf { background: #fff; color: var(--plmb-magenta); border: 1px solid var(--plmb-magenta); text-decoration: none; }\n.plmb-dashboard .plmb-dlall-btn--pdf:hover { background: var(--plmb-magenta); color: #fff; text-decoration: none; transform: translateY(-1px); }\n.plmb-dashboard .plmb-dlall-btn--pdf:hover svg { fill: #fff; }\n.plmb-dashboard .plmb-toast { position: fixed; bottom: 24px; left: 50%; transform: translate(-50%, 30px); background: var(--plmb-dark); color: #fff; padding: 12px 22px; font-size: 13px; font-weight: 500; letter-spacing: 0.02em; opacity: 0; pointer-events: none; transition: transform 0.25s ease, opacity 0.25s ease; z-index: 1000; box-shadow: 0 8px 24px rgba(0,0,0,0.2); }\n.plmb-dashboard .plmb-toast--show { opacity: 1; transform: translate(-50%, 0); }\n.plmb-dashboard .plmb-footer { background: var(--plmb-sand); border-top: 4px solid var(--plmb-magenta); padding: 48px 0 40px; }\n.plmb-dashboard .plmb-footer-inner { max-width: 1240px; margin: 0 auto; padding: 0 56px; }\n.plmb-dashboard .plmb-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: start; }\n.plmb-dashboard .plmb-footer-title { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--plmb-dark); margin-bottom: 12px; }\n.plmb-dashboard .plmb-footer-text { font-size: 12.5px; color: var(--plmb-mid); line-height: 1.7; }\n.plmb-dashboard .plmb-footer-text strong { color: var(--plmb-dark); }\n.plmb-dashboard .plmb-footer-block { margin-bottom: 28px; }\n.plmb-dashboard .plmb-footer-block:last-child { margin-bottom: 0; }\n.plmb-dashboard .plmb-footer-logo-row { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }\n.plmb-dashboard .plmb-footer-contact { font-size: 12.5px; color: var(--plmb-mid); line-height: 1.85; }\n.plmb-dashboard .plmb-footer-cta { background: var(--plmb-dark); color: #fff; padding: 32px 32px 30px; position: relative; overflow: hidden; }\n.plmb-dashboard .plmb-footer-cta::before { content: \"\"; position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: var(--plmb-magenta); }\n.plmb-dashboard .plmb-footer-cta-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--plmb-magenta); margin: 0 0 12px; }\n.plmb-dashboard .plmb-footer-cta-title { font-family: 'Playfair Display', Georgia, serif; font-size: 22px; font-weight: 400; line-height: 1.25; color: #fff; margin: 0 0 12px; }\n.plmb-dashboard .plmb-footer-cta-text { font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.78); margin: 0 0 14px; }\n.plmb-dashboard .plmb-footer-cta-text + .plmb-footer-cta-btn { margin-top: 8px; }\n.plmb-dashboard .plmb-footer-cta-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--plmb-magenta); color: #fff; text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; padding: 13px 22px; transition: background 0.15s ease, transform 0.15s ease; }\n.plmb-dashboard .plmb-footer-cta-btn:hover { background: var(--plmb-magenta-dk); color: #fff; text-decoration: none; transform: translateY(-1px); }\n.plmb-dashboard .plmb-footer-cta-arrow { font-family: 'Playfair Display', Georgia, serif; font-size: 20px; line-height: 1; }\n\/* PDF-only \"view online\" CTA in the footer (sits above the newsletter CTA) *\/\n.plmb-dashboard .plmb-footer-online.plmb-print-only { display: none; }\n.plmb-dashboard .plmb-footer-online { align-items: center; justify-content: space-between; gap: 16px; text-decoration: none; background: var(--plmb-magenta); color: #fff; padding: 18px 24px; margin-bottom: 20px; }\n.plmb-dashboard .plmb-footer-online-text { display: flex; flex-direction: column; }\n.plmb-dashboard .plmb-footer-online-eyebrow { font-size: 10.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.8); margin-bottom: 3px; }\n.plmb-dashboard .plmb-footer-online { font-family: 'Playfair Display', Georgia, serif; font-size: 18px; font-weight: 400; }\n.plmb-dashboard .plmb-footer-online-arrow { font-family: 'Playfair Display', Georgia, serif; font-size: 22px; line-height: 1; flex-shrink: 0; }\n@media (max-width: 1024px) {\n  .plmb-dashboard .plmb-section-inner { padding: 48px 36px 52px; }\n  .plmb-dashboard .plmb-footer-inner  { padding: 0 36px; }\n  .plmb-dashboard .plmb-overview-title { font-size: 38px; }\n  .plmb-dashboard .plmb-section-num    { font-size: 36px; }\n}\n@media (max-width: 900px) {\n  .plmb-dashboard { font-size: 14px; }\n  .plmb-dashboard .plmb-section-inner { padding: 40px 28px 44px; }\n  .plmb-dashboard .plmb-footer-inner  { padding: 0 28px; }\n  .plmb-dashboard .plmb-overview-intro { grid-template-columns: 1fr; gap: 20px; align-items: start; }\n  .plmb-dashboard .plmb-bullets--2col { columns: 1; }\n  .plmb-dashboard .plmb-section-body { grid-template-columns: 1fr; gap: 28px; }\n  .plmb-dashboard .plmb-headlines    { grid-template-columns: 1fr; gap: 24px; }\n  .plmb-dashboard .plmb-footer-grid  { grid-template-columns: 1fr; gap: 32px; }\n  .plmb-dashboard .plmb-copy--cols  { columns: 1; }\n  .plmb-dashboard .plmb-chart-wrap--md { height: 200px; }\n  .plmb-dashboard .plmb-chart-wrap--lg { height: 300px; }\n  .plmb-dashboard .plmb-overview-title { font-size: 32px; }\n  .plmb-dashboard .plmb-overview-headline { font-size: 28px; }\n  .plmb-dashboard .plmb-section-title { font-size: 22px; }\n  .plmb-dashboard .plmb-section-num  { font-size: 32px; }\n  .plmb-dashboard .plmb-prime-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n}\n@media (max-width: 600px) {\n  .plmb-dashboard .plmb-section-inner { padding: 32px 20px 36px; }\n  .plmb-dashboard .plmb-footer-inner  { padding: 0 20px; }\n  .plmb-dashboard .plmb-overview-head { flex-direction: column; align-items: flex-start; gap: 18px; }\n  .plmb-dashboard .plmb-overview-head-left { gap: 14px; }\n  .plmb-dashboard .plmb-overview-title { font-size: 26px; }\n  .plmb-dashboard .plmb-overview-title .plmb-edition { font-size: 14px; }\n  .plmb-dashboard .plmb-overview-headline { font-size: 22px; }\n  .plmb-dashboard .plmb-section-head { grid-template-columns: auto 1fr; grid-template-areas: \"num title\" \"badge badge\"; row-gap: 16px; }\n  .plmb-dashboard .plmb-section-num  { grid-area: num; font-size: 28px; }\n  .plmb-dashboard .plmb-section-head .plmb-title-wrap { grid-area: title; }\n  .plmb-dashboard .plmb-section-badge { grid-area: badge; justify-self: start; }\n  .plmb-dashboard .plmb-section-title { font-size: 19px; }\n  .plmb-dashboard .plmb-hl-cards    { grid-template-columns: 1fr; }\n  .plmb-dashboard .plmb-chart-card  { padding: 18px 16px 16px; }\n  .plmb-dashboard .plmb-chart-foot  { flex-direction: column; align-items: flex-start; gap: 10px; }\n}\n@media print {\n  \/* Cover page = page 1; it fills the sheet and is followed by a page break. *\/\n  .plmb-dashboard .plmb-cover { display: block; min-height: 297mm; margin: 0; position: relative; overflow: hidden; break-after: page; page-break-after: always; }\n  \/* Each content section starts a fresh page; overview is page 2 (after the cover). *\/\n  .plmb-dashboard .plmb-section--overview { break-before: avoid; }\n  .plmb-dashboard #plmb-sales-activity,\n  .plmb-dashboard #plmb-sales-prices,\n  .plmb-dashboard #plmb-super-prime,\n  .plmb-dashboard #plmb-lettings { break-before: page; page-break-before: always; }\n  .plmb-dashboard .plmb-footer { break-before: page; page-break-before: always; }\n  \/* Hide interactive-only elements *\/\n  .plmb-dashboard .plmb-share,\n  .plmb-dashboard .plmb-section-nav,\n  .plmb-dashboard .plmb-headlines,\n  .plmb-dashboard .plmb-dlall-block { display: none !important; }\n  \/* Swap to print copy variants *\/\n  .plmb-dashboard .plmb-print-hide { display: none !important; }\n  .plmb-dashboard .plmb-print-only { display: block !important; }\n  .plmb-dashboard .plmb-footer-online.plmb-print-only { display: flex !important; }\n  \/* Fringe line is solid #E0A024 in the PDF -- match its legend swatch *\/\n  .plmb-dashboard .plmb-leg-swatch--fringe { background: #E0A024 !important; }\n  \/* Trim vertical padding to give each page more usable height *\/\n  .plmb-dashboard .plmb-section-inner { padding: 30px 40px 30px; }\n  .plmb-dashboard .plmb-section { border-bottom: none; }\n  \/* In print, use a single uniform page colour for all sections (the subtle web alt-tint\n    is dropped) and set the dashboard background to match, so the unavoidable ~2mm strip\n    at the page cut edge is invisible and no colour appears to bleed between pages. *\/\n  .plmb-dashboard,\n  .plmb-dashboard .plmb-section,\n  .plmb-dashboard .plmb-section--alt,\n  .plmb-dashboard .plmb-section--overview { background: var(--plmb-cream) !important; }\n  \/* Fill the full page height so each section's background colour reaches the bottom edge. *\/\n  .plmb-dashboard .plmb-section { min-height: 294mm; margin: 0; }\n  .plmb-dashboard .plmb-footer { min-height: 297mm; margin: 0; box-sizing: border-box; }\n  \/* Keep a section's header with the content that follows it *\/\n  .plmb-dashboard .plmb-section-head { break-after: avoid; page-break-after: avoid; margin-bottom: 22px; }\n  \/* Never split a chart card; keep it whole on its page *\/\n  .plmb-dashboard .plmb-chart-card { break-inside: avoid; page-break-inside: avoid; }\n  .plmb-dashboard .plmb-chart-card--wide { width: 100%; max-width: 100%; }\n  .plmb-dashboard .plmb-chart-wrap { max-width: 100%; }\n  \/* Reduce chart heights in print so copy + chart fit a page where possible *\/\n  .plmb-dashboard .plmb-chart-wrap--lg { height: 210px; }\n  .plmb-dashboard .plmb-chart-wrap--md { height: 200px; }\n  \/* Tighten the lettings copy so its header + copy + chart sit together on one page *\/\n  .plmb-dashboard #plmb-lettings .plmb-copy p { margin-bottom: 9px; line-height: 1.55; }\n  \/* Compress overview so it fits one page *\/\n  .plmb-dashboard .plmb-overview-head { padding-bottom: 14px; margin-bottom: 16px; }\n  .plmb-dashboard .plmb-overview-intro { margin-bottom: 16px; padding-bottom: 16px; }\n  .plmb-dashboard .plmb-overview-headline { font-size: 28px; }\n  .plmb-dashboard .plmb-overview-table-block { margin-bottom: 16px; }\n  .plmb-dashboard .plmb-prime-table thead th { padding: 9px 10px; }\n  .plmb-dashboard .plmb-prime-table tbody td { padding: 9px 10px; }\n  .plmb-dashboard .plmb-overview-bullets-block { margin-bottom: 0; }\n  .plmb-dashboard .plmb-bullets li { margin-bottom: 7px; font-size: 12px; line-height: 1.5; }\n  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }\n}\n\n\/* =======================================================================\n   RESOURCES-EMBED OVERRIDES\n   Added for the \/resources\/ article template. The WP page owns the\n   breadcrumb, H1, category\/date line and hero image; this block starts\n   at H2 and sits directly beneath the hero.\n\n   Container facts (measured on the live template):\n     .e-con-inner  max-width: min(100%, 1310px)\n     no overflow:hidden anywhere in the ancestor chain\n   So we simply cap our own width. No negative-margin \/ 100vw breakout.\n   ======================================================================= *\/\n.plmb-dashboard--embed {\n  max-width: 1290px;\n  margin: 0 auto;\n  border: 1px solid var(--plmb-border);\n  border-top: 3px solid var(--plmb-magenta);\n  \/* Sits directly below the hero band, no overlap. The 3px pink top rule does\n     the joining work instead -- an earlier version pulled the block up over the\n     image, which read as the content covering the artwork. *\/\n  margin-top: 0;\n  position: relative;\n  z-index: 2;\n}\n\n\/* Section inner no longer needs to centre against a full-bleed viewport --\n   the block itself is the wrap now. Trim the side padding to buy back the\n   width the article container costs us. *\/\n.plmb-dashboard--embed .plmb-section-inner { max-width: none; padding: 48px 44px 52px; }\n.plmb-dashboard--embed .plmb-footer-inner  { max-width: none; padding: 0 44px; }\n\n\/* The masthead is removed (the WP page supplies title + edition), so the\n   overview section needs its own top breathing room and a lead-in rule. *\/\n.plmb-dashboard--embed .plmb-section--overview .plmb-section-inner { padding-top: 44px; }\n\n\/* Edition strip: replaces the deleted masthead. Keeps the month visible\n   inside the block without competing with the page H1 above it. *\/\n.plmb-dashboard--embed .plmb-editionbar {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 20px;\n  flex-wrap: wrap;\n  padding-bottom: 20px;\n  margin-bottom: 32px;\n  border-bottom: 2px solid var(--plmb-dark);\n}\n.plmb-dashboard--embed .plmb-editionbar-left {\n  display: flex;\n  align-items: center;\n  gap: 14px;\n  min-width: 0;\n}\n.plmb-dashboard--embed .plmb-editionbar-label {\n  font-size: 11.5px;\n  font-weight: 600;\n  letter-spacing: 0.18em;\n  text-transform: uppercase;\n  color: var(--plmb-mid);\n}\n\n\/* Charts get a little more height back now the block is narrower than the\n   old full-bleed layout. *\/\n.plmb-dashboard--embed .plmb-chart-wrap--md { height: 300px; }\n.plmb-dashboard--embed .plmb-chart-wrap--lg { height: 360px; }\n\n\/* Below the Elementor container's own breakpoint the negative top margin\n   stops helping -- the hero shrinks and the overlap gets tight. *\/\n@media (max-width: 1024px) {\n  .plmb-dashboard--embed .plmb-section-inner { padding: 40px 32px 44px; }\n  .plmb-dashboard--embed .plmb-footer-inner  { padding: 0 32px; }\n}\n@media (max-width: 700px) {\n  .plmb-dashboard--embed { border-left: none; border-right: none; }\n  .plmb-dashboard--embed .plmb-section-inner { padding: 32px 20px 36px; }\n  .plmb-dashboard--embed .plmb-footer-inner  { padding: 0 20px; }\n  .plmb-dashboard--embed .plmb-chart-wrap--md { height: 240px; }\n  .plmb-dashboard--embed .plmb-chart-wrap--lg { height: 280px; }\n}\n\n\/* The article template's own H2 styling must not bleed into ours. *\/\n.plmb-dashboard--embed h2 { margin: 0; }\n\n\/* -- ARROW GLYPHS ---------------------------------------------------------\n   The block originally set these as the text characters < > and ^ styled in\n   Playfair Display. Google Fonts serves Playfair subsetted, those codepoints\n   are outside the subset, and the fallback renders wrong glyphs entirely\n   (\"TA\" instead of a chevron). They are inline SVG now -- no font dependency.\n   ------------------------------------------------------------------------ *\/\n.plmb-dashboard--embed .plmb-nav-arrow,\n.plmb-dashboard--embed .plmb-hl-arrow,\n.plmb-dashboard--embed .plmb-footer-cta-arrow,\n.plmb-dashboard--embed .plmb-cover-cta-arrow,\n.plmb-dashboard--embed .plmb-footer-online-arrow {\n  font-family: var(--sans, 'Inter', sans-serif);\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  flex: none;\n  line-height: 0;\n}\n.plmb-dashboard--embed .plmb-nav-arrow svg { width: 15px; height: 15px; }\n.plmb-dashboard--embed .plmb-hl-arrow svg { width: 13px; height: 13px; }\n.plmb-dashboard--embed .plmb-footer-cta-arrow svg,\n.plmb-dashboard--embed .plmb-cover-cta-arrow svg,\n.plmb-dashboard--embed .plmb-footer-online-arrow svg { width: 14px; height: 14px; }\n.plmb-dashboard--embed .plmb-nav-arrow svg,\n.plmb-dashboard--embed .plmb-hl-arrow svg,\n.plmb-dashboard--embed .plmb-footer-cta-arrow svg,\n.plmb-dashboard--embed .plmb-cover-cta-arrow svg,\n.plmb-dashboard--embed .plmb-footer-online-arrow svg {\n  fill: none;\n  stroke: currentColor;\n  stroke-width: 2.2;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  display: block;\n}\n<\/style>\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\n  <symbol id=\"plmb-logo\" viewBox=\"0 0 127.6 127.6\">\n    <rect width=\"127.6\" height=\"127.6\" fill=\"#DE007B\"\/>\n    <path fill=\"#fff\" d=\"M93.3,104.9c-0.7,0-1.4-0.1-2.1-0.2c-0.8-0.1-1.5-0.3-2.2-0.5c-1.4-0.4-2.7-1-4-1.8c-1.2-0.7-2.3-1.7-3.3-3\n      l0.3-2.1l2-1.4l2,0.4c0.7,1.1,1.8,2.1,3.3,2.8c1.4,0.7,2.8,1.1,4,1.1c1.1,0,2.3-0.3,3.4-0.8c1-0.5,1.8-1.2,2.4-2.1\n      c0.5-0.8,0.8-1.8,0.8-2.8c0-0.8-0.1-1.4-0.4-2.1c-0.3-0.6-0.7-1.1-1.3-1.5l-0.1-0.1c-0.1-0.1-0.3-0.3-0.7-0.5l-0.3-0.2\n      c-0.1,0-0.3-0.1-0.6-0.3l-0.2-0.1c-0.4-0.3-0.5-0.3-0.6-0.4l-0.1,0l-3.2-1.8l-3.5-2c-0.4-0.3-0.8-0.5-1.3-0.8l-0.4-0.3\n      c-0.7-0.4-1.2-0.8-1.5-1.1c-1-0.8-1.8-1.8-2.4-2.9c-0.6-1.1-0.9-2.4-0.9-3.8c0-1,0.2-1.9,0.4-2.7c0.3-0.9,0.7-1.7,1.2-2.3\n      c1-1.4,2.3-2.4,4-3.1c0.9-0.4,1.8-0.6,2.6-0.8c0.9-0.2,1.9-0.3,2.9-0.3c3.4,0,6.8,1.4,10.2,4l0.2,2.1l-1.5,1.6l-1.9,0.2\n      c-2.7-2.1-5.1-3.1-7.2-3.1c-1.7,0-3,0.4-4,1.2c-1,0.8-1.4,1.8-1.4,3.2c0,0.9,0.3,1.6,0.9,2.3c0.6,0.8,1.4,1.5,2.3,2\n      c0.4,0.2,1.1,0.6,2,1.1l1.8,0.9c0.6,0.3,0.9,0.5,1,0.6c0.4,0.2,1,0.5,1.7,0.9l0.1,0c0.3,0.2,0.6,0.4,0.9,0.6c1,0.6,1.7,1,2.1,1.3\n      c1.3,0.8,2.4,1.9,3.2,3.3c0.8,1.4,1.3,3,1.3,4.8c0,3.4-1.2,6-3.6,7.8C99.4,104.1,96.6,104.9,93.3,104.9L93.3,104.9z M74.2,104.3\n      H55.7l-1.4-1.4V69.4l1.4-1.4h18.2l1.4,1.4v1.8l-1.4,1.4H59.5v10.6h9.9l1.4,1.4v1.9l-1.4,1.4h-9.9v11.6h14.7l1.4,1.4v1.8L74.2,104.3\n      L74.2,104.3z M46,104.3h-3l-1.2-0.7l-8.8-13.8h-4.5v13l-1.4,1.4h-2.4l-1.4-1.4V69.4l1.4-1.4h9c2,0,3.8,0.4,5.5,1.2\n      c1.7,0.9,3.1,2.2,4,3.7c1,1.7,1.5,3.6,1.5,5.8c0,1.4-0.3,2.8-0.8,4.2c-0.5,1.4-1.4,2.6-2.6,3.7c-0.8,0.7-1.8,1.4-3,1.9l9,13.5\n      L46,104.3L46,104.3z M28.4,85.1h4.9c0.8,0,1.7-0.2,2.7-0.7c0.8-0.4,1.6-1.1,2.2-2.1c0.6-0.9,0.9-2.1,0.9-3.6c0-1.4-0.2-2.5-0.6-3.5\n      c-0.3-0.9-0.9-1.5-1.7-1.9c-0.9-0.5-2-0.7-3.4-0.7h-5.1V85.1L28.4,85.1z\"\/>\n    <path fill=\"#fff\" d=\"M62.6,60.1c-3.2,0-5.7-0.8-7.5-2.5c-1.8-1.6-3.1-3.8-3.9-6.6c-0.4-1.3-0.6-2.8-0.8-4.4\n      c-0.2-1.7-0.3-3.5-0.3-5.3c0-2.7,0.2-5.2,0.6-7.6c0.4-2.3,1-4.3,2-6c0.9-1.7,2.2-3,3.9-3.9c1.6-0.9,3.6-1.3,6-1.3\n      c2.6,0,4.8,0.6,6.5,1.8c1.6,1.2,2.9,2.7,3.7,4.6c0.8,1.7,1.4,3.6,1.7,5.6c0.2,1.8,0.4,3.9,0.4,6.2c0,5.9-0.8,10.6-2.5,13.8\n      C70.4,58.3,67.2,60.1,62.6,60.1L62.6,60.1z M62.6,27.2c-1.7,0-3,0.5-4,1.4c-1,0.9-1.8,2.5-2.2,4.5c-0.2,1-0.4,2.2-0.6,3.7\n      c-0.1,1.2-0.2,2.7-0.2,4.6c0,2.7,0.2,5.1,0.5,7.1c0.3,2,1.1,3.7,2.1,5.1c1,1.3,2.5,1.9,4.4,1.9c1.7,0,3.1-0.6,4.1-1.7\n      c1.1-1.4,1.8-3.1,2.1-5.1c0.4-2.1,0.6-4.5,0.6-7.3c0-4.5-0.5-8.2-1.6-10.8C66.8,28.3,65.2,27.2,62.6,27.2L62.6,27.2z M103.1,59.8\n      h-2.6L99.2,59L88.3,34.4l0,23.6l-1.5,1.4h-2.4L83,58V24.6l1.4-1.4h3.5l1.3,0.9l9.9,22.4l0-21.9l1.4-1.4h2.5l1.4,1.4v33.8\n      L103.1,59.8L103.1,59.8z M43.2,59.4H24.6L23.2,58V24.6l1.4-1.4H27l1.4,1.4v30.2h14.8l1.4,1.4V58L43.2,59.4L43.2,59.4z\"\/>\n  <\/symbol>\n<\/svg>\n<!-- ====================================================================\n    COVER PAGE (PDF only &#8212; hidden in the web embed)\n    ==================================================================== -->\n<section class=\"plmb-cover\" aria-hidden=\"true\">\n  <svg class=\"plmb-geo plmb-cover-geo\" viewBox=\"0 0 800 800\" aria-hidden=\"true\">\n    <circle cx=\"560\" cy=\"560\" r=\"320\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"560\" cy=\"560\" r=\"230\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"560\" cy=\"560\" r=\"140\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"560\" cy=\"560\" r=\"55\"  fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <line x1=\"240\" y1=\"560\" x2=\"880\" y2=\"560\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"560\" y1=\"240\" x2=\"560\" y2=\"880\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"330\" y1=\"330\" x2=\"790\" y2=\"790\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"790\" y1=\"330\" x2=\"330\" y2=\"790\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n  <\/svg>\n  <div class=\"plmb-cover-inner\">\n    <div class=\"plmb-cover-top\">\n      <div class=\"plmb-cover-brand\">\n        <svg class=\"plmb-logo\" aria-label=\"LonRes\"><use href=\"#plmb-logo\"\/><\/svg>\n        <span class=\"plmb-cover-brand-text\">LonRes &#183; Research<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"plmb-cover-main\">\n      <p class=\"plmb-cover-eyebrow\">Prime London Market Dashboard<\/p>\n      <h2 class=\"plmb-cover-title\">Prime London Market Dashboard<\/h2>\n      <p class=\"plmb-cover-edition plmb-cover-edition--solo\">July edition<\/p>\n      <p class=\"plmb-cover-strap\">The prime London sales market was mixed in June, with values falling but activity showing a slight improvement. In the second month post Renters&#8217; Rights Act, rents grew across the prime lettings market.<\/p>\n      <a class=\"plmb-cover-cta\" href=\"https:\/\/lonres.com\/public\/prime-london-monthly-dashboard-july\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n        View the interactive dashboard online <span class=\"plmb-cover-cta-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span>\n      <\/a>\n    <\/div>\n    <div class=\"plmb-cover-foot\">\n      <span class=\"plmb-section-badge\">July 2026<\/span>\n      <p class=\"plmb-cover-source\">Source: LonRes<br>Independent analysis of the prime London housing market<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n<!-- ====================================================================\n    SECTION 1 &#183; OVERVIEW\n    ==================================================================== -->\n<section id=\"plmb-overview\" class=\"plmb-section plmb-section--overview\">\n  <svg class=\"plmb-geo plmb-geo--hero\" viewBox=\"0 0 800 600\" aria-hidden=\"true\">\n    <circle cx=\"400\" cy=\"300\" r=\"280\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"400\" cy=\"300\" r=\"200\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"400\" cy=\"300\" r=\"120\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"400\" cy=\"300\" r=\"40\"  fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <line x1=\"120\" y1=\"300\" x2=\"680\" y2=\"300\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"400\" y1=\"20\"  x2=\"400\" y2=\"580\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"180\" y1=\"102\" x2=\"620\" y2=\"498\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"620\" y1=\"102\" x2=\"180\" y2=\"498\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n  <\/svg>\n  <div class=\"plmb-section-inner\">\n    <div class=\"plmb-editionbar\">\n      <div class=\"plmb-editionbar-left\">\n        <svg class=\"plmb-logo plmb-logo--sm\" aria-label=\"LonRes\"><use href=\"#plmb-logo\"\/><\/svg>\n        <span class=\"plmb-editionbar-label\">LonRes Research &middot; Prime London Market Dashboard<\/span>\n      <\/div>\n      <span class=\"plmb-section-badge\">July 2026<\/span>\n    <\/div>\n\n<!-- HERO INTRO -->\n    <div class=\"plmb-overview-intro\">\n      <div class=\"plmb-overview-intro-left\">\n        <p class=\"plmb-table-heading\">Overview<\/p>\n        <h2 class=\"plmb-overview-headline\">Prime London sales market sees values slide despite steady activity<\/h2>\n      <\/div>\n      <div class=\"plmb-overview-intro-right\">\n        <p class=\"plmb-overview-subtext\">\n          The prime London sales market was mixed in June, with values falling but activity showing a slight improvement. In the second month post Renters&#8217; Rights Act, rents grew across the prime lettings market.\n        <\/p>\n      <\/div>\n    <\/div>\n    <!-- DATA TABLE -->\n    <div class=\"plmb-overview-table-block\">\n      <p class=\"plmb-table-heading\">Monthly prime data &#8211; June 2026<\/p>\n      <table class=\"plmb-prime-table\">\n        <thead>\n          <tr>\n            <th><\/th>\n            <th>Prime Sales<br>Annual Change<\/th>\n            <th>Prime Sales<br>Change vs. 2017&#8211;19*<\/th>\n            <th>Prime Lettings**<br>Annual Change<\/th>\n            <th>Prime Lettings**<br>Change vs. 2017&#8211;19*<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody>\n          <tr>\n            <td>Achieved prices\/rents<\/td>\n            <td>-8.2%<\/td><td>-5.5%<\/td><td>2.4%<\/td><td>37.1%<\/td>\n          <\/tr>\n          <tr>\n            <td>Properties sold\/let<\/td>\n            <td>4.8%<\/td><td>-2.1%<\/td><td>-1.1%<\/td><td>-45.4%<\/td>\n          <\/tr>\n          <tr>\n            <td>New instructions<\/td>\n            <td>2.2%<\/td><td>13.3%<\/td><td>11.4%<\/td><td>-34.0%<\/td>\n          <\/tr>\n        <\/tbody>\n      <\/table>\n      <p class=\"plmb-small\" style=\"margin-top:10px;\">\n        All price and rent figures based on &#163; per sq. ft. values  | \n        *Pre-pandemic  |  **Excludes Prime Fringe  |  Source: LonRes\n      <\/p>\n    <\/div>\n    <!-- KEY HEADLINES -->\n    <div class=\"plmb-overview-bullets-block\">\n      <p class=\"plmb-table-heading\">Key headlines<\/p>\n      <ul class=\"plmb-bullets plmb-bullets--2col\">\n        <li>Average achieved sold prices fell by <strong>8.2%<\/strong> on an annual basis in June. Compared to 2017&#8211;2019 (pre-pandemic) levels, values were <strong>5.5% lower<\/strong>.<\/li>\n        <li>There were <strong>4.8% more<\/strong> sales transactions in June than a year earlier but <strong>2.1% fewer<\/strong> than the 2017&#8211;2019 (pre-pandemic) June average.<\/li>\n        <li>New sales instructions in June were <strong>2.2% higher<\/strong> than last year and <strong>13.3% higher<\/strong> than the 2017&#8211;2019 (pre-pandemic) June average. The stock of available homes for sale at the end of June was <strong>3.1% higher<\/strong> than a year earlier but remains lower than the peak reached in September last year.<\/li>\n        <li>Transactions in the <strong>&#163;5m+ market<\/strong> were <strong>7.1% higher<\/strong> in June than the same month last year. New instructions in this market decreased by <strong>17.3%<\/strong> over the same period. The number of &#163;5m+ homes available for sale across prime London at the end of June was <strong>3.3% lower<\/strong> than a year earlier.<\/li>\n        <li>Average rental values across prime London rose by <strong>2.4%<\/strong> in June on an annual basis, while average rents were <strong>37.1% above<\/strong> their 2017&#8211;2019 (pre-pandemic) average.<\/li>\n        <li>LonRes data for June indicated an annual decrease of <strong>1.1%<\/strong> in lets agreed and an <strong>11.4% rise<\/strong> in new instructions. The stock of available rental properties increased on an annual basis, with <strong>19.1% more<\/strong> homes on the market at the end of June than a year earlier.<\/li>\n      <\/ul>\n    <\/div>\n    <!-- DOWNLOAD ALL CHARTS \/ PDF CTA -->\n    <div class=\"plmb-dlall-block\">\n      <div class=\"plmb-dlall-text\">\n        <h4>Download all charts for use on social<\/h4>\n        <p>Grab all four charts as separate, branded PNG images &#8212; or download the full dashboard as a PDF.<\/p>\n      <\/div>\n      <div class=\"plmb-dlall-actions\">\n        <button type=\"button\" class=\"plmb-dlall-btn\" id=\"plmb-download-all\" aria-label=\"Download all charts as separate PNG images\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg>\n          Download all charts\n        <\/button>\n        <!-- PDF download &#8212; update this href each month to the newly uploaded PDF's URL -->\n        <a class=\"plmb-dlall-btn plmb-dlall-btn--pdf\" id=\"plmb-download-pdf\"\n          href=\"https:\/\/lonres.com\/public\/wp-content\/uploads\/2026\/07\/PLMB-June-2026-portrait.pdf\"\n          target=\"_blank\" rel=\"noopener noreferrer\"\n          download\n          aria-label=\"PDF version of the dashboard\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg>\n          PDF version of dashboard\n        <\/a>\n      <\/div>\n    <\/div>\n    <!-- HEADLINE NAVIGATION -->\n    <div class=\"plmb-headlines\">\n      <div>\n        <h4>Sales headlines<\/h4>\n        <div class=\"plmb-hl-cards\">\n          <a class=\"plmb-hl-card\" href=\"#plmb-sales-activity\">Activity edges up <span class=\"plmb-hl-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span><\/a>\n          <a class=\"plmb-hl-card\" href=\"#plmb-sales-prices\">Sales &#8212; continued <span class=\"plmb-hl-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span><\/a>\n          <a class=\"plmb-hl-card\" href=\"#plmb-super-prime\">Super prime stock falls <span class=\"plmb-hl-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span><\/a>\n        <\/div>\n      <\/div>\n      <div>\n        <h4>Lettings headlines<\/h4>\n        <div class=\"plmb-hl-cards\">\n          <a class=\"plmb-hl-card\" href=\"#plmb-lettings\">Rental growth continues <span class=\"plmb-hl-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span><\/a>\n          <a class=\"plmb-hl-card\" href=\"#plmb-lettings\">1 in 8 lets above &#163;100k <span class=\"plmb-hl-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span><\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n<!-- ====================================================================\n    SECTION 2 &#183; SALES + RATIO CHART\n    ==================================================================== -->\n<section id=\"plmb-sales-activity\" class=\"plmb-section plmb-section--alt\">\n  <svg class=\"plmb-geo plmb-geo--side\" viewBox=\"0 0 260 260\" aria-hidden=\"true\">\n    <circle cx=\"130\" cy=\"130\" r=\"120\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1.2\"\/>\n    <circle cx=\"130\" cy=\"130\" r=\"80\"  fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"130\" cy=\"130\" r=\"40\"  fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"10\" y1=\"130\" x2=\"250\" y2=\"130\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"130\" y1=\"10\" x2=\"130\" y2=\"250\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n  <\/svg>\n  <div class=\"plmb-section-inner\">\n    <div class=\"plmb-section-head\">\n      <span class=\"plmb-section-num\">02<\/span>\n      <div class=\"plmb-title-wrap\">\n        <span class=\"plmb-section-label\">Sales<\/span>\n        <h2 class=\"plmb-section-title\">Gradual recovery in activity but values under pressure again in June<\/h2>\n      <\/div>\n      <span class=\"plmb-section-badge\">July 2026<\/span>\n    <\/div>\n    <div class=\"plmb-section-body\">\n      <div class=\"plmb-copy\">\n        <p>For June alone there were small annual increases in both new instructions and transactions, but the bigger picture remains underwhelming. Sales volumes over the first half of the year were down compared to 2025 and the long-term average. Values fell on an annual basis as the large number of price reductions over recent months start to feed into achieved prices.<\/p>\n        <p>Average values across prime London fell by 8.2% on an annual basis in June and were 5.5% below their pre-pandemic (2017 to 2019) average level. While this latest annual figure showed an acceleration in the pace of price falls, the monthly data in 2026 so far has been broadly steady &#8211; the size of the annual drop mostly reflects higher values in the baseline period last year. Prime London values remain under pressure, and this is unlikely to change in the short term given the lack of drivers for significant price growth.<\/p>\n        <p>At a national level, house price growth has been faring better than prime London, but that is a low bar. Nationwide&#8217;s index recorded annual growth of 2.2% in June for the UK, noting that their London and South East regions are underperforming this overall figure. Over the past decade, the ratio of the average prime London sale price to the national average house price has been steadily declining. Having peaked at 8.9 in October 2018 the ratio has fallen to 6.4 in June 2026.<\/p>\n      <\/div>\n      <!-- Doc chart 1 &#183; Ratio of Average Sale Prices (canvas id \"chart2\") -->\n      <div class=\"plmb-chart-col\">\n      <figure class=\"plmb-chart-card\" data-chart-id=\"chart2\">\n        <div class=\"plmb-chart-head\">\n          <p class=\"plmb-chart-title\">Ratio of Average Sale Prices: Prime London vs. UK<\/p>\n        <\/div>\n        <div class=\"plmb-chart-wrap plmb-chart-wrap--md\">\n          <canvas id=\"chart2\"><\/canvas>\n        <\/div>\n        <div class=\"plmb-chart-foot\">\n          <p class=\"plmb-chart-source\">Source: LonRes, Nationwide House Price Index  |  12-month smoothed<\/p>\n          <div class=\"plmb-share\" data-share-text=\"Ratio of average sale prices, prime London vs UK &#8212; June 2026: &#8226; The ratio peaked at 8.9 in October 2018 &#8226; It has fallen to 6.4 in June 2026 as prime London underperforms the wider UK market \">\n            <span class=\"plmb-share-label\">Share<\/span>\n            <button class=\"plmb-share-btn\" data-share=\"linkedin\" aria-label=\"Share on LinkedIn\" title=\"Share on LinkedIn\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M20.5 3h-17A1.5 1.5 0 0 0 2 4.5v15A1.5 1.5 0 0 0 3.5 21h17a1.5 1.5 0 0 0 1.5-1.5v-15A1.5 1.5 0 0 0 20.5 3zM8 18H5V9h3v9zM6.5 7.5A1.75 1.75 0 1 1 8.25 5.75 1.74 1.74 0 0 1 6.5 7.5zM19 18h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0 0 13 13.19V18h-3V9h2.9v1.3a3.11 3.11 0 0 1 2.7-1.4c1.55 0 3.4.86 3.4 3.66z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"x\" aria-label=\"Share on X\" title=\"Share on X\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M18.244 2H21.5l-7.46 8.524L22.5 22h-6.797l-5.323-6.967L4.279 22H1.02l7.977-9.119L1.5 2h6.961l4.815 6.367L18.244 2zm-1.16 18.084h1.808L7.013 3.83H5.072l12.012 16.254z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"copy\" aria-label=\"Copy chart summary text\" title=\"Copy chart summary text\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M16 1H4a2 2 0 0 0-2 2v14h2V3h12V1zm3 4H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 16H8V7h11v14z\"\/><\/svg>\n            <\/button>\n            <a class=\"plmb-share-btn\" href=\"https:\/\/lonres.com\/public\/wp-content\/uploads\/2026\/07\/lonres-chart2-june-2026.png\" download=\"lonres-chart2-june-2026.png\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download chart as PNG image\" title=\"Download chart as PNG image\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg>\n            <\/a>\n          <\/div>\n        <\/div>\n      <\/figure>\n      <\/div><!-- \/.plmb-chart-col -->\n    <\/div>\n      <nav class=\"plmb-section-nav\" aria-label=\"Section navigation\">\n        <a href=\"#plmb-overview\" class=\"plmb-nav-btn plmb-nav-btn--prev\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Previous<\/span>Overview<\/span>\n        <\/a>\n        <a href=\"#plmb-overview\" class=\"plmb-nav-btn plmb-nav-btn--home\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 20V5M5 12l7-7 7 7\"\/><\/svg><\/span> Back to overview\n        <\/a>\n        <a href=\"#plmb-sales-prices\" class=\"plmb-nav-btn plmb-nav-btn--next\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Next<\/span>Sales continued<\/span>\n        <\/a>\n      <\/nav>\n  <\/div>\n<\/section>\n<!-- ====================================================================\n    SECTION 3 &#183; SALES CONTINUED + ACTIVITY CHART\n    ==================================================================== -->\n<section id=\"plmb-sales-prices\" class=\"plmb-section\">\n  <div class=\"plmb-section-inner\">\n    <div class=\"plmb-section-head\">\n      <span class=\"plmb-section-num\">03<\/span>\n      <div class=\"plmb-title-wrap\">\n        <span class=\"plmb-section-label\">Sales<\/span>\n        <h2 class=\"plmb-section-title\">Gradual recovery in activity but values under pressure again in June (continued)<\/h2>\n      <\/div>\n      <span class=\"plmb-section-badge\">July 2026<\/span>\n    <\/div>\n    <div class=\"plmb-section-body plmb-section-body--stacked\">\n      <!-- Doc chart 2 &#183; Sales Activity Measures (canvas id \"chart1\") -->\n      <figure class=\"plmb-chart-card plmb-chart-card--wide\" data-chart-id=\"chart1\">\n        <div class=\"plmb-chart-head\">\n          <p class=\"plmb-chart-title\">Sales Activity Measures, First Half of 2026, All Prime London<\/p>\n        <\/div>\n        <div class=\"plmb-chart-legend\">\n          <div class=\"plmb-leg-item\"><div class=\"plmb-leg-swatch\" style=\"background:#B9A46A\"><\/div> Compared to H1 2025<\/div>\n          <div class=\"plmb-leg-item\"><div class=\"plmb-leg-swatch\" style=\"background:#DE007B\"><\/div> Compared to H1 2017&#8211;19 average<\/div>\n        <\/div>\n        <div class=\"plmb-chart-wrap plmb-chart-wrap--md\">\n          <canvas id=\"chart1\"><\/canvas>\n        <\/div>\n        <div class=\"plmb-chart-foot\">\n          <p class=\"plmb-chart-source\">Source: LonRes<\/p>\n          <div class=\"plmb-share\" data-share-text=\"Prime London sales activity &#8212; first half of 2026: &#8226; Sales: -12.7% vs H1 2025 (-3.8% vs 2017-19 avg) &#8226; Under offer: +8.3% vs H1 2025 (+27.4% vs 2017-19 avg) &#8226; New instructions: +2.0% vs H1 2025 (+25.8% vs 2017-19 avg) &#8226; Withdrawals: +29.4% vs H1 2025 (+20.8% vs 2017-19 avg) &#8226; Price reductions: +19.8% vs H1 2025 (+65.8% vs 2017-19 avg) \">\n            <span class=\"plmb-share-label\">Share<\/span>\n            <button class=\"plmb-share-btn\" data-share=\"linkedin\" aria-label=\"Share on LinkedIn\" title=\"Share on LinkedIn\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M20.5 3h-17A1.5 1.5 0 0 0 2 4.5v15A1.5 1.5 0 0 0 3.5 21h17a1.5 1.5 0 0 0 1.5-1.5v-15A1.5 1.5 0 0 0 20.5 3zM8 18H5V9h3v9zM6.5 7.5A1.75 1.75 0 1 1 8.25 5.75 1.74 1.74 0 0 1 6.5 7.5zM19 18h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0 0 13 13.19V18h-3V9h2.9v1.3a3.11 3.11 0 0 1 2.7-1.4c1.55 0 3.4.86 3.4 3.66z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"x\" aria-label=\"Share on X\" title=\"Share on X\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M18.244 2H21.5l-7.46 8.524L22.5 22h-6.797l-5.323-6.967L4.279 22H1.02l7.977-9.119L1.5 2h6.961l4.815 6.367L18.244 2zm-1.16 18.084h1.808L7.013 3.83H5.072l12.012 16.254z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"copy\" aria-label=\"Copy chart summary text\" title=\"Copy chart summary text\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M16 1H4a2 2 0 0 0-2 2v14h2V3h12V1zm3 4H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 16H8V7h11v14z\"\/><\/svg>\n            <\/button>\n            <a class=\"plmb-share-btn\" href=\"https:\/\/lonres.com\/public\/wp-content\/uploads\/2026\/07\/lonres-chart1-june-2026.png\" download=\"lonres-chart1-june-2026.png\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download chart as PNG image\" title=\"Download chart as PNG image\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg>\n            <\/a>\n          <\/div>\n        <\/div>\n      <\/figure>\n      <div class=\"plmb-copy plmb-copy--full plmb-copy--cols\">\n        <p>Other pricing indicators suggest that demand is relatively weak. The average discount from initial asking price across prime London was 10.4% in June and the proportion of sold properties that had previously been reduced was 50.5%. Neither measure is at a recent high point but both are towards the top end of historical trends.<\/p>\n        <p>Activity data for June was mildly positive but as with last month, comparisons with last year&#8217;s benchmarks are impacted by lower activity in Q2 2025 following the end of a stamp duty holiday. Across prime London there were 4.8% more transactions in June than the same month a year ago, but 2.1% fewer than the 2017&#8211;2019 (pre-pandemic average) June average. The number of properties going under offer was also 4.8% higher than a year ago, and 14.0% higher than the 2017&#8211;2019 (pre-pandemic average) June average.<\/p>\n        <p>Supply growth was relatively low in June, with new sales instructions 2.2% higher than the same month last year and 13.3% higher than the 2017&#8211;2019 June average. Stock on the market at the end of June was 3.1% higher than June last year and 19.9% above the level five years earlier (June 2021). The number of price reductions increased from an already high level, rising 21.2% in June compared to last year and extending the record of every month so far in 2026 seeing the highest ever number of reductions for that month.<\/p>\n        <p>At the halfway point of the year, reviewing the year-to-date figures helps put the current market in context. Transactions, or sales, in the first six months of 2026 were down 12.7% compared to the same period in 2025 and down 3.8% on the 2017&#8211;2019 (pre-pandemic) H1 average. Under offer numbers are up 8.3% annually and 27.4% up on their 2017&#8211;2019 average level. New instructions were 2.0% higher compared to last year and 25.8% higher relative to their 2017&#8211;2019 average. Withdrawals have seen the biggest annual increase, rising by 29.4%, while price reductions are up 65.8% over the longer comparison period.<\/p>\n      <\/div>\n    <\/div>\n      <nav class=\"plmb-section-nav\" aria-label=\"Section navigation\">\n        <a href=\"#plmb-sales-activity\" class=\"plmb-nav-btn plmb-nav-btn--prev\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Previous<\/span>Sales<\/span>\n        <\/a>\n        <a href=\"#plmb-overview\" class=\"plmb-nav-btn plmb-nav-btn--home\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 20V5M5 12l7-7 7 7\"\/><\/svg><\/span> Back to overview\n        <\/a>\n        <a href=\"#plmb-super-prime\" class=\"plmb-nav-btn plmb-nav-btn--next\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Next<\/span>Super prime<\/span>\n        <\/a>\n      <\/nav>\n  <\/div>\n<\/section>\n<!-- ====================================================================\n    SECTION 4 &#183; SUPER PRIME (&#163;5m+) + CHART 3\n    ==================================================================== -->\n<section id=\"plmb-super-prime\" class=\"plmb-section plmb-section--alt\">\n  <svg class=\"plmb-geo plmb-geo--side\" viewBox=\"0 0 260 260\" aria-hidden=\"true\">\n    <circle cx=\"130\" cy=\"130\" r=\"120\" fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1.2\"\/>\n    <circle cx=\"130\" cy=\"130\" r=\"80\"  fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"1\"\/>\n    <circle cx=\"130\" cy=\"130\" r=\"40\"  fill=\"none\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"10\" y1=\"130\" x2=\"250\" y2=\"130\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n    <line x1=\"130\" y1=\"10\" x2=\"130\" y2=\"250\" stroke=\"#2A2A33\" stroke-width=\"0.8\"\/>\n  <\/svg>\n  <div class=\"plmb-section-inner\">\n    <div class=\"plmb-section-head\">\n      <span class=\"plmb-section-num\">04<\/span>\n      <div class=\"plmb-title-wrap\">\n        <span class=\"plmb-section-label\">Super Prime &#183; &#163;5m+<\/span>\n        <h2 class=\"plmb-section-title\">Available super prime stock falls as new instructions slow<\/h2>\n      <\/div>\n      <span class=\"plmb-section-badge\">July 2026<\/span>\n    <\/div>\n    <div class=\"plmb-section-body\">\n      <div class=\"plmb-copy\">\n        <p>There were 17.3% fewer new &#163;5m+ instructions compared to the same month last year, but this was still 50.0% higher than the 2017&#8211;2019 June average. There were 7.1% more transactions in June on an annual basis, 11.1% above the 2017&#8211;2019 June average. At the end of June there were 3.3% fewer &#163;5m+ properties on the market than at the same time last year. The number of price reductions decreased by 14.8% on an annual basis while withdrawals were 30.8% higher, highlighting the discretionary nature of many vendors as they opt to pause their sales efforts rather than reduce asking prices further.<\/p>\n        <p>Over the first half of the year the super prime market behaved broadly in line with wider prime London, particularly in terms of annual comparisons. &#163;5m+ transactions, or sales, in the first six months of 2026 were down 14.7% compared to the same period in 2025 but 15.4% higher than the 2017&#8211;2019 (pre-pandemic) H1 average. Under offer numbers are up 10.7% annually and 32.7% on their 2017&#8211;2019 average level.<\/p>\n        <p>On the supply side, new &#163;5m+ sales instructions in H1 were 10.8% lower compared to 2025 but 66.4% higher relative to their 2017&#8211;2019 H1 average. Despite fewer instructions, the number of price reductions increased by 5.6% on an annual basis, with the 126.8% rise compared to their 2017&#8211;2019 average level an indication of both how much the super prime market has expanded, and its relative weakness.<\/p>\n      <\/div>\n      <!-- CHART 3 -->\n      <figure class=\"plmb-chart-card\" data-chart-id=\"chart3\">\n        <div class=\"plmb-chart-head\">\n          <p class=\"plmb-chart-title\">&#163;5m+ Sales Activity Measures, First Half of 2026, All Prime London<\/p>\n        <\/div>\n        <div class=\"plmb-chart-legend\">\n          <div class=\"plmb-leg-item\"><div class=\"plmb-leg-swatch\" style=\"background:#B9A46A\"><\/div> Compared to H1 2025<\/div>\n          <div class=\"plmb-leg-item\"><div class=\"plmb-leg-swatch\" style=\"background:#DE007B\"><\/div> Compared to H1 2017&#8211;19 average<\/div>\n        <\/div>\n        <div class=\"plmb-chart-wrap plmb-chart-wrap--md\">\n          <canvas id=\"chart3\"><\/canvas>\n        <\/div>\n        <div class=\"plmb-chart-foot\">\n          <p class=\"plmb-chart-source\">Source: LonRes<\/p>\n          <div class=\"plmb-share\" data-share-text=\"Super prime (&#163;5m+) London &#8212; H1 2026: &#8226; Sales: -14.7% vs H1 2025 (+15.4% vs 2017-19 avg) &#8226; Under offer: +10.7% vs H1 2025 (+32.7% vs 2017-19 avg) &#8226; New instructions: -10.8% vs H1 2025 (+66.4% vs 2017-19 avg) &#8226; Withdrawals: +9.6% vs H1 2025 (+40.0% vs 2017-19 avg) &#8226; Price reductions: +5.6% vs H1 2025 (+126.8% vs 2017-19 avg) \">\n            <span class=\"plmb-share-label\">Share<\/span>\n            <button class=\"plmb-share-btn\" data-share=\"linkedin\" aria-label=\"Share on LinkedIn\" title=\"Share on LinkedIn\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M20.5 3h-17A1.5 1.5 0 0 0 2 4.5v15A1.5 1.5 0 0 0 3.5 21h17a1.5 1.5 0 0 0 1.5-1.5v-15A1.5 1.5 0 0 0 20.5 3zM8 18H5V9h3v9zM6.5 7.5A1.75 1.75 0 1 1 8.25 5.75 1.74 1.74 0 0 1 6.5 7.5zM19 18h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0 0 13 13.19V18h-3V9h2.9v1.3a3.11 3.11 0 0 1 2.7-1.4c1.55 0 3.4.86 3.4 3.66z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"x\" aria-label=\"Share on X\" title=\"Share on X\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M18.244 2H21.5l-7.46 8.524L22.5 22h-6.797l-5.323-6.967L4.279 22H1.02l7.977-9.119L1.5 2h6.961l4.815 6.367L18.244 2zm-1.16 18.084h1.808L7.013 3.83H5.072l12.012 16.254z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"copy\" aria-label=\"Copy chart summary text\" title=\"Copy chart summary text\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M16 1H4a2 2 0 0 0-2 2v14h2V3h12V1zm3 4H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 16H8V7h11v14z\"\/><\/svg>\n            <\/button>\n            <a class=\"plmb-share-btn\" href=\"https:\/\/lonres.com\/public\/wp-content\/uploads\/2026\/07\/lonres-chart3-june-2026.png\" download=\"lonres-chart3-june-2026.png\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download chart as PNG image\" title=\"Download chart as PNG image\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg>\n            <\/a>\n          <\/div>\n        <\/div>\n      <\/figure>\n    <\/div>\n      <nav class=\"plmb-section-nav\" aria-label=\"Section navigation\">\n        <a href=\"#plmb-sales-prices\" class=\"plmb-nav-btn plmb-nav-btn--prev\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Previous<\/span>Sales continued<\/span>\n        <\/a>\n        <a href=\"#plmb-overview\" class=\"plmb-nav-btn plmb-nav-btn--home\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 20V5M5 12l7-7 7 7\"\/><\/svg><\/span> Back to overview\n        <\/a>\n        <a href=\"#plmb-lettings\" class=\"plmb-nav-btn plmb-nav-btn--next\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Next<\/span>Lettings<\/span>\n        <\/a>\n      <\/nav>\n  <\/div>\n<\/section>\n<!-- ====================================================================\n    SECTION 5 &#183; LETTINGS + CHART 4 (full-width chart)\n    ==================================================================== -->\n<section id=\"plmb-lettings\" class=\"plmb-section\">\n  <div class=\"plmb-section-inner\">\n    <div class=\"plmb-section-head\">\n      <span class=\"plmb-section-num\">05<\/span>\n      <div class=\"plmb-title-wrap\">\n        <span class=\"plmb-section-label\">Lettings<\/span>\n        <h2 class=\"plmb-section-title\">Prime London lettings market sees steady rental growth in June<\/h2>\n      <\/div>\n      <span class=\"plmb-section-badge\">July 2026<\/span>\n    <\/div>\n    <div class=\"plmb-section-body plmb-section-body--stacked\">\n      <div class=\"plmb-copy plmb-copy--full plmb-copy--cols\">\n        <p>Lettings activity was broadly steady in June while rents recorded a small increase.<\/p>\n        <p>LonRes data for June indicated an annual decrease of 1.1% in lets agreed and an 11.4% rise in new instructions. The stock of available rental properties increased on an annual basis, with 19.1% more homes on the market at the end of June than a year earlier. Note that these activity figures exclude listings in our Prime Fringe** catchment as this has been impacted by a change in the way listings are collected for our new rental checker tool.<\/p>\n        <p>Average rental values rose by 2.4% on an annual basis in June. This is the second consecutive rise, following six months of falls, but movements in either direction over the past three years have been relatively small as the market stabilised after the rapid growth seen from 2021 through to 2023. Current values are 37.1% above their 2017&#8211;2019 (pre-pandemic) average.<\/p>\n        <p>The uptick in rental growth has coincided with the introduction of the Renters&#8217; Rights Act (RRA) on 1 May. It is still too early to make a direct link, but we will closely observe this dataset over the rest of the year to look for any impacts the policy change may have on the market. One other point to note with the RRA is that tenancies where the annual rent is over &#163;100,000 are Common Law tenancies and therefore exempt. With recent rental growth this is covering an increasing share of the market, almost 1 in 8 properties across prime London let so far in 2026 were above the threshold.<\/p>\n      <\/div>\n      <!-- CHART 4 -->\n      <figure class=\"plmb-chart-card plmb-chart-card--wide\" data-chart-id=\"chart4\">\n        <div class=\"plmb-chart-head\">\n          <p class=\"plmb-chart-title\">Proportion Of Properties Let At Or Above &#163;100k, All Prime London, By Year<\/p>\n        <\/div>\n        <div class=\"plmb-chart-wrap plmb-chart-wrap--lg\">\n          <canvas id=\"chart4\"><\/canvas>\n        <\/div>\n        <div class=\"plmb-chart-foot\">\n          <p class=\"plmb-chart-source\">Source: LonRes<\/p>\n          <div class=\"plmb-share\" data-share-text=\"Proportion of prime London lets at or above &#163;100k annual rent: &#8226; 2026 year to date: 12.1% &#8212; almost 1 in 8 &#8226; 2025: 9.0% &#183; 2024: 9.7% &#183; 2023: 8.7% &#8226; Typically around 5% pre-pandemic (2017-19) \">\n            <span class=\"plmb-share-label\">Share<\/span>\n            <button class=\"plmb-share-btn\" data-share=\"linkedin\" aria-label=\"Share on LinkedIn\" title=\"Share on LinkedIn\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M20.5 3h-17A1.5 1.5 0 0 0 2 4.5v15A1.5 1.5 0 0 0 3.5 21h17a1.5 1.5 0 0 0 1.5-1.5v-15A1.5 1.5 0 0 0 20.5 3zM8 18H5V9h3v9zM6.5 7.5A1.75 1.75 0 1 1 8.25 5.75 1.74 1.74 0 0 1 6.5 7.5zM19 18h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0 0 13 13.19V18h-3V9h2.9v1.3a3.11 3.11 0 0 1 2.7-1.4c1.55 0 3.4.86 3.4 3.66z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"x\" aria-label=\"Share on X\" title=\"Share on X\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M18.244 2H21.5l-7.46 8.524L22.5 22h-6.797l-5.323-6.967L4.279 22H1.02l7.977-9.119L1.5 2h6.961l4.815 6.367L18.244 2zm-1.16 18.084h1.808L7.013 3.83H5.072l12.012 16.254z\"\/><\/svg>\n            <\/button>\n            <button class=\"plmb-share-btn\" data-share=\"copy\" aria-label=\"Copy chart summary text\" title=\"Copy chart summary text\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M16 1H4a2 2 0 0 0-2 2v14h2V3h12V1zm3 4H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 16H8V7h11v14z\"\/><\/svg>\n            <\/button>\n            <a class=\"plmb-share-btn\" href=\"https:\/\/lonres.com\/public\/wp-content\/uploads\/2026\/07\/lonres-chart4-june-2026.png\" download=\"lonres-chart4-june-2026.png\" target=\"_blank\" rel=\"noopener\" aria-label=\"Download chart as PNG image\" title=\"Download chart as PNG image\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg>\n            <\/a>\n          <\/div>\n        <\/div>\n      <\/figure>\n    <\/div>\n      <nav class=\"plmb-section-nav\" aria-label=\"Section navigation\">\n        <a href=\"#plmb-super-prime\" class=\"plmb-nav-btn plmb-nav-btn--prev\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg><\/span>\n          <span><span class=\"plmb-nav-label\">Previous<\/span>Super prime<\/span>\n        <\/a>\n        <a href=\"#plmb-overview\" class=\"plmb-nav-btn plmb-nav-btn--home\">\n          <span class=\"plmb-nav-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 20V5M5 12l7-7 7 7\"\/><\/svg><\/span> Back to overview\n        <\/a>\n        <span class=\"plmb-nav-btn plmb-nav-btn--next plmb-nav-btn--disabled\" aria-hidden=\"true\"><\/span>\n      <\/nav>\n  <\/div>\n<\/section>\n<!-- ====================================================================\n    FOOTER\n    ==================================================================== -->\n<footer id=\"plmb-footer\" class=\"plmb-footer\">\n  <div class=\"plmb-footer-inner\">\n    <div class=\"plmb-footer-logo-row\">\n      <svg class=\"plmb-logo plmb-logo--sm\" aria-label=\"LonRes\"><use href=\"#plmb-logo\"\/><\/svg>\n      <p class=\"plmb-footer-text\" style=\"margin:0;\">Prime London Market Dashboard &#183; June 2026<\/p>\n    <\/div>\n    <div class=\"plmb-footer-grid\">\n      <div>\n        <div class=\"plmb-footer-block\">\n          <p class=\"plmb-footer-title\">Notes<\/p>\n          <p class=\"plmb-footer-text\">\n            Prime London analysis includes properties within the following postcodes:<br>\n            <strong>Prime Central London:<\/strong> SW1Y, SW1X, SW1W, SW1A, SW3, SW7, SW10, W1S, W1K, W1J, W8.<br>\n            <strong>Prime Inner London:<\/strong> NW1, NW3, NW8, SW1P, SW1V, W1T, W1H, W1U, W1G, W1W, W2, W11, W14.<br>\n            <strong>Prime Fringe:<\/strong> SE1, SE11, SW4, SW5, SW6, SW11, W4, W6, W9, W10.<br><br>\n            **Lettings activity analysis currently excludes Prime Fringe postcodes due to a change in the way listings are collected for our new rental checker tool.\n          <\/p>\n        <\/div>\n      <\/div>\n      <div>\n        <a class=\"plmb-footer-online plmb-print-only\" href=\"https:\/\/lonres.com\/public\/prime-london-monthly-dashboard-july\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n          <span class=\"plmb-footer-online-text\">\n            <span class=\"plmb-footer-online-eyebrow\">Explore online<\/span>\n            View the interactive dashboard\n          <\/span>\n          <span class=\"plmb-footer-online-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span>\n        <\/a>\n        <div class=\"plmb-footer-cta\">\n          <p class=\"plmb-footer-cta-eyebrow\">Stay informed<\/p>\n          <h3 class=\"plmb-footer-cta-title\">Sign up to our Newsletter<\/h3>\n          <p class=\"plmb-footer-cta-text\">\n            Each month, we'll share highlights from the LonRes platform: standout sales and lets, key market trends, snapshots from our network, plus industry updates and opportunities.\n          <\/p>\n          <p class=\"plmb-footer-cta-text\">\n            Designed to cut through the noise, it's a quick, relevant way to stay connected &#8212; to the market, your peers, and LonRes.\n          <\/p>\n          <a href=\"https:\/\/lonres.com\/public\/newsletter\/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"plmb-footer-cta-btn\">\n            Sign up to the newsletter\n            <span class=\"plmb-footer-cta-arrow\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/span>\n          <\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/footer>\n<\/div><!-- \/.plmb-dashboard -->\n<!-- ====================================================================\n    CHARTS + SHARE LOGIC\n    ==================================================================== -->\n<script>\n(function () {\n  const wrapper = document.querySelector('.plmb-dashboard');\n  const PLMB_URL = (wrapper && wrapper.dataset.plmbUrl) || window.location.href;\n  Chart.defaults.font.family = \"'Inter', sans-serif\";\n  Chart.defaults.font.size  = 12;\n  Chart.defaults.color      = '#2A2A33';\n  const MAGENTA = '#DE007B';\n  const TEAL    = '#B9A46A';\n  const DARK    = '#2A2A33';\n  const SAND    = '#8B7B5E';\n  \/* The PDF render sets window.__PLMB_PRINT__ = true before this runs. In the PDF the\n    Fringe line is a solid #E0A024; on the web it stays a dashed sand line. *\/\n  const PLMB_PRINT  = (typeof window !== 'undefined' && window.__PLMB_PRINT__ === true);\n  const FRINGE_COLOR = PLMB_PRINT ? '#E0A024' : SAND;\n  const FRINGE_DASH  = PLMB_PRINT ? [] : [6, 3];\n  const charts = {};\n  \/* -- PNG EXPORT -- *\/\n  function exportChartPng(chartId, card) {\n    const chart = charts[chartId];\n    if (!chart) return null;\n    const title  = card.querySelector('.plmb-chart-title').textContent.trim();\n    const source = card.querySelector('.plmb-chart-source').textContent.trim();\n    const legendEls = card.querySelectorAll('.plmb-leg-item');\n    const legend = Array.from(legendEls).map(el => ({\n      colour: (el.querySelector('.plmb-leg-swatch') && el.querySelector('.plmb-leg-swatch').style.background) || '#333',\n      label:  el.textContent.trim()\n    }));\n    const scale = 2;\n    const srcCanvas = chart.canvas;\n    const W = Math.max(srcCanvas.clientWidth, 720);\n    const H = Math.max(srcCanvas.clientHeight, 400);\n    const padX = 32, titleH = 50, legendH = legend.length ? 38 : 8;\n    const padTop = titleH + legendH + 14, padBot = 50;\n    const out = document.createElement('canvas');\n    out.width  = (W + padX * 2) * scale;\n    out.height = (H + padTop + padBot) * scale;\n    const ctx = out.getContext('2d');\n    ctx.scale(scale, scale);\n    const fullW = out.width \/ scale, fullH = out.height \/ scale;\n    ctx.fillStyle = '#FFFFFF'; ctx.fillRect(0, 0, fullW, fullH);\n    ctx.fillStyle = MAGENTA; ctx.fillRect(0, 0, 6, fullH);\n    ctx.fillStyle = DARK; ctx.font = '600 16px Inter, sans-serif';\n    ctx.textBaseline = 'top'; ctx.textAlign = 'left';\n    const maxTitleWidth = fullW - padX * 2;\n    const words = title.split(' ');\n    let line = '', lines = [];\n    for (const w of words) {\n      const test = line ? line + ' ' + w : w;\n      if (ctx.measureText(test).width > maxTitleWidth) { lines.push(line); line = w; }\n      else line = test;\n    }\n    if (line) lines.push(line);\n    lines.slice(0, 2).forEach((ln, i) => ctx.fillText(ln, padX, 18 + i * 20));\n    if (legend.length) {\n      const legendY = titleH + 6; let cursorX = padX;\n      ctx.font = '500 12px Inter, sans-serif'; ctx.fillStyle = DARK;\n      ctx.textBaseline = 'middle';\n      const swatchW = 14, swatchH = 11, gapSwatchLabel = 7, gapItems = 22;\n      const midY = legendY + 11;\n      legend.forEach(item => {\n        const labelW = ctx.measureText(item.label).width;\n        const itemW = swatchW + gapSwatchLabel + labelW;\n        if (cursorX + itemW > fullW - padX && cursorX > padX) { cursorX = padX; }\n        ctx.fillStyle = item.colour;\n        ctx.fillRect(cursorX, midY - swatchH \/ 2, swatchW, swatchH);\n        ctx.fillStyle = DARK;\n        ctx.fillText(item.label, cursorX + swatchW + gapSwatchLabel, midY);\n        cursorX += itemW + gapItems;\n      });\n    }\n    ctx.drawImage(srcCanvas, padX, padTop, W, H);\n    ctx.fillStyle = '#E2E0D8'; ctx.fillRect(padX, padTop + H + 14, fullW - padX * 2, 1);\n    ctx.fillStyle = '#7C8090'; ctx.font = '500 11px Inter, sans-serif';\n    ctx.textBaseline = 'middle'; ctx.textAlign = 'left';\n    ctx.fillText(source, padX, padTop + H + 30);\n    ctx.textAlign = 'right'; ctx.fillStyle = MAGENTA; ctx.font = '700 11px Inter, sans-serif';\n    ctx.fillText('LonRes \\u00b7 Prime London Market Dashboard', fullW - padX, padTop + H + 30);\n    ctx.textAlign = 'left';\n    return out.toDataURL('image\/png');\n  }\n  function triggerDownload(dataUrl, filename) {\n    const a = document.createElement('a');\n    a.href = dataUrl; a.download = filename;\n    a.target = '_blank'; a.rel = 'noopener';\n    document.body.appendChild(a); a.click(); document.body.removeChild(a);\n  }\n  \/* -- TOAST -- *\/\n  let toastTimer;\n  function toast(msg) {\n    let el = document.querySelector('.plmb-toast');\n    if (!el) { el = document.createElement('div'); el.className = 'plmb-toast'; wrapper.appendChild(el); }\n    el.textContent = msg; el.classList.add('plmb-toast--show');\n    clearTimeout(toastTimer);\n    toastTimer = setTimeout(() => el.classList.remove('plmb-toast--show'), 2400);\n  }\n  \/* -- SHARE BUTTONS -- *\/\n  document.querySelectorAll('button.plmb-share-btn').forEach(btn => {\n    btn.addEventListener('click', async function (e) {\n      e.preventDefault();\n      const shareWrap = btn.closest('.plmb-share');\n      const card      = btn.closest('.plmb-chart-card');\n      const chartId  = card ? card.dataset.chartId : '';\n      const title    = card ? card.querySelector('.plmb-chart-title').textContent.trim() : '';\n      const source    = card ? card.querySelector('.plmb-chart-source').textContent.trim() : '';\n      const summary  = shareWrap ? (shareWrap.dataset.shareText || '').replace(\/ \/g, '\\n') : '';\n      const platform  = btn.dataset.share;\n      const deepUrl  = PLMB_URL + (chartId ? '#' + chartId : '');\n      const richText = title + '\\n\\n' + (summary || '') + '\\n' + source + '\\n\\n' +\n        'See the full Prime London Market Dashboard: ' + deepUrl;\n      function copyText(text) {\n        if (navigator.clipboard && window.isSecureContext) {\n          return navigator.clipboard.writeText(text).catch(() => copyTextFallback(text));\n        }\n        return copyTextFallback(text);\n      }\n      function copyTextFallback(text) {\n        return new Promise((resolve, reject) => {\n          const ta = document.createElement('textarea');\n          ta.value = text; ta.style.cssText = 'position:fixed;top:0;left:0;opacity:0;';\n          document.body.appendChild(ta); ta.focus(); ta.select();\n          let ok = false;\n          try { ok = document.execCommand('copy'); } catch (e) {}\n          document.body.removeChild(ta);\n          ok ? resolve() : reject(new Error('copy failed'));\n        });\n      }\n      function openShareWindow(u) {\n        const a = document.createElement('a');\n        a.href = u; a.target = '_blank'; a.rel = 'noopener noreferrer';\n        a.style.display = 'none'; document.body.appendChild(a); a.click(); document.body.removeChild(a);\n      }\n      if (platform === 'download') {\n        try {\n          const dataUrl = exportChartPng(chartId, card);\n          if (dataUrl) { triggerDownload(dataUrl, 'lonres-' + chartId + '-june-2026.png'); toast('Chart image downloaded'); }\n          else { toast('Download failed \\u2014 chart not ready'); }\n        } catch (err) { console.error('PLMB download error:', err); toast('Download failed'); }\n        return;\n      }\n      if (platform === 'copy') {\n        copyText(richText).then(() => toast('Chart summary copied to clipboard')).catch(() => toast('Copy blocked \\u2014 please copy manually'));\n        return;\n      }\n      if (platform === 'linkedin') {\n        const u = 'https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=' + encodeURIComponent(deepUrl);\n        openShareWindow(u);\n        copyText(richText).then(() => toast('Summary copied \\u2014 paste it into your LinkedIn post')).catch(() => {});\n        return;\n      }\n      if (platform === 'x') {\n        const tweetText = title + ' \\u2014 ' + source + ' (via LonRes Prime London Market Dashboard)';\n        const u = 'https:\/\/twitter.com\/intent\/tweet?text=' + encodeURIComponent(tweetText) + '&url=' + encodeURIComponent(deepUrl);\n        openShareWindow(u);\n        return;\n      }\n    });\n  });\n  \/* -- DOWNLOAD ALL CHARTS (front-page CTA) -- *\/\n  (function () {\n    const btn = document.getElementById('plmb-download-all');\n    if (!btn) return;\n    const sleep = ms => new Promise(r => setTimeout(r, ms));\n    btn.addEventListener('click', async function () {\n      const cards = Array.from(document.querySelectorAll('.plmb-chart-card[data-chart-id]'));\n      if (!cards.length) { toast('No charts ready to download'); return; }\n      const original = btn.innerHTML;\n      btn.disabled = true;\n      btn.innerHTML = '<svg viewBox=\"0 0 24 24\"><path d=\"M12 16l-5-5h3V4h4v7h3l-5 5zm-7 4v-2h14v2H5z\"\/><\/svg> Preparing\\u2026';\n      let n = 0;\n      const IMG_BASE = 'https:\/\/lonres.com\/public\/wp-content\/uploads\/2026\/07\/';\n      for (const card of cards) {\n        const chartId = card.dataset.chartId;\n        try {\n          const file = 'lonres-' + chartId + '-june-2026.png';\n          triggerDownload(IMG_BASE + file, file);\n          n++;\n          \/* stagger so the browser treats these as distinct downloads *\/\n          await sleep(400);\n        } catch (err) { console.error('PLMB download-all error for', chartId, err); }\n      }\n      btn.disabled = false;\n      btn.innerHTML = original;\n      toast(n ? ('Downloaded ' + n + ' chart' + (n > 1 ? 's' : '')) : 'Download failed');\n    });\n  })();\n  \/* -- PDF DOWNLOAD BUTTON (guards the placeholder URL) -- *\/\n  (function () {\n    const pdfBtn = document.getElementById('plmb-download-pdf');\n    if (!pdfBtn) return;\n    pdfBtn.addEventListener('click', function (e) {\n      const href = pdfBtn.getAttribute('href') || '';\n      if (!href || href === 'PASTE_PDF_URL_HERE') {\n        e.preventDefault();\n        toast('PDF link not set yet');\n      }\n    });\n  })();\n  \/* -- RESIZE -- *\/\n  let resizeTimer;\n  window.addEventListener('resize', () => {\n    clearTimeout(resizeTimer);\n    resizeTimer = setTimeout(() => {\n      Object.values(charts).forEach(c => { try { c.resize(); c.update('none'); } catch (e) {} });\n    }, 120);\n  });\n  \/* -- CHART 1 \\u00b7 Horizontal bar \\u2014 Sales Activity (H1 2026) -- *\/\n  (function () {\n    const labels = ['Sales', 'Under Offer', 'New Instructions', 'Withdrawn', 'Price Reductions'];\n    const vs1719 = [-3.8, 27.4, 25.8, 20.8, 65.8];\n    const vs2025 = [-12.7, 8.3, 2.0, 29.4, 19.8];\n    charts.chart1 = new Chart(document.getElementById('chart1'), {\n      type: 'bar',\n      data: { labels, datasets: [\n        { label: 'Compared to H1 2025',            data: vs2025, backgroundColor: TEAL,    borderWidth: 0, maxBarThickness: 18 },\n        { label: 'Compared to H1 2017\\u201319 average', data: vs1719, backgroundColor: MAGENTA, borderWidth: 0, maxBarThickness: 18 }\n      ]},\n      options: {\n        indexAxis: 'y', responsive: true, maintainAspectRatio: false,\n        plugins: { legend: { display: false }, tooltip: { callbacks: { label: ctx => ` ${ctx.dataset.label}: ${ctx.parsed.x.toFixed(1)}%` } } },\n        scales: {\n          x: { min: -20, max: 80, grid: { color: 'rgba(0,0,0,0.06)' }, border: { dash: [4,4] }, ticks: { stepSize: 10, callback: v => v + '%' } },\n          y: { grid: { display: false }, border: { display: false }, ticks: { font: { size: 12 } } }\n        },\n        layout: { padding: { left: 8, right: 12 } }, animation: false\n      },\n      plugins: [{ id: 'barLabels1', afterDatasetsDraw(chart) {\n        const ctx = chart.ctx; ctx.save();\n        chart.data.datasets.forEach((ds, di) => {\n          const meta = chart.getDatasetMeta(di);\n          meta.data.forEach((bar, i) => {\n            const v = ds.data[i]; const txt = v.toFixed(1) + '%';\n            const col = ds.backgroundColor;\n            ctx.font = 'bold 11px Inter, sans-serif'; ctx.textBaseline = 'middle';\n            if (v >= 0) {\n              ctx.fillStyle = col; ctx.textAlign = 'left';\n              ctx.fillText(txt, bar.x + 5, bar.y);\n            } else {\n              const w = ctx.measureText(txt).width;\n              const x0 = chart.scales.x.getPixelForValue(0);\n              if (bar.x - 5 - w >= chart.chartArea.left - 6) {\n                \/* outside the bar tip, matching the source chart *\/\n                ctx.fillStyle = col; ctx.textAlign = 'right';\n                ctx.fillText(txt, bar.x - 5, bar.y);\n              } else if (bar.x + 5 + w <= x0 - 3) {\n                \/* fits fully inside the bar *\/\n                ctx.fillStyle = '#fff'; ctx.textAlign = 'left';\n                ctx.fillText(txt, bar.x + 5, bar.y);\n              } else {\n                \/* short bar \\u2014 sit just right of the zero line *\/\n                ctx.fillStyle = col; ctx.textAlign = 'left';\n                ctx.fillText(txt, x0 + 4, bar.y);\n              }\n            }\n          });\n        });\n        ctx.restore();\n      }}]\n    });\n  })();\n  \/* -- CHART 2 \\u00b7 Line \\u2014 Ratio of Average Sale Prices: Prime London vs. UK -- *\/\n  (function () {\n    const labels = ['Jun 16','Jul 16','Aug 16','Sep 16','Oct 16','Nov 16','Dec 16','Jan 17','Feb 17','Mar 17','Apr 17','May 17','Jun 17','Jul 17','Aug 17','Sep 17','Oct 17','Nov 17','Dec 17','Jan 18','Feb 18','Mar 18','Apr 18','May 18','Jun 18','Jul 18','Aug 18','Sep 18','Oct 18','Nov 18','Dec 18','Jan 19','Feb 19','Mar 19','Apr 19','May 19','Jun 19','Jul 19','Aug 19','Sep 19','Oct 19','Nov 19','Dec 19','Jan 20','Feb 20','Mar 20','Apr 20','May 20','Jun 20','Jul 20','Aug 20','Sep 20','Oct 20','Nov 20','Dec 20','Jan 21','Feb 21','Mar 21','Apr 21','May 21','Jun 21','Jul 21','Aug 21','Sep 21','Oct 21','Nov 21','Dec 21','Jan 22','Feb 22','Mar 22','Apr 22','May 22','Jun 22','Jul 22','Aug 22','Sep 22','Oct 22','Nov 22','Dec 22','Jan 23','Feb 23','Mar 23','Apr 23','May 23','Jun 23','Jul 23','Aug 23','Sep 23','Oct 23','Nov 23','Dec 23','Jan 24','Feb 24','Mar 24','Apr 24','May 24','Jun 24','Jul 24','Aug 24','Sep 24','Oct 24','Nov 24','Dec 24','Jan 25','Feb 25','Mar 25','Apr 25','May 25','Jun 25','Jul 25','Aug 25','Sep 25','Oct 25','Nov 25','Dec 25','Jan 26','Feb 26','Mar 26','Apr 26','May 26','Jun 26'];\n    const ratio  = [8.4, 8.2, 8.2, 8.1, 8.3, 8.4, 8.5, 8.4, 8.6, 8.7, 8.7, 8.8, 8.8, 8.7, 8.7, 8.8, 8.7, 8.7, 8.7, 8.8, 8.7, 8.7, 8.6, 8.5, 8.7, 8.7, 8.8, 8.8, 8.9, 8.7, 8.7, 8.6, 8.4, 8.3, 8.4, 8.4, 8.2, 8.1, 8.0, 8.0, 7.9, 7.9, 7.8, 7.9, 7.9, 8.4, 8.2, 8.2, 8.2, 8.3, 8.4, 8.4, 8.4, 8.4, 8.5, 8.4, 8.4, 7.9, 8.0, 7.9, 7.7, 7.9, 7.8, 7.7, 7.8, 7.9, 8.0, 7.9, 8.0, 8.1, 8.1, 8.2, 8.3, 8.1, 8.1, 8.0, 7.9, 7.7, 7.8, 7.9, 7.8, 7.7, 7.8, 7.8, 7.8, 7.8, 7.9, 8.0, 7.9, 8.0, 7.8, 7.6, 7.5, 7.7, 7.7, 7.6, 7.4, 7.4, 7.2, 7.2, 7.3, 7.3, 7.5, 7.4, 7.4, 7.2, 7.2, 7.3, 7.3, 7.3, 7.4, 7.2, 7.1, 7.1, 6.9, 6.8, 6.7, 6.8, 6.6, 6.5, 6.4];\n    charts.chart2 = new Chart(document.getElementById('chart2'), {\n      type: 'line',\n      data: { labels, datasets: [\n        { label: 'Prime London vs. UK', data: ratio, borderColor: MAGENTA, backgroundColor: 'transparent', borderWidth: 2, pointRadius: 0, pointHoverRadius: 4, tension: 0.3 }\n      ]},\n      options: {\n        responsive: true, maintainAspectRatio: false,\n        interaction: { mode: 'index', intersect: false },\n        plugins: { legend: { display: false }, tooltip: { callbacks: { label: ctx => ` ${ctx.dataset.label}: ${ctx.parsed.y.toFixed(1)}` } } },\n        scales: {\n          x: { grid: { display: false }, border: { display: false },\n              ticks: { autoSkip: false, minRotation: 90, maxRotation: 90, font: { size: 10 },\n                        callback(val, i) { const lab = this.getLabelForValue(val); return (lab && (lab.indexOf('Jun ') === 0 || lab.indexOf('Dec ') === 0)) ? lab.replace(' ', '-') : ''; } } },\n          y: { min: 6, max: 9, grid: { color: 'rgba(0,0,0,0.06)' }, border: { dash: [4,4] }, ticks: { stepSize: 0.5, callback: v => Number(v).toFixed(1) } }\n        },\n        animation: false\n      }\n    });\n  })();\n  \/* -- CHART 3 \\u00b7 Horizontal bar \\u2014 \\u00a35m+ Sales Activity (H1 2026) -- *\/\n  (function () {\n    const labels = ['Sales', 'Under Offer', 'New Instructions', 'Withdrawn', 'Price Reductions'];\n    const vs1719 = [15.4, 32.7, 66.4, 40.0, 126.8];\n    const vs2025 = [-14.7, 10.7, -10.8, 9.6, 5.6];\n    charts.chart3 = new Chart(document.getElementById('chart3'), {\n      type: 'bar',\n      data: { labels, datasets: [\n        { label: 'Compared to H1 2025',            data: vs2025, backgroundColor: TEAL,    borderWidth: 0, maxBarThickness: 18 },\n        { label: 'Compared to H1 2017\\u201319 average', data: vs1719, backgroundColor: MAGENTA, borderWidth: 0, maxBarThickness: 18 }\n      ]},\n      options: {\n        indexAxis: 'y', responsive: true, maintainAspectRatio: false,\n        plugins: { legend: { display: false }, tooltip: { callbacks: { label: ctx => ` ${ctx.dataset.label}: ${ctx.parsed.x.toFixed(1)}%` } } },\n        scales: {\n          x: { min: -40, max: 140, grid: { color: 'rgba(0,0,0,0.06)' }, border: { dash: [4,4] }, ticks: { stepSize: 20, callback: v => v + '%' } },\n          y: { grid: { display: false }, border: { display: false }, ticks: { font: { size: 12 } } }\n        },\n        layout: { padding: { left: 8, right: 20 } }, animation: false\n      },\n      plugins: [{ id: 'barLabels3', afterDatasetsDraw(chart) {\n        const ctx = chart.ctx; ctx.save();\n        chart.data.datasets.forEach((ds, di) => {\n          const meta = chart.getDatasetMeta(di);\n          meta.data.forEach((bar, i) => {\n            const v = ds.data[i]; const txt = v.toFixed(1) + '%';\n            const col = ds.backgroundColor;\n            ctx.font = 'bold 11px Inter, sans-serif'; ctx.textBaseline = 'middle';\n            if (v >= 0) {\n              ctx.fillStyle = col; ctx.textAlign = 'left';\n              ctx.fillText(txt, bar.x + 5, bar.y);\n            } else {\n              const w = ctx.measureText(txt).width;\n              const x0 = chart.scales.x.getPixelForValue(0);\n              if (bar.x - 5 - w >= chart.chartArea.left - 6) {\n                \/* outside the bar tip, matching the source chart *\/\n                ctx.fillStyle = col; ctx.textAlign = 'right';\n                ctx.fillText(txt, bar.x - 5, bar.y);\n              } else if (bar.x + 5 + w <= x0 - 3) {\n                \/* fits fully inside the bar *\/\n                ctx.fillStyle = '#fff'; ctx.textAlign = 'left';\n                ctx.fillText(txt, bar.x + 5, bar.y);\n              } else {\n                \/* short bar \\u2014 sit just right of the zero line *\/\n                ctx.fillStyle = col; ctx.textAlign = 'left';\n                ctx.fillText(txt, x0 + 4, bar.y);\n              }\n            }\n          });\n        });\n        ctx.restore();\n      }}]\n    });\n  })();\n  \/* -- CHART 4 \\u00b7 Line \\u2014 Proportion of Properties Let at or above \\u00a3100k, by year -- *\/\n  (function () {\n    const labels = ['2012','2013','2014','2015','2016','2017','2018','2019','2020','2021','2022','2023','2024','2025','2026'];\n    const pct    = [4.7, 4.6, 4.8, 5.2, 5.2, 4.9, 5.2, 5.7, 5.4, 4.9, 7.7, 8.7, 9.7, 9.0, 12.1];\n    charts.chart4 = new Chart(document.getElementById('chart4'), {\n      type: 'line',\n      data: { labels, datasets: [\n        { label: 'Proportion let at or above \\u00a3100k', data: pct, borderColor: MAGENTA, backgroundColor: 'transparent',\n          borderWidth: 2.5, tension: 0.3, pointRadius: labels.map(l => l === '2026' ? 5 : 3),\n          pointBackgroundColor: MAGENTA, pointBorderColor: '#fff', pointBorderWidth: 1.5, pointHoverRadius: 6 }\n      ]},\n      options: {\n        responsive: true, maintainAspectRatio: false,\n        plugins: { legend: { display: false }, tooltip: { callbacks: { label: ctx => ` ${ctx.parsed.y.toFixed(1)}% of lets at or above \\u00a3100k${ctx.label === '2026' ? ' (year to date)' : ''}` } } },\n        scales: {\n          x: { grid: { display: false }, border: { display: false }, ticks: { font: { size: 11 } } },\n          y: { beginAtZero: true, grid: { color: 'rgba(0,0,0,0.06)' }, border: { dash: [4,4] }, ticks: { callback: v => v + '%' } }\n        },\n        layout: { padding: { top: 20, left: 6, right: 16 } }, animation: false\n      },\n      plugins: [{ id: 'pointLabels4', afterDatasetsDraw(chart) {\n        const ctx = chart.ctx; ctx.save();\n        const meta = chart.getDatasetMeta(0); const n = meta.data.length;\n        const pt = meta.data[n - 1]; const v = chart.data.datasets[0].data[n - 1];\n        ctx.font = 'bold 10px Inter, sans-serif'; ctx.fillStyle = DARK; ctx.textBaseline = 'bottom';\n        ctx.textAlign = 'right';\n        ctx.fillText(v.toFixed(1) + '%', pt.x + 6, pt.y - 8);\n        ctx.restore();\n      }}]\n    });\n  })();\n})();\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Prime London achieved prices fell 8.2% in June, the sharpest annual drop of the year so far, while rents rose 2.4%. LonRes sales and lettings data.<\/p>\n","protected":false},"author":3,"featured_media":12898,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[41],"tags":[68,163,62,61,72],"class_list":["post-12891","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-insight-and-data-reports","tag-estate-agents","tag-industry-shifts","tag-london-property-market","tag-london-residential-market","tag-pcl-housing-market","entry"],"acf":[],"_links":{"self":[{"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/posts\/12891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/comments?post=12891"}],"version-history":[{"count":12,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/posts\/12891\/revisions"}],"predecessor-version":[{"id":12926,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/posts\/12891\/revisions\/12926"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/media\/12898"}],"wp:attachment":[{"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/media?parent=12891"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/categories?post=12891"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonres.com\/public\/wp-json\/wp\/v2\/tags?post=12891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}