{"id":1433,"date":"2026-09-24T18:17:01","date_gmt":"2026-09-24T18:17:01","guid":{"rendered":"https:\/\/www.luxflat-direct.com\/aide\/verification-de-votre-dossier\/"},"modified":"2026-09-24T18:54:32","modified_gmt":"2026-09-24T18:54:32","slug":"verification-de-votre-dossier","status":"publish","type":"page","link":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/","title":{"rendered":"V\u00e9rification de votre dossier"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1433\" class=\"elementor elementor-1433 elementor-bc-flex-widget\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7036737 e-con-full e-flex e-con e-parent\" data-id=\"7036737\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a5110b elementor-widget elementor-widget-html\" data-id=\"2a5110b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- LuxFlat Direct shared assets \u2014 loaded once per page. Do not duplicate per section. -->\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@600;700&display=swap');\n\/* ==========================================================================\n   LuxFlat Direct \u2014 shared page styles\n   Loaded ONCE per page. Every rule is scoped under .lfd so nothing here can\n   leak into the Elementor theme, header or footer.\n   ========================================================================== *\/\n\n.lfd {\n  --lfd-navy: #14203A;\n  --lfd-bronze: #A9822E;\n  --lfd-forest: #334A2E;\n  --lfd-cream: #F5F3EE;\n  --lfd-muted: #6B6B60;\n  --lfd-border: #E8E4DC;\n  --lfd-danger: #B03A2E;\n  --lfd-forest-bg: #E8F0E8;\n  --lfd-danger-bg: #F7E9E6;\n  --lfd-bronze-bg: #F3EBD8;\n\n  \/* Fraunces + Inter are enqueued site-wide by the theme. Playfair Display is NOT \u2014\n     it is loaded by the @font-face import at the top of this stylesheet (2026-09-11).\n     TWO serif roles, matching the design system's own two tokens:\n       --lfd-serif          = Fraunces      -> `--font-fraunces`     : H1 only, plus the\n                                               two numeric accents (stat numbers, the\n                                               numbered circles), which the design also\n                                               sets in Fraunces.\n       --lfd-serif-display  = Playfair      -> `--font-serif-display`: every h2 and h3 and\n                                               all the card\/section display titles.\n     The one deliberate crossover: the Help Centre hero H1 is Playfair, because its design\n     source sets it that way (desktop AND mobile). *\/\n  --lfd-serif: 'Fraunces', Georgia, 'Times New Roman', serif;\n  --lfd-serif-display: 'Playfair Display', Georgia, 'Times New Roman', serif;\n  --lfd-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n\n  --lfd-maxw: 1200px;\n  --lfd-pad: 40px;\n\n  font-family: var(--lfd-sans);\n  color: var(--lfd-navy);\n  -webkit-font-smoothing: antialiased;\n}\n\n\/* Elementor injects its own margins on widget wrappers; neutralise inside .lfd *\/\n.lfd *, .lfd *::before, .lfd *::after { box-sizing: border-box; }\n\/* Any explicit display: rule below would otherwise beat the UA [hidden] style. *\/\n.lfd [hidden], .lfd[hidden] { display: none !important; }\n\/* Element resets are wrapped in :where(): `.lfd p` (0-1-1) out-specified every .lfd-* rule below (0-1-0), so\n   .lfd-h2 \/ .lfd-lede \/ .lfd-stat__l \/ .lfd-hoods__label margins and\n   .lfd-btn--primary's colour were all silently dropped. :where() contributes zero\n   specificity, so these resets sit at (0-1-0) and lose to the later component rules. *\/\n.lfd :where(p, h1, h2, h3, h4, ul, ol) { margin: 0; }\n.lfd :where(ul, ol) { padding: 0; list-style: none; }\n.lfd :where(img) { max-width: 100%; display: block; }\n.lfd :where(a) { text-decoration: none; color: inherit; }\n\n\/* ---------- layout ---------- *\/\n.lfd-band { width: 100%; overflow-x: clip; }\n.lfd-band--white  { background: #fff; }\n.lfd-band--cream  { background: var(--lfd-cream); }\n.lfd-band--navy   { background: var(--lfd-navy); }\n.lfd-wrap { max-width: var(--lfd-maxw); margin: 0 auto; padding: 0 var(--lfd-pad); }\n.lfd-wrap--narrow { max-width: 760px; }\n\n.lfd-pad-lg { padding-top: 104px; padding-bottom: 104px; }\n.lfd-pad-md { padding-top: 80px;  padding-bottom: 80px; }\n.lfd-pad-sm { padding-top: 56px;  padding-bottom: 56px; }\n\n\/* ---------- type ---------- *\/\n.lfd-eyebrow {\n  font: 500 11px\/1 var(--lfd-sans);\n  letter-spacing: .14em; text-transform: uppercase;\n  color: var(--lfd-bronze);\n}\n.lfd-h1 { font: 600 42px\/1.15 var(--lfd-serif); color: #fff; }\n.lfd-h2 { font: 600 36px\/1.2 var(--lfd-serif-display); color: var(--lfd-navy); margin-top: 8px; }\n.lfd-h3 { font: 600 20px\/1.3 var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-lede { font: 400 15px\/1.6 var(--lfd-sans); color: rgba(255,255,255,.68); margin-top: 14px; max-width: 560px; }\n.lfd-body { font: 400 14px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-crumb { font: 400 13px\/1 var(--lfd-sans); color: rgba(255,255,255,.5); margin-bottom: 16px; }\n.lfd-crumb strong { color: rgba(255,255,255,.8); font-weight: 400; }\n\n\/* ---------- buttons ---------- *\/\n.lfd-btn {\n  display: inline-block; border: none; cursor: pointer;\n  border-radius: 8px; padding: 14px 28px;\n  font: 500 15px\/1 var(--lfd-sans); text-align: center;\n  transition: background 150ms ease-out, opacity 150ms ease-out;\n}\n.lfd-btn--primary { background: var(--lfd-bronze); color: #fff; box-shadow: 0 4px 16px rgba(169,130,46,.35); }\n.lfd-btn--primary:hover { background: #96742a; color: #fff; }\n.lfd-btn--ghost { background: transparent; color: #fff; border: 1px solid #fff; padding: 10px 18px; font-size: 13px; }\n.lfd-btn--ghost:hover { background: rgba(255,255,255,.12); color: #fff; }\n.lfd-btn--sm { padding: 10px 18px; font-size: 13px; }\n\n\/* ---------- hero ---------- *\/\n.lfd-hero { position: relative; display: flex; align-items: center; min-height: 680px; overflow: hidden; }\n\/* `.lfd`-prefixed (0-2-0) so `height:100%` beats Elementor's `.elementor img { height: auto }`\n   (0-1-1) in frontend.min.css. Unprefixed (0-1-0) it lost, and because an <img> is a replaced\n   element `height:auto` resolves to the intrinsic height rather than stretching to inset:0 \u2014\n   the image rendered 1295px tall in a 640px hero, top-anchored, so `object-fit: cover` never\n   centred it and the design's centre crop showed as a zoomed-in top slice. *\/\n.lfd .lfd-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-hero__scrim { position: absolute; inset: 0;\n  background: linear-gradient(90deg, rgba(20,32,58,.75) 0%, rgba(20,32,58,.30) 100%); }\n.lfd-hero__inner { position: relative; width: 100%; }\n.lfd-hero__copy { max-width: 580px; }\n\/* how-it-works hero \u2014 a shorter photo band than for-landlords' full-height `.lfd-hero`.\n   The design gives it `padding:56px 0 96px` and no min-height, so the toggle pill below\n   can pull up into it with `margin-top:-32px`. Renamed from the old \"flat\" modifier,\n   which was a plain navy block until the 2026-08-30 design update put a photo behind it. *\/\n.lfd-hero--band { position: relative; overflow: hidden; display: block; min-height: 0;\n  background: var(--lfd-navy); padding: 56px 0 96px; }\n\/* The design's scrim here is 3-stop and lighter than the 2-stop `.lfd-hero__scrim`\n   for-landlords uses, so it is scoped to this band rather than changing the shared rule. *\/\n.lfd-hero--band .lfd-hero__scrim { background: linear-gradient(90deg,\n  rgba(20,32,58,.90) 0%, rgba(20,32,58,.62) 55%, rgba(20,32,58,.35) 100%); }\n\/* design: 40px, where the shared `.lfd-h1` is 42px. *\/\n.lfd-hero--band .lfd-h1 { font-size: 40px; }\n\n\/* ---------- hero spanning two Elementor widgets (for-tenants) ----------\n   for-tenants' hero holds the live         <div class=\"p2p-home-search-wrap\" data-p2p-home-search>\n            <button\n                class=\"p2p-home-search-trigger\"\n                type=\"button\"\n                aria-expanded=\"false\"\n                aria-controls=\"p2p-home-search-modal-1\"\n            >\n                <span class=\"p2p-home-search-trigger__copy\">\n                    <span class=\"p2p-home-search-trigger__primary\" data-p2p-search-summary-location>Anywhere<\/span>\n                    <span class=\"p2p-home-search-trigger__secondary\">\n                        <span data-p2p-search-summary-date>Move in<\/span>\n                        <span aria-hidden=\"true\"> \u00b7 <\/span>\n                        <span data-p2p-search-summary-duration>3 months<\/span>\n                        <span aria-hidden=\"true\"> \u00b7 <\/span>\n                        <span data-p2p-search-summary-budget>Any budget<\/span>\n                    <\/span>\n                <\/span>\n                <span class=\"p2p-home-search-trigger__go\" aria-hidden=\"true\">\n                    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" focusable=\"false\">\n                        <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"2\"><\/circle>\n                        <path d=\"M20 20L16.2 16.2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path>\n                    <\/svg>\n                <\/span>\n            <\/button>\n\n            <div\n                id=\"p2p-home-search-modal-1\"\n                class=\"p2p-home-search-modal\"\n                data-p2p-search-modal\n            >\n                <button class=\"p2p-home-search-modal__backdrop\" type=\"button\" tabindex=\"-1\" aria-label=\"Close search\" data-p2p-search-close><\/button>\n                <div class=\"p2p-home-search-modal__sheet\" data-p2p-search-sheet data-p2p-search-labelledby=\"p2p-home-search-title-1\">\n                    <div class=\"p2p-home-search-modal__handle\" aria-hidden=\"true\"><\/div>\n                    <div class=\"p2p-home-search-modal__header\">\n                        <h2 id=\"p2p-home-search-title-1\">Find accommodation<\/h2>\n                        <button class=\"p2p-home-search-modal__close\" type=\"button\" aria-label=\"Close search\" data-p2p-search-close>&times;<\/button>\n                    <\/div>\n\n                    <form class=\"p2p-home-search\" action=\"https:\/\/www.luxflat-direct.com\/fr\/apartments\/\" method=\"get\">\n                        <input type=\"hidden\" name=\"p2p_home_search\" value=\"1\">\n\n                        <div class=\"p2p-home-search__field p2p-home-search__field--location\">\n                            <label for=\"p2p-home-search-1-location\">Location<\/label>\n                            <select id=\"p2p-home-search-1-location\" name=\"location\" data-p2p-search-location>\n                                <option value=\"\">Anywhere<\/option>\n                                                                    <optgroup label=\"Luxembourg\">\n                                        <option value=\"city:1\">\n                                            All Luxembourg                                        <\/option>\n                                                                                    <option value=\"area:10\">Belair<\/option>\n                                                                                    <option value=\"area:4\">Bonnevoie<\/option>\n                                                                                    <option value=\"area:5\">center<\/option>\n                                                                                    <option value=\"area:13\">Cents<\/option>\n                                                                                    <option value=\"area:11\">Cessange<\/option>\n                                                                                    <option value=\"area:12\">Differdange<\/option>\n                                                                                    <option value=\"area:15\">Esch-sur-Alzette<\/option>\n                                                                                    <option value=\"area:3\">Gare<\/option>\n                                                                                    <option value=\"area:1\">Gasperich<\/option>\n                                                                                    <option value=\"area:17\">Hamm<\/option>\n                                                                                    <option value=\"area:14\">Hesperange<\/option>\n                                                                                    <option value=\"area:8\">Hollerich<\/option>\n                                                                                    <option value=\"area:9\">Kirchberg<\/option>\n                                                                                    <option value=\"area:6\">Limpertsberg<\/option>\n                                                                                    <option value=\"area:16\">Mamer<\/option>\n                                                                                    <option value=\"area:7\">Merl<\/option>\n                                                                            <\/optgroup>\n                                                                    <optgroup label=\"Thionville\">\n                                        <option value=\"city:3\">\n                                            All Thionville                                        <\/option>\n                                                                            <\/optgroup>\n                                                            <\/select>\n                            <span class=\"p2p-home-search__hint\">City or neighbourhood<\/span>\n                        <\/div>\n\n                        <div class=\"p2p-home-search__field\">\n                            <label for=\"p2p-home-search-1-move-in\">Move in<\/label>\n                            <input id=\"p2p-home-search-1-move-in\" type=\"date\" name=\"move_in\" min=\"2026-10-05\" data-p2p-search-date>\n                        <\/div>\n\n                        <div class=\"p2p-home-search__field\">\n                            <label for=\"p2p-home-search-1-duration\">Duration<\/label>\n                            <input id=\"p2p-home-search-1-duration\" type=\"number\" min=\"1\" step=\"1\" inputmode=\"numeric\" name=\"duration\" value=\"3\" data-p2p-search-duration>\n                            <span class=\"p2p-home-search__hint\">1 month minimum<\/span>\n                        <\/div>\n\n                        <div class=\"p2p-home-search__field p2p-home-search__field--budget\">\n                            <label for=\"p2p-home-search-1-budget\">Max budget<\/label>\n                            <div class=\"p2p-home-search__budget-wrap\">\n                                <span aria-hidden=\"true\">\u20ac<\/span>\n                                <input id=\"p2p-home-search-1-budget\" type=\"number\" min=\"0\" step=\"50\" inputmode=\"numeric\" name=\"max_budget\" placeholder=\"1800\" data-p2p-search-budget>\n                            <\/div>\n                            <span class=\"p2p-home-search__hint\">per month<\/span>\n                        <\/div>\n\n                        <div class=\"p2p-home-search__submit\">\n                            <button type=\"submit\" aria-label=\"Search rentals\">\n                                <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\n                                    <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" stroke-width=\"2\"><\/circle>\n                                    <path d=\"M20 20L16.2 16.2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path>\n                                <\/svg>\n                                <span>Search<\/span>\n                            <\/button>\n                        <\/div>\n                    <\/form>\n                <\/div>\n            <\/div>\n        <\/div>\n         shortcode, which must stay a\n   real Elementor shortcode widget \u2014 so the hero copy and the search bar are two\n   sibling widgets. They now sit in ONE Elementor container, and that container is\n   the hero: it carries the min-height, the padding and `overflow:hidden`, and the\n   backdrop <img> stretches to `inset:0` against it, so a single image covers both\n   widgets. Previously they were two containers, so the image ended at the bottom of\n   the copy and the page background (#ECEDE8) showed through beside the 980px search\n   bar \u2014 the reported right-hand seam.\n\n   These three rules are the only ones in this file NOT scoped under `.lfd`: they\n   style Elementor's own container\/widget wrappers, reached via `_css_classes` set\n   on the elements in build.py. The `lfd-` prefix keeps them from colliding. *\/\n.e-con.lfd-hero-con { position: relative; overflow: hidden;\n  min-height: 640px; justify-content: center; padding: 96px 0; gap: 28px; }\n\/* Elementor sets `position:relative` on every `.elementor-widget`, which would make\n   the copy widget \u2014 not the container \u2014 the <img>'s containing block, collapsing the\n   backdrop back onto the copy alone. Static here hands the containing block back. *\/\n.lfd-hero-con > .elementor-widget.lfd-hero-w { position: static; }\n\/* `--lfd-maxw` \/ `--lfd-pad` are declared on `.lfd`, which is *inside* this element, so\n   the 1200\/40px gutter is repeated literally here to line the bar up with the copy.\n   `max-width` and `margin:auto` are NOT usable on this element: something in the Elementor\n   stack pins the widget to `max-width:100%` \/ `margin:0` at a specificity that even\n   `.lfd-hero-con > .elementor-widget.lfd-hero-search-w` (0-3-0) loses to \u2014 only an inline\n   style won it. Padding *does* apply, so the centred 1200px column is expressed as padding\n   instead, and the bar itself is sized on the plugin's own elements inside it. *\/\n.lfd-hero-con > .lfd-hero-search-w { position: relative; z-index: 1; box-sizing: border-box;\n  padding-left:  calc(max(0px, (100% - 1200px) \/ 2) + 40px);\n  padding-right: calc(max(0px, (100% - 1200px) \/ 2) + 40px); }\n\/* Design (For-Tenants.dc.html:292) renders the bar 850px wide, left-aligned with the copy \u2014\n   NOT the full 1120px content column. The plugin ships `width: min(980px, 100%)` on both of\n   these elements (home-search.css:7 and :31), so both have to be overridden. *\/\n.lfd-hero-con .p2p-home-search-wrap,\n.lfd-hero-con .p2p-home-search { width: 850px; max-width: 100%; }\n.lfd-hero__stack { position: static; }\n.lfd-hero-con .lfd-hero__img, .lfd-hero-con .lfd-hero__scrim { z-index: 0; }\n.lfd-hero-con .lfd-hero__inner { z-index: 1; }\n\n\/* hero: copy beside the floating dossier card (for-landlords) *\/\n.lfd-hero__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }\n.lfd-dossier { background: #fff; border-radius: 12px; box-shadow: 0 16px 40px rgba(20,32,58,.30);\n  padding: 16px; width: 320px; box-sizing: border-box; flex-shrink: 0; }\n.lfd-dossier__top { display: flex; align-items: center; gap: 10px; }\n.lfd-dossier__avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--lfd-navy); color: #fff;\n  display: flex; align-items: center; justify-content: center; font: 600 16px var(--lfd-sans); flex-shrink: 0; }\n.lfd-dossier__name { font: 600 15px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-dossier__meta { font: 400 12px var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-dossier__tag { background: var(--lfd-forest-bg); color: var(--lfd-forest); border-radius: 20px;\n  padding: 5px 10px; font: 500 11px var(--lfd-sans); display: flex; align-items: center; gap: 4px; white-space: nowrap; }\n.lfd-dossier__btns { display: flex; gap: 8px; margin-top: 14px; }\n.lfd .lfd-dossier__btn { flex: 1; border-radius: 8px; padding: 9px 0; font: 700 13px var(--lfd-sans); cursor: pointer; }\n.lfd .lfd-dossier__btn--no,\n.lfd .lfd-dossier__btn--no:hover  { background: transparent; border: 1px solid var(--lfd-danger); color: var(--lfd-danger); }\n.lfd .lfd-dossier__btn--yes,\n.lfd .lfd-dossier__btn--yes:hover { background: var(--lfd-forest); border: none; color: #fff; }\n\n\/* feature strip (for-landlords, below the hero) *\/\n.lfd-features { max-width: 1100px; margin: 0 auto; display: flex; gap: 48px; text-align: center; }\n.lfd-features__item { flex: 1; display: flex; flex-direction: column; align-items: center;\n  padding: 0 24px; border-right: 1px solid var(--lfd-border); }\n.lfd-features__item:last-child { border-right: 0; }\n.lfd-features__t { font: 500 14px\/1.5 var(--lfd-sans); color: var(--lfd-navy); max-width: 220px; }\n\n\/* ---------- neighbourhood trust strip (for-landlords) ---------- *\/\n.lfd-hoods-band { border-bottom: 1px solid var(--lfd-border); padding: 32px 0; }\n.lfd-hoods__label {\n  \/* design: font:500 12px var(--font-sans) \u2014 no line-height override, so `normal`. *\/\n  font: 500 12px var(--lfd-sans);\n  letter-spacing: .1em; text-transform: uppercase;\n  color: var(--lfd-muted); text-align: center; margin-bottom: 16px;\n}\n.lfd-hoods { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }\n.lfd-hoods__chip {\n  background: var(--lfd-cream); color: var(--lfd-navy);\n  font: 500 13px\/1 var(--lfd-sans); border-radius: 20px; padding: 8px 16px;\n}\n\n\/* ---------- stats ---------- *\/\n.lfd-stats { display: flex; justify-content: center; gap: 64px; flex-wrap: wrap; }\n.lfd-stat { text-align: center; }\n.lfd-stat__n { font: 700 36px\/1 var(--lfd-serif); color: var(--lfd-navy); }\n.lfd-stat--on-navy .lfd-stat__n { color: #fff; }\n.lfd-stat__l { font: 400 13px\/1.4 var(--lfd-sans); color: var(--lfd-muted); max-width: 190px; margin: 8px auto 0; }\n.lfd-stat--on-navy .lfd-stat__l { color: rgba(255,255,255,.65); }\n\n\/* ---------- cards grid ---------- *\/\n.lfd-grid { display: grid; gap: 24px; }\n\/* Without this a wide child (e.g. a fixed-max-width image) sets the column's\n   min-content width and forces horizontal overflow on narrow screens. *\/\n.lfd-grid > * { min-width: 0; }\n.lfd-trust__item, .lfd-cta, .lfd-step > div { min-width: 0; }\n.lfd-grid--3 { grid-template-columns: repeat(3, 1fr); }\n.lfd-grid--4 { grid-template-columns: repeat(4, 1fr); }\n.lfd-grid--2 { grid-template-columns: repeat(2, 1fr); }\n\n.lfd-card { background: #fff; border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; }\n.lfd-card__media { aspect-ratio: 4\/3; overflow: hidden; }\n.lfd-card__media img { width: 100%; height: 100%; object-fit: cover; }\n\/* wide UI screenshot shown whole (landlords step 2), letterboxed on the screenshot's own background *\/\n.lfd-card__media--contain { background-color: #EEEFEA; }\n.lfd-card__media--contain img { object-fit: contain; }\n\/* real portal screenshots (how-it-works tenant strip): letterbox on the portal's page background *\/\n.lfd-card__media--ui { background-color: #E7E9E2; }\n\/* 4:3 product visuals in a 16:9 cell (how-it-works landlord strip): keep the floating UI cards at the top *\/\n.lfd-card__media--top img { object-position: top center; }\n.lfd-card__body { padding: 20px; }\n\n\/* ---------- audience card (for-tenants \"Who it's for\") ----------\n   Design: For-Tenants.dc.html:338 \u2014 a 3:4 photo tile with a navy gradient and the copy\n   sitting ON the image in white. This is deliberately NOT `.lfd-card` (white card, 4:3\n   media box, dark copy below it), which for-landlords' step cards and the help-centre\n   cards still use \u2014 that treatment is what made this section read as off-system. *\/\n.lfd-acard { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 3\/4; }\n\/* same `.elementor img { height: auto }` trap as .lfd-hero__img \u2014 keep `.lfd`-prefixed. *\/\n.lfd .lfd-acard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-acard__scrim { position: absolute; inset: 0; background: linear-gradient(to bottom,\n  rgba(20,32,58,.15) 0%, rgba(20,32,58,.35) 35%, rgba(20,32,58,.96) 100%); }\n.lfd-acard__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 16px; }\n.lfd-acard__t { font: 600 17px\/1.3 var(--lfd-serif-display); color: #fff; }\n.lfd-acard__b { font: 400 12px\/1.5 var(--lfd-sans); color: rgba(255,255,255,.85);\n  margin-top: 8px; padding-bottom: 4px; }\n.lfd-acard__more { display: inline-block; margin-top: 8px; font: 500 12px var(--lfd-sans);\n  color: #fff; text-decoration: underline; }\n\n\/* ---------- trust strip ---------- *\/\n.lfd-trust { display: flex; gap: 48px; flex-wrap: wrap; justify-content: space-between; }\n.lfd-trust__item { display: flex; gap: 12px; align-items: flex-start; flex: 1 1 240px; }\n.lfd-trust__t { font: 600 14px\/1.3 var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-trust__d { font: 400 13px\/1.5 var(--lfd-sans); color: var(--lfd-muted); margin-top: 3px; }\n\n\/* ---------- numbered steps ---------- *\/\n.lfd-steps { position: relative; margin-top: 40px; display: flex; flex-direction: column; gap: 32px; }\n.lfd-steps__rail { position: absolute; left: 17px; top: 18px; bottom: 18px; width: 1px; background: var(--lfd-border); }\n.lfd-step { display: flex; gap: 24px; align-items: flex-start; }\n.lfd-step__n {\n  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0; z-index: 1;\n  display: flex; align-items: center; justify-content: center;\n  font: 700 15px\/1 var(--lfd-serif); color: #fff;\n  background: var(--lfd-bronze); box-shadow: 0 4px 10px rgba(0,0,0,.15);\n}\n.lfd-step--forest .lfd-step__n { background: var(--lfd-forest); }\n.lfd-step__head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }\n.lfd-step__body { max-width: 480px; }\n\n\/* ---------- comparison table ---------- *\/\n.lfd-compare { width: 100%; max-width: 760px; margin: 32px auto 0; border-collapse: collapse;\n  background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(20,32,58,.08); }\n.lfd-compare th, .lfd-compare td { text-align: left; padding: 14px 20px; font: 400 14px\/1.5 var(--lfd-sans); }\n.lfd-compare thead tr { background: var(--lfd-navy); }\n.lfd-compare thead th { font-weight: 500; color: #fff; font-size: 13px; }\n.lfd-compare tbody tr { border-bottom: 1px solid var(--lfd-border); }\n.lfd-compare tbody tr:last-child { border-bottom: none; }\n.lfd-compare tbody tr:nth-child(even) { background: #FAFAF8; }\n.lfd-compare td:first-child { color: var(--lfd-navy); font-weight: 500; }\n.lfd-compare .lfd-yes { color: var(--lfd-forest); font-weight: 500; }\n.lfd-compare .lfd-no  { color: var(--lfd-muted); }\n\/* icon + value, per design: check before the LuxFlat column, dash before Agency *\/\n.lfd-compare__v { display: flex; align-items: center; gap: 8px; }\n.lfd-compare__v svg { flex-shrink: 0; }\n\n\/* ---------- FAQ accordion ---------- *\/\n.lfd-faq { display: flex; flex-direction: column; gap: 14px; margin-top: 32px; }\n.lfd-faq__item { background: #fff; border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; }\n\/* `.lfd`-prefixed (0-2-0) so it beats the theme's `.elementor-kit-7 button` (0-1-1),\n   which otherwise repaints every FAQ row navy-on-white. Same for the dossier and\n   toggle buttons below; border-radius\/padding are restated because the kit sets those too. *\/\n.lfd .lfd-faq__q {\n  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px;\n  padding: 20px; background: none; border: none; border-radius: 0; cursor: pointer; text-align: left;\n  font: 600 15px\/1.4 var(--lfd-serif-display); color: var(--lfd-navy);\n}\n.lfd .lfd-faq__q:hover, .lfd .lfd-faq__q:focus { background: #FCFBF9; color: var(--lfd-navy); }\n.lfd-faq__chev { flex-shrink: 0; color: var(--lfd-muted); transition: transform 150ms ease-out, color 150ms ease-out; }\n.lfd-faq__item.is-open .lfd-faq__chev { transform: rotate(180deg); color: var(--lfd-bronze); }\n.lfd-faq__a { display: none; padding: 0 20px 20px; font: 400 14px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-faq__item.is-open .lfd-faq__a { display: block; }\n\n\/* ---------- tenant \/ landlord toggle ---------- *\/\n\/* The pill is lifted so it straddles the hero's bottom edge. `--lfd-toggle-lift` is the\n   overlap: everything above it sits over the hero, everything below hangs past it.\n\n   That lower part needs a background. In the design the whole page sits inside one\n   `background:#fff` wrapper, so the strip below the hero is white. Here each section is\n   its own Elementor container with no background, so the theme's page background\n   (#ECEDE8) showed through as a full-width band at the seam \u2014 cut into segments by the\n   white pill and its bronze button.\n\n   It is filled by a pseudo-element with a background-COLOR, NOT by a gradient on the rail\n   itself. Elementor's background lazy-load ships this, inline in every page's <head>:\n\n     .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),\n     .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) *\n       { background-image: none !important; }\n\n   ...with `n+3` under `max-height:1024px` and `n+2` under `max-height:640px`. The journey\n   container is the 3rd on this page, so on any viewport shorter than 1024px a gradient\n   here is stripped until Elementor marks the container `.e-lazyloaded` on scroll \u2014 which\n   is exactly when the seam is on screen. `background-color` is untouched by that rule, and\n   pseudo-elements are not matched by its `*` either, so this survives both ways. *\/\n.lfd-toggle-rail {\n  --lfd-toggle-lift: 32px;\n  display: flex; justify-content: center; padding: 0 var(--lfd-pad);\n  margin-top: calc(-1 * var(--lfd-toggle-lift));\n  position: relative; z-index: 2;\n}\n.lfd-toggle-rail::before {\n  content: ''; position: absolute; z-index: -1;\n  left: 0; right: 0; top: var(--lfd-toggle-lift); bottom: 0;\n  background-color: #fff;\n}\n.lfd-toggle {\n  background: #fff; border-radius: 30px; box-shadow: 0 8px 24px rgba(20,32,58,.15);\n  display: flex; padding: 4px; width: 420px; max-width: 100%;\n}\n.lfd .lfd-toggle__btn {\n  flex: 1; border: none; background: transparent; cursor: pointer;\n  border-radius: 26px; padding: 12px 0;\n  font: 500 14px\/1 var(--lfd-sans); color: var(--lfd-navy);\n  transition: background 150ms ease-out, color 150ms ease-out;\n}\n.lfd .lfd-toggle__btn[aria-selected=\"true\"] { background: var(--lfd-bronze); color: #fff; }\n\n\/* ---------- dual CTA ---------- *\/\n.lfd-ctas { display: flex; gap: 24px; }\n.lfd-cta {\n  flex: 1; position: relative; border-radius: 12px; overflow: hidden; min-height: 280px;\n  display: flex; flex-direction: column; justify-content: center; padding: 32px;\n}\n\/* same `.elementor img { height: auto }` trap as .lfd-hero__img above \u2014 keep `.lfd`-prefixed. *\/\n.lfd .lfd-cta__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-cta__scrim { position: absolute; inset: 0; }\n.lfd-cta__scrim--bronze { background: linear-gradient(135deg, rgba(169,130,46,.88), rgba(169,130,46,.75)); }\n.lfd-cta__scrim--navy   { background: linear-gradient(135deg, rgba(20,32,58,.90), rgba(20,32,58,.78)); }\n.lfd-cta__body { position: relative; }\n.lfd-cta__t { font: 600 22px\/1.25 var(--lfd-serif-display); color: #fff; }\n\n\/* ---------- help centre ----------\n   Rebuilt 2026-08-30 from the DesignSync `Help Centre.dc.html`, which replaced the flat\n   \"Popular articles\" link list with a \"Popular Frequently Asked Questions\" accordion beside\n   a phone mock. Every value here was measured off the design rendered at 1905px (see\n   \"Measured against the design\" in the README), not read off its inline style attributes. *\/\n\n\/* hero \u2014 centred, photo backdrop + navy scrim + bronze radial glow *\/\n.lfd-help-hero { position: relative; overflow: hidden; padding: 80px 40px; text-align: center;\n  background: var(--lfd-navy); }\n\/* `.lfd`-prefixed (0-2-0) so `height:100%` beats Elementor's `.elementor img{height:auto}`\n   (0-1-1) \u2014 same replaced-element trap documented on `.lfd-hero__img` above. *\/\n.lfd .lfd-help-hero__img { position: absolute; inset: 0; width: 100%; height: 100%;\n  object-fit: cover; filter: blur(2px); }\n.lfd-help-hero__scrim { position: absolute; inset: 0;\n  background: linear-gradient(180deg, rgba(20,32,58,.92) 0%, rgba(20,32,58,.80) 100%); }\n.lfd-help-hero__glow { position: absolute; left: 50%; top: 30%; transform: translate(-50%,-50%);\n  width: 420px; height: 420px; pointer-events: none;\n  background: radial-gradient(circle, rgba(169,130,46,.30) 0%, rgba(169,130,46,0) 70%); }\n.lfd-help-hero__inner { position: relative; }\n.lfd-help-hero__h1 { font: 700 38px\/1.15 var(--lfd-serif-display); color: #fff; margin-top: 10px; }\n.lfd-help-hero__p { font: 400 15px\/1.6 var(--lfd-sans); color: rgba(255,255,255,.68); margin-top: 10px; }\n\n.lfd-help-search { position: relative; max-width: 560px; margin: 24px auto 0; }\n.lfd-help-search__icon { position: absolute; left: 20px; top: 50%; transform: translateY(-50%);\n  color: rgba(255,255,255,.75); pointer-events: none; z-index: 1; display: flex; }\n.lfd-help-search input {\n  width: 100%; height: 56px; border-radius: 10px;\n  border: 1px solid rgba(255,255,255,.35); padding: 0 20px 0 52px;\n  font: 400 15px var(--lfd-sans); color: #fff;\n  background: rgba(255,255,255,.14);\n  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);\n  box-shadow: 0 8px 24px rgba(20,32,58,.30); outline: none;\n}\n.lfd-help-search input::placeholder { color: rgba(255,255,255,.65); }\n.lfd-help-search input:focus { border-color: var(--lfd-bronze); background: rgba(255,255,255,.20); }\n\n\/* topic cards \u2014 two photo tiles over four colour tiles *\/\n.lfd-tcards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 32px; }\n.lfd-tcard { position: relative; display: block; border-radius: 12px; overflow: hidden; min-height: 180px; }\n.lfd .lfd-tcard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-tcard__scrim { position: absolute; inset: 0; pointer-events: none;\n  background: linear-gradient(to bottom, rgba(20,32,58,.05) 0%, rgba(20,32,58,.85) 100%); }\n.lfd-tcard__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px; }\n.lfd-tcard__t { font: 600 18px\/1.3 var(--lfd-serif-display); color: #fff; }\n.lfd-tcard__d { font: 400 13px\/1.5 var(--lfd-sans); color: rgba(255,255,255,.80); margin-top: 6px; }\n\n\/* 3 tiles since 2026-09-14 \u2014 one clean row of three. *\/\n.lfd-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 20px; }\n.lfd-tile { display: block; border: 1px solid var(--lfd-border); border-radius: 12px; padding: 28px;\n  box-shadow: 0 2px 12px rgba(20,32,58,.06); transition: box-shadow 150ms ease-out; }\n.lfd-tile:hover { box-shadow: 0 8px 22px rgba(20,32,58,.12); }\n.lfd-tile__ico { display: block; margin-bottom: 16px; }\n.lfd-tile__t { font: 600 18px\/1.3 var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-tile__d { font: 400 13px\/1.5 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n\/* `.lfd-tile__n` \/ `.lfd-tcard__n` (article counts) removed 2026-09-14. The tile keeps its\n   28px padding on all four sides, so with icon + title + description it still closes\n   evenly; the photo card's body is bottom-anchored, so it simply sits a line lower. *\/\n\n\/* \"Popular Frequently Asked Questions\" accordion \u2014 help-centre only.\n   Deliberately NOT `.lfd-faq` (for-landlords \/ for-tenants \/ how-it-works use that one):\n   this design gives each row a leading document icon, a RIGHT-pointing chevron that\n   rotates 90deg open (not a down chevron rotating 180deg), 10px radius and 16px padding. *\/\n.lfd-hfaq__row { display: flex; gap: 32px; margin-top: 32px; align-items: flex-start; }\n.lfd-hfaq { flex: 0 0 60%; min-width: 0; display: flex; flex-direction: column; gap: 12px; }\n.lfd-hfaq__item { background: #fff; border: 1px solid var(--lfd-border); border-radius: 10px; overflow: hidden; }\n\/* `.lfd`-prefixed (0-2-0) so it beats the theme's `.elementor-kit-7 button` (0-1-1), which\n   otherwise repaints the row navy-on-white and re-applies the kit's own radius and padding. *\/\n.lfd .lfd-hfaq__q { width: 100%; display: flex; align-items: center; gap: 12px; padding: 16px;\n  background: none; border: none; border-radius: 0; cursor: pointer; text-align: left;\n  \/* `color` is restated because the kit also sets it: without this the button inherits\n     the kit's #fff and any text placed directly in it renders white-on-white. The three\n     children all set their own colour, so this is belt-and-braces, not a live bug. *\/\n  color: var(--lfd-navy); }\n.lfd .lfd-hfaq__q:hover, .lfd .lfd-hfaq__q:focus { background: #FCFBF9; }\n.lfd-hfaq__ico { flex-shrink: 0; display: block; color: var(--lfd-navy); }\n.lfd-hfaq__t { flex: 1; font: 500 15px\/1.4 var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-hfaq__chev { flex-shrink: 0; color: var(--lfd-muted); transition: transform 200ms ease-out; }\n.lfd-hfaq__item.is-open .lfd-hfaq__chev { transform: rotate(90deg); }\n.lfd-hfaq__a { display: none; padding: 0 16px 16px 46px;\n  font: 400 14px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-hfaq__item.is-open .lfd-hfaq__a { display: block; }\n\n\/* phone mock beside the accordion *\/\n.lfd-phone-col { flex: 0 0 40%; min-width: 0; display: flex; flex-direction: column;\n  align-items: center; padding-top: 20px; }\n.lfd-phone { position: relative; width: 204px; border-radius: 44px; padding: 5px;\n  background: linear-gradient(135deg, #3a3b3d 0%, #161718 50%, #000 100%);\n  box-shadow: 0 30px 50px rgba(0,0,0,.28); }\n.lfd-phone__bez { position: relative; overflow: hidden; background: #000; border-radius: 39px; padding: 3px; }\n.lfd-phone__notch { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); z-index: 2;\n  width: 44px; height: 14px; border-radius: 8px; background: #000; border: 1px solid #1c1d1f; }\n.lfd-phone__screen { height: 383px; overflow: hidden; border-radius: 36px; padding-top: 27px;\n  background: var(--lfd-cream); }\n.lfd-phone__hdr { background: var(--lfd-navy); padding: 14px 17px 17px; }\n.lfd-phone__hdr-t { font: 600 15px\/1.3 var(--lfd-serif-display); color: #fff; }\n.lfd-phone__list { padding: 14px; }\n.lfd-phone__row { display: flex; align-items: center; gap: 10px; background: #fff;\n  border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }\n.lfd-phone__av { width: 27px; height: 27px; border-radius: 50%; flex-shrink: 0;\n  background: var(--lfd-navy); color: #fff; display: flex; align-items: center;\n  justify-content: center; font: 600 12px var(--lfd-sans); }\n.lfd-phone__nm { flex: 1; font: 600 12px var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-phone__ok { background: var(--lfd-forest-bg); color: var(--lfd-forest);\n  border-radius: 14px; padding: 2px 7px; font: 700 10px var(--lfd-sans); }\n.lfd-phone__cap { font: 400 14px\/1.5 var(--lfd-sans); color: var(--lfd-muted);\n  margin-top: 20px; text-align: center; }\n\n.lfd-noresults { padding: 28px 4px; font: 400 15px\/1.6 var(--lfd-sans); color: var(--lfd-muted); text-align: center; }\n\n\/* \"Still need help?\" \u2014 glass card on the same photo band as the hero *\/\n.lfd-support-band { position: relative; overflow: hidden; padding: 80px 0; background: var(--lfd-navy); }\n.lfd .lfd-support-band__img { position: absolute; inset: 0; width: 100%; height: 100%;\n  object-fit: cover; filter: blur(2px); }\n.lfd-support-band__scrim { position: absolute; inset: 0;\n  background: linear-gradient(180deg, rgba(20,32,58,.92) 0%, rgba(20,32,58,.80) 100%); }\n.lfd-support-band__glow { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);\n  width: 420px; height: 420px; pointer-events: none;\n  background: radial-gradient(circle, rgba(169,130,46,.30) 0%, rgba(169,130,46,0) 70%); }\n.lfd-support-wrap { position: relative; max-width: 800px; margin: 0 auto; padding: 0 40px; }\n.lfd-support { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35);\n  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);\n  border-radius: 12px; padding: 40px; text-align: center; box-shadow: 0 8px 32px rgba(20,32,58,.30); }\n.lfd-support__avs { display: flex; justify-content: center; margin-bottom: 12px; }\n.lfd-support__av { width: 40px; height: 40px; border-radius: 50%; background: var(--lfd-bronze);\n  color: #fff; display: flex; align-items: center; justify-content: center;\n  font: 600 15px var(--lfd-sans); border: 2px solid rgba(255,255,255,.5); }\n.lfd-support__av + .lfd-support__av { margin-left: -12px; }\n\/* 2026-09-14: the avatars are photos now. The circle keeps its 40px size, bronze fill (shown\n   only while the image loads) and 2px white ring; the photo fills it edge to edge. *\/\n.lfd-support__av { overflow: hidden; }\n.lfd .lfd-support__av-img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }\n.lfd-support__eyebrow { font: 400 12px\/1.4 var(--lfd-sans); color: rgba(255,255,255,.75); margin-bottom: 16px; }\n.lfd-support__t { font: 600 22px\/1.3 var(--lfd-serif-display); color: #fff; }\n.lfd-support__d { font: 400 14px\/1.6 var(--lfd-sans); color: rgba(255,255,255,.75); margin-top: 8px; }\n.lfd-support__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }\n\/* design: both CTAs are 12px 24px \/ 500 15px, giving the 44px height its Button hint asks for. *\/\n.lfd-support__btns .lfd-btn { padding: 12px 24px; font-size: 15px; }\n\n.lfd-btn--whatsapp { background: #25D366; color: #fff; display: inline-flex; align-items: center; gap: 8px; }\n.lfd-btn--whatsapp:hover { background: #1eb857; color: #fff; }\n\n\/* ==========================================================================\n   Responsive \u2014 the desktop and mobile .dc.html variants merged into one build\n   ========================================================================== *\/\n@media (max-width: 1024px) {\n  .lfd-grid--4 { grid-template-columns: repeat(2, 1fr); }\n  \/* Three tiles stay three-across on tablets (2+1 would orphan one); tighter padding. *\/\n  .lfd-tile { padding: 22px; }\n  .lfd-stats { gap: 40px; }\n}\n\n@media (max-width: 767px) {\n  .lfd { --lfd-pad: 18px; }\n\n  .lfd-pad-lg { padding-top: 56px; padding-bottom: 56px; }\n  .lfd-pad-md { padding-top: 44px; padding-bottom: 44px; }\n  .lfd-pad-sm { padding-top: 32px; padding-bottom: 32px; }\n\n  .lfd-h1 { font-size: 34px; }\n  .lfd-h2 { font-size: 24px; }\n  .lfd-h3 { font-size: 18px; }\n  .lfd-lede { font-size: 14px; }\n\n  .lfd-hero { min-height: 520px; }\n  .lfd-hero__scrim { background: linear-gradient(180deg, rgba(20,32,58,.55) 0%, rgba(20,32,58,.82) 100%); }\n  .lfd-hero--band { padding: 32px 0 64px; }\n  .lfd-hero--band .lfd-h1 { font-size: 30px; }\n  \/* mirrors `.lfd-hero` above; the 18px gutter mirrors `--lfd-pad` at this breakpoint. *\/\n  .e-con.lfd-hero-con { min-height: 520px; padding: 64px 0; }\n  .lfd-hero-con > .lfd-hero-search-w { padding: 0 18px; }\n\n  .lfd-btn { width: 100%; }\n  .lfd-btn--sm, .lfd-btn--ghost { width: auto; }\n\n  .lfd-grid--2, .lfd-grid--3, .lfd-grid--4 { grid-template-columns: 1fr; gap: 16px; }\n\n  .lfd-stats { gap: 28px; flex-direction: column; align-items: center; }\n  .lfd-hoods-band { border-top: 1px solid var(--lfd-border); padding: 24px 20px; }\n  .lfd-hoods__label { font-size: 11px; margin-bottom: 14px; }\n  .lfd-hoods { gap: 8px; }\n  .lfd-hoods__chip { font-size: 12px; padding: 7px 13px; }\n  .lfd-stat__l { max-width: 260px; }\n\n  .lfd-trust { flex-direction: column; gap: 20px; }\n\n  .lfd-hero__row { flex-direction: column; align-items: stretch; }\n  .lfd-dossier { width: 100%; }\n  .lfd-features { flex-direction: column; gap: 28px; }\n  .lfd-features__item { border-right: 0; padding: 0; }\n\n  .lfd-steps { gap: 24px; }\n  .lfd-step { gap: 16px; }\n  .lfd-steps__rail { left: 15px; }\n  .lfd-step__n { width: 32px; height: 32px; font-size: 14px; }\n\n  .lfd-ctas { flex-direction: column; gap: 16px; }\n  .lfd-cta { min-height: 220px; padding: 24px; }\n\n  .lfd-toggle-rail { --lfd-toggle-lift: 26px; }\n  .lfd-toggle { width: 100%; }\n  .lfd .lfd-toggle__btn { font-size: 13px; padding: 11px 0; }\n\n  .lfd-help-hero { padding: 56px 18px; }\n  .lfd-help-hero__h1 { font-size: 28px; }\n  .lfd-help-search input { height: 52px; padding-left: 46px; font-size: 14px; }\n  .lfd-help-search__icon { left: 15px; }\n  .lfd-tcards, .lfd-tiles { grid-template-columns: 1fr; gap: 16px; }\n  .lfd-hfaq__row { flex-direction: column; gap: 28px; }\n  .lfd-hfaq, .lfd-phone-col { flex: 1 1 auto; width: 100%; }\n  .lfd-phone-col { padding-top: 0; }\n  .lfd-support-band { padding: 56px 0; }\n  .lfd-support-wrap { padding: 0 18px; }\n  .lfd-support { padding: 28px 20px; }\n\n  \/* comparison table -> stacked cards on small screens *\/\n  .lfd-compare, .lfd-compare thead, .lfd-compare tbody,\n  .lfd-compare th, .lfd-compare td, .lfd-compare tr { display: block; }\n  .lfd-compare thead { display: none; }\n  .lfd-compare tr { border-bottom: 1px solid var(--lfd-border); padding: 12px 0; }\n  .lfd-compare tr:last-child { border-bottom: none; }\n  .lfd-compare td { padding: 4px 16px; display: flex; justify-content: space-between; gap: 16px; }\n  .lfd-compare td:first-child { font-weight: 600; padding-top: 12px; }\n  .lfd-compare td[data-label]::before {\n    content: attr(data-label); color: var(--lfd-muted); font-size: 12px;\n    text-transform: uppercase; letter-spacing: .06em; flex-shrink: 0;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .lfd *, .lfd *::before, .lfd *::after { transition: none !important; animation: none !important; }\n}\n\n\/* ==========================================================================\n   CONTACT (Contact-Us.dc.html) \u2014 added 2026-09-04\n   Values measured off the rendered design source at a 1905px viewport, not read\n   off the inline style strings.\n   ========================================================================== *\/\n\n\/* hero: 400px photo band, copy vertically centred, 3-stop horizontal scrim.\n   The scrim is a PSEUDO-ELEMENT, not a background on .lfd-hero__scrim itself.\n   Elementor's lazy-load rule kills `background-image` on\n   `.e-con.e-parent:nth-of-type(n+2) , \u2026 *` under max-height:640px (n+3 <=1024px,\n   n+4 otherwise) with !important. This hero is the 2nd .e-con on the page and is\n   above the fold, so a gradient background there is stripped exactly while it is\n   on screen. `*` does not match pseudo-elements, so ::before survives. *\/\n.lfd-hero--contact,\n.lfd-hero--legal,\n.lfd-hero--privacy { min-height: 400px; }\n\/* This band is 1905x400 (4.8:1) against a 900x600 (1.5:1) photo, so `cover` shows only a\n   ~189px slice of the source (31% of it). Centred, that slice lands on the table rather\n   than the faces, which sit at rows ~100-250 of 600; 20% centres the slice on them.\n   Computed, not eyeballed: top = 175 - 189\/2 = 81, and 81 \/ (600 - 189) = 20%.\n   See the README on why the design's own hero photo could not be used. *\/\n.lfd .lfd-hero--contact .lfd-hero__img { object-position: center 20%; }\n.lfd-hero--contact .lfd-hero__scrim,\n.lfd-hero--legal .lfd-hero__scrim,\n.lfd-hero--privacy .lfd-hero__scrim { background: none; }\n.lfd-hero--contact .lfd-hero__scrim::before,\n.lfd-hero--legal .lfd-hero__scrim::before,\n.lfd-hero--privacy .lfd-hero__scrim::before {\n  content: ''; position: absolute; inset: 0;\n  background-image: linear-gradient(90deg,\n    rgba(20,32,58,.92) 0%, rgba(20,32,58,.62) 55%, rgba(20,32,58,.30) 100%);\n}\n.lfd-hero--contact .lfd-hero__inner,\n.lfd-hero--legal .lfd-hero__inner,\n.lfd-hero--privacy .lfd-hero__inner { padding-top: 80px; padding-bottom: 80px; }\n\/* This design's H1 is 700\/1.2 where the shared `.lfd-h1` is 600\/1.15, and its lede is\n   \/1.7 at .78 alpha over 620px where the shared one is \/1.6 at .68 over 560px. Both are\n   scoped to this hero rather than changed globally \u2014 the other four pages are live. *\/\n.lfd-hero--contact .lfd-h1,\n.lfd-hero--legal .lfd-h1,\n.lfd-hero--privacy .lfd-h1 { font: 700 42px\/1.2 var(--lfd-serif); }\n.lfd-hero--contact .lfd-lede,\n.lfd-hero--legal .lfd-lede,\n.lfd-hero--privacy .lfd-lede { font: 400 15px\/1.7 var(--lfd-sans);\n  max-width: 620px; color: rgba(255,255,255,.78); }\n\/* the only hero value that differs from \/contact\/ and \/legal-notice\/ *\/\n.lfd-hero--privacy .lfd-lede { max-width: 660px; }\n\n\/* ---------- channels strip (3 bordered cards) ---------- *\/\n.lfd-chans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }\n.lfd-chan { border: 1px solid var(--lfd-border); border-radius: 12px; padding: 28px 26px; }\n.lfd-chan__tag { font: 500 10px var(--lfd-sans); letter-spacing: .12em;\n  text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-chan__t { font: 600 18px var(--lfd-serif-display); color: var(--lfd-navy); margin-top: 10px; }\n.lfd-chan__b { font: 400 13px\/1.65 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n.lfd-chan__l { display: inline-flex; align-items: center; gap: 7px;\n  font: 500 14px var(--lfd-sans); color: var(--lfd-bronze); margin-top: 14px; }\n.lfd-chan__l:hover { color: var(--lfd-navy); }\n\n\/* ---------- form + info rail ----------\n   ONE Elementor container holds three sibling widgets: the head, the Elementor Pro\n   form, and the rail. They are placed with CSS GRID rather than flex because the\n   Elementor stack pins `max-width:100%` \/ `margin:0` onto widget wrappers at a\n   specificity even (0-3-0) loses to (see .lfd-hero-con above) \u2014 but it never sets\n   grid-column \/ grid-row, so placement on the wrapper survives.\n   1200\/40 are written literally: --lfd-maxw and --lfd-pad are declared on `.lfd`,\n   which sits INSIDE these widgets, not on the container. *\/\n.e-con.lfd-contact-con {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) 340px;\n  column-gap: 64px;\n  align-items: start;\n  \/* The white band is FULL-BLEED in the design while the content column is 1120 wide.\n     `max-width: 1200px; margin: 0 auto` gave the right column but painted the white only\n     under it, leaving the theme's #ECEDE8 page background showing down both edges. So the\n     container stays full width and the centred column is expressed as PADDING instead \u2014\n     the same trick `.lfd-hero-con` uses above. Content = W - 2*((W-1200)\/2 + 40) = 1120,\n     i.e. 716 + 64 gap + 340. `box-sizing` is restated because this container sits OUTSIDE\n     `.lfd`, so the `.lfd *` border-box reset does not reach it. *\/\n  box-sizing: border-box;\n  padding: 64px calc(max(0px, (100% - 1200px) \/ 2) + 40px) 104px;\n  background: #fff;\n}\n.lfd-contact-con > .lfd-contact-head { grid-column: 1; grid-row: 1; }\n.lfd-contact-con > .lfd-formw       { grid-column: 1; grid-row: 2; }\n.lfd-contact-con > .lfd-side        { grid-column: 2; grid-row: 1 \/ span 2; }\n\n.lfd-contact-head .lfd-contact__h2 { font: 600 28px var(--lfd-serif-display);\n  color: var(--lfd-navy); margin: 0 0 6px; }\n.lfd-contact-head .lfd-contact__lede { font: 400 14px\/1.7 var(--lfd-sans);\n  color: var(--lfd-muted); margin: 0 0 28px; }\n\n\/* info rail *\/\n.lfd-side__stack { display: flex; flex-direction: column; gap: 20px; }\n.lfd-side__navy { background: var(--lfd-navy); border-radius: 12px; padding: 28px 26px; }\n.lfd-side__brand { font: 600 18px var(--lfd-serif-display); color: #fff; }\n.lfd-side__dl { display: flex; flex-direction: column; gap: 14px; margin-top: 18px; }\n.lfd-side__k { font: 500 10px var(--lfd-sans); letter-spacing: .12em;\n  text-transform: uppercase; color: rgba(255,255,255,.40); }\n.lfd-side__v { font: 400 14px\/1.6 var(--lfd-sans); color: #fff; margin-top: 4px; }\n.lfd-side__v a { color: #fff; text-decoration: underline; }\n.lfd-side__card { border: 1px solid var(--lfd-border); border-radius: 12px; padding: 24px 26px; }\n.lfd-side__h { font: 600 16px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-side__p { font: 400 13px\/1.65 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n.lfd-side__p a { color: var(--lfd-bronze); }\n.lfd-side__links { display: flex; flex-direction: column; gap: 9px; margin-top: 14px; }\n.lfd-side__link { font: 400 13px var(--lfd-sans); color: var(--lfd-bronze); }\n.lfd-side__link:hover { color: var(--lfd-navy); }\n\n\/* ---------- Elementor Pro form skin ----------\n   The form is a real `form` widget (Elementor Pro), so its markup is Elementor's, not\n   ours. Everything below repaints that markup to the design.\n\n   EVERY rule here is prefixed `.lfd.lfd-formw` (0-2-0 on its own). The widget carries\n   both classes, and the doubled prefix is not cosmetic: Elementor Pro's own form CSS\n   sits at (0-2-0) and (0-2-1) \u2014 e.g. `.elementor-widget-form .elementor-field-group`\n   and `.elementor-widget-form .elementor-field-group > label` \u2014 so a single-class\n   prefix ties or loses. Measured on the rendered page, a (0-2-0) prefix left\n   Elementor's gutter system live underneath: the fields wrapper kept\n   `margin: 0 -5px -10px` and each group kept `padding: 0 5px; margin: 0 0 10px`, which\n   stacked on top of our `gap` and made the inputs 345px\/67px instead of 350px\/43px and\n   the label weight 400 instead of 500. Elementor's gutter is therefore zeroed\n   explicitly below rather than just overridden. *\/\n\/* Layout here is deliberately LEFT TO ELEMENTOR, and that is load-bearing:\n   - the field gutter belongs to the widget's own `column_gap` \/ `row_gap` settings (see\n     build.py). Elementor emits those into the per-post stylesheet at (0-4-0), which\n     outranks this prefix, so a `gap` here would ADD to its gutter, not replace it;\n   - the column widths belong to Elementor's `.elementor-col-50` \/ `-100`. Overriding\n     them with `calc(50% - 8px)` double-counted the gutter and gave 342px fields\n     instead of 350px;\n   - the group must keep Elementor's own `flex-direction: row` + `wrap`, which is what\n     `label_position: above` is built on. Forcing `column` here flipped the main axis, so\n     Elementor's `flex-basis: 100%` on the inputs started resolving against the HEIGHT\n     and made every <input> 66.8px tall instead of 43px (<select> was unaffected, which\n     is what gave the fault away).\n   All three were measured on the rendered page; none of them reproduce in the preview. *\/\n.lfd.lfd-formw .elementor-field-group > label,\n.lfd.lfd-formw .elementor-field-label {\n  font: 500 13px var(--lfd-sans); color: var(--lfd-navy);\n  margin: 0 0 8px; padding: 0; width: auto; }\n.lfd.lfd-formw .elementor-field-textual,\n.lfd.lfd-formw select.elementor-field {\n  width: 100%; height: auto; min-height: 0;\n  border: 1px solid var(--lfd-border); border-radius: 8px;\n  padding: 12px 14px; font: 400 14px\/normal var(--lfd-sans); color: var(--lfd-navy);\n  background-color: #fff; box-shadow: none;\n  transition: border-color 150ms ease-out; }\n.lfd.lfd-formw textarea.elementor-field-textual {\n  font: 400 14px\/1.6 var(--lfd-sans); resize: vertical; }\n.lfd.lfd-formw select.elementor-field { appearance: none; -webkit-appearance: none; }\n.lfd.lfd-formw .elementor-field-textual:focus,\n.lfd.lfd-formw select.elementor-field:focus {\n  outline: none; border-color: var(--lfd-bronze); box-shadow: none; }\n.lfd.lfd-formw .elementor-field-textual::placeholder { color: #9A9A8E; opacity: 1; }\n\n\/* role chooser: a real radio group painted as the design's three pills. The input is\n   visually hidden but still focusable, so the group stays keyboard- and SR-operable. *\/\n.lfd.lfd-formw .elementor-field-type-radio .elementor-field-subgroup {\n  display: flex; gap: 10px; width: 100%; margin: 0; padding: 0; }\n.lfd.lfd-formw .elementor-field-option { flex: 1; position: relative; margin: 0; padding: 0; }\n.lfd.lfd-formw .elementor-field-option input[type=\"radio\"] {\n  position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }\n.lfd.lfd-formw .elementor-field-option input[type=\"radio\"] + label {\n  display: block; text-align: center; background: #fff;\n  border: 1px solid var(--lfd-border); color: var(--lfd-navy);\n  border-radius: 8px; padding: 12px 0; margin: 0;\n  font: 500 14px var(--lfd-sans); cursor: pointer;\n  transition: background-color 150ms ease-out, border-color 150ms ease-out; }\n.lfd.lfd-formw .elementor-field-option input[type=\"radio\"]:checked + label {\n  background: var(--lfd-navy); border-color: var(--lfd-navy); color: #fff; }\n.lfd.lfd-formw .elementor-field-option input[type=\"radio\"]:focus-visible + label {\n  outline: 2px solid var(--lfd-bronze); outline-offset: 2px; }\n\n\/* the privacy line, injected as an Elementor `html` field so it keeps the design's\n   position inside the form flow *\/\n.lfd.lfd-formw .lfd-form__note { font: 400 12px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd.lfd-formw .lfd-form__note a { color: var(--lfd-bronze); text-decoration: underline; }\n\/* help line directly under a field: pulled up against it, against the widget's row gap *\/\n.lfd.lfd-formw .lfd-form__note--field { margin: -12px 0 0; }\n\n\/* photo upload (publish-property, 2026-09-15): Elementor's native file input, painted as a\n   dashed drop area matching the text inputs' border, radius and type *\/\n.lfd.lfd-formw .elementor-field-type-upload input[type=\"file\"] {\n  width: 100%; box-sizing: border-box; padding: 14px; margin: 0;\n  border: 1px dashed var(--lfd-border); border-radius: 8px; background-color: #FBFAF7;\n  font: 400 13px var(--lfd-sans); color: var(--lfd-muted); cursor: pointer;\n  transition: border-color 150ms ease-out; }\n.lfd.lfd-formw .elementor-field-type-upload input[type=\"file\"]:hover,\n.lfd.lfd-formw .elementor-field-type-upload input[type=\"file\"]:focus {\n  outline: none; border-color: var(--lfd-bronze); }\n.lfd.lfd-formw .elementor-field-type-upload input[type=\"file\"]::file-selector-button {\n  margin-right: 12px; padding: 8px 14px; border: 1px solid var(--lfd-navy); border-radius: 8px;\n  background-color: #fff; color: var(--lfd-navy); font: 500 13px var(--lfd-sans); cursor: pointer; }\n\n\/* submit. THREE separate rules paint this button and each needed beating; all three were\n   found on the rendered page, not in the preview:\n     .elementor-kit-7 button                               (0-1-1) \u2014 the theme kit, the\n       same fault that repainted the FAQ rows navy on the other four pages;\n     .elementor-button                                     (0-1-0) \u2014 Elementor core;\n     .elementor-widget-form .elementor-button[type=submit]  (0-3-0) \u2014 Elementor Pro's own\n       form styling, form-specific and NEW here: it beat a (0-2-0) prefix and repainted\n       the CTA #B8873A instead of the design's #A9822E. *\/\n.lfd.lfd-formw .elementor-button,\n.lfd.lfd-formw .elementor-button[type=\"submit\"] {\n  width: auto; flex: 0 0 auto; background-color: var(--lfd-bronze); color: #fff; border: none;\n  border-radius: 8px; padding: 14px 28px; font: 500 15px var(--lfd-sans);\n  cursor: pointer; }\n.lfd.lfd-formw .elementor-button:hover,\n.lfd.lfd-formw .elementor-button:focus,\n.lfd.lfd-formw .elementor-button[type=\"submit\"]:hover,\n.lfd.lfd-formw .elementor-button[type=\"submit\"]:focus {\n  background-color: #96721F; color: #fff; }\n\/* The submit group is a row flex container, so the button is left-aligned with\n   `justify-content` and sized to its text rather than stretched across the column. *\/\n.lfd.lfd-formw .elementor-field-type-submit { justify-content: flex-start; }\n.lfd.lfd-formw .elementor-message { font: 400 14px\/1.7 var(--lfd-sans); margin-top: 4px; }\n.lfd.lfd-formw .elementor-message.elementor-message-success { color: var(--lfd-forest); }\n.lfd.lfd-formw .elementor-message.elementor-message-danger  { color: var(--lfd-danger); }\n\n@media (max-width: 1024px) {\n  .lfd-chans { grid-template-columns: 1fr 1fr; }\n  .e-con.lfd-contact-con { grid-template-columns: minmax(0,1fr) 300px; column-gap: 40px; }\n}\n@media (max-width: 900px) {\n  .e-con.lfd-contact-con {\n    grid-template-columns: minmax(0,1fr);\n    padding: 56px 20px 72px;\n    row-gap: 32px;\n  }\n  .lfd-contact-con > .lfd-contact-head { grid-column: 1; grid-row: 1; }\n  .lfd-contact-con > .lfd-formw       { grid-column: 1; grid-row: 2; }\n  .lfd-contact-con > .lfd-side        { grid-column: 1; grid-row: 3; }\n}\n@media (max-width: 767px) {\n  .lfd-chans { grid-template-columns: 1fr; }\n  .lfd-hero--contact, .lfd-hero--legal, .lfd-hero--privacy { min-height: 320px; }\n  .lfd-hero--contact .lfd-h1, .lfd-hero--legal .lfd-h1,\n  .lfd-hero--privacy .lfd-h1 { font-size: 32px; }\n  .lfd-hero--contact .lfd-hero__inner, .lfd-hero--legal .lfd-hero__inner,\n  .lfd-hero--privacy .lfd-hero__inner { padding-top: 56px; padding-bottom: 56px; }\n  .lfd.lfd-formw .elementor-field-group.elementor-col-50 { width: 100%; }\n  .lfd.lfd-formw .elementor-field-type-radio .elementor-field-subgroup { flex-wrap: wrap; }\n}\n\n\/* channels band: the design puts 56px above the cards and NOTHING below \u2014 the 64px top\n   padding of .lfd-contact-con supplies the gap down to \"Send us a message\". *\/\n.lfd-chans-band { padding: 56px 0 0; }\n\n\/* ==========================================================================\n   ABOUT US (About-Us.dc.html) \u2014 added 2026-09-04\n   Values measured off the rendered design source at a 1920px viewport.\n   ========================================================================== *\/\n\n\/* hero: 600px photo band. Same 3-stop 90deg scrim as \/contact\/, and for the same\n   reason it is a PSEUDO-ELEMENT \u2014 Elementor's lazy-load rule nulls `background-image`\n   on early containers with !important, and its `*` does not match pseudo-elements. *\/\n.lfd-hero--about { min-height: 600px; }\n.lfd-hero--about .lfd-hero__scrim { background: none; }\n.lfd-hero--about .lfd-hero__scrim::before {\n  content: ''; position: absolute; inset: 0;\n  background-image: linear-gradient(90deg,\n    rgba(20,32,58,.92) 0%, rgba(20,32,58,.62) 55%, rgba(20,32,58,.30) 100%);\n}\n.lfd-hero--about .lfd-hero__inner { padding-top: 96px; padding-bottom: 96px; }\n.lfd-hero--about .lfd-hero__copy { max-width: 620px; }\n.lfd-hero--about .lfd-eyebrow { margin-bottom: 14px; }\n.lfd-hero--about .lfd-h1 { font: 700 46px\/1.15 var(--lfd-serif); }\n.lfd-hero--about .lfd-lede { font: 400 16px\/1.7 var(--lfd-sans);\n  color: rgba(255,255,255,.78); max-width: 540px; margin-top: 20px; }\n.lfd-hero__btns { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }\n\n\/* Outline button. NOT `.lfd-btn--ghost`: that one is the small 13px\/10-18 pill the other\n   pages use inside CTA cards. This design's secondary is full-size (15px, 14\/26) with a\n   translucent border. *\/\n.lfd-btn--outline { background: transparent; color: #fff;\n  border: 1px solid rgba(255,255,255,.40); }\n.lfd-btn--outline:hover { background: rgba(255,255,255,.12); color: #fff; }\n.lfd-btn--hero { padding: 14px 26px; }\n\n\/* ---------- stats strip ----------\n   Reuses `.lfd-stats` \/ `.lfd-stat`, which the other pages set at gap 64 \/ 36px \/ 190px.\n   This design is 80 \/ 40px \/ 170px, so the deltas are scoped rather than changed globally. *\/\n.lfd-stats-band { border-bottom: 1px solid var(--lfd-border); padding: 64px 0; }\n.lfd-stats--about { gap: 80px; }\n.lfd-stats--about .lfd-stat__n { font-size: 40px; }\n.lfd-stats--about .lfd-stat__l { max-width: 170px; margin-top: 6px; }\n\n\/* ---------- why we exist: square photo beside the copy ---------- *\/\n.lfd-why { display: grid; grid-template-columns: 1fr 50%; gap: 64px; align-items: center; }\n.lfd-why__media { border-radius: 12px; overflow: hidden; aspect-ratio: 1 \/ 1; }\n\/* same `.elementor img { height: auto }` trap as .lfd-hero__img \u2014 keep `.lfd`-prefixed. *\/\n.lfd .lfd-why__img { width: 100%; height: 100%; object-fit: cover; }\n.lfd-why__h2 { font: 600 34px\/1.25 var(--lfd-serif-display); color: var(--lfd-navy); margin: 8px 0 0; }\n.lfd-why__p { font: 400 15px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin-top: 14px; }\n.lfd-why__p--first { margin-top: 16px; }\n.lfd-why__p--lead  { color: var(--lfd-navy); }\n\n\/* ---------- principles: three numbered cards ---------- *\/\n.lfd-prins { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; }\n.lfd-prin { background: #fff; border: 1px solid var(--lfd-border);\n  border-radius: 12px; padding: 32px 28px; }\n.lfd-prin__num { width: 44px; height: 44px; border-radius: 50%; background: var(--lfd-cream);\n  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;\n  font: 700 15px var(--lfd-serif); color: var(--lfd-bronze); }\n.lfd-prin__t { font: 600 19px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-prin__b { font: 400 14px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin-top: 10px; }\n\n\/* ---------- who we build for: paired cream \/ navy cards ---------- *\/\n.lfd-auds { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }\n.lfd-aud { border-radius: 12px; padding: 40px 36px; }\n.lfd-aud--tenant   { background: var(--lfd-cream); }\n.lfd-aud--landlord { background: var(--lfd-navy); }\n.lfd-aud__t { font: 600 22px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-aud--landlord .lfd-aud__t { color: #fff; }\n.lfd-aud__p { font: 400 14px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin: 12px 0 20px; }\n.lfd-aud--landlord .lfd-aud__p { color: rgba(255,255,255,.65); }\n.lfd-aud__list { display: flex; flex-direction: column; gap: 10px; }\n.lfd-aud__item { display: flex; gap: 10px; align-items: flex-start; }\n.lfd-aud__item svg { margin-top: 2px; flex-shrink: 0; }\n.lfd-aud__item span { font: 400 14px var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-aud--landlord .lfd-aud__item span { color: #fff; }\n.lfd-aud__link { display: inline-block; margin-top: 22px;\n  font: 500 13px var(--lfd-sans); color: var(--lfd-bronze); }\n.lfd-aud__link:hover { color: var(--lfd-navy); }\n.lfd-aud--landlord .lfd-aud__link:hover { color: #fff; }\n\n\/* ---------- service fees: two white bordered cards on cream ----------\n   Added 2026-09-10 with the About re-sync. Deliberately NOT `.lfd-aud`: those cards are\n   the cream\/navy pair at 40px 36px with 10px list gaps and a trailing link, whereas these\n   are a matched white pair at 36px 32px, 12px gaps, no link, and a centred header block\n   above them. The tick sizes differ too (3px top offset here, 2px there). *\/\n.lfd-fees__head { text-align: center; max-width: 720px; margin: 0 auto; }\n.lfd-fees__h2 { font: 600 34px\/1.25 var(--lfd-serif-display); color: var(--lfd-navy); margin: 8px 0 0; }\n.lfd-fees__lede { font: 400 15px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin-top: 14px; }\n.lfd-fees { display: grid; grid-template-columns: 1fr 1fr; gap: 24px;\n  margin-top: 44px; align-items: stretch; }\n.lfd-fee { background: #fff; border: 1px solid var(--lfd-border);\n  border-radius: 12px; padding: 36px 32px; }\n.lfd-fee__t { font: 600 22px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-fee__p { font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); margin: 8px 0 20px; }\n.lfd-fee__list { display: flex; flex-direction: column; gap: 12px; }\n.lfd-fee__item { display: flex; gap: 10px; align-items: flex-start; }\n.lfd-fee__item svg { margin-top: 3px; flex-shrink: 0; }\n.lfd-fee__item span { font: 400 14px\/1.6 var(--lfd-sans); color: var(--lfd-navy); }\n\n\/* ---------- Luxembourg-only band ----------\n   Reuses `.lfd-hoods` (the for-landlords chip row). Its chips are cream on a white band;\n   here the band is cream, so the chips invert to white with a border. *\/\n.lfd-local { text-align: center; }\n.lfd-local__h2 { font: 600 32px var(--lfd-serif-display); color: var(--lfd-navy); margin: 8px 0 0; }\n.lfd-local__p { font: 400 15px\/1.7 var(--lfd-sans); color: var(--lfd-muted);\n  max-width: 560px; margin: 14px auto 0; }\n.lfd-hoods--about { margin-top: 28px; }\n.lfd-hoods--about .lfd-hoods__chip { background: #fff; border: 1px solid var(--lfd-border); }\n\n\/* ---------- closing CTA band ---------- *\/\n.lfd-endcta { text-align: center; }\n.lfd-endcta__h2 { font: 600 34px var(--lfd-serif-display); color: #fff; margin: 0; }\n.lfd-endcta__p { font: 400 14px var(--lfd-sans); color: rgba(255,255,255,.65); margin-top: 10px; }\n.lfd-endcta__btns { display: flex; gap: 12px; justify-content: center;\n  margin-top: 26px; flex-wrap: wrap; }\n.lfd-endcta .lfd-btn--outline { border-color: rgba(255,255,255,.35); }\n\n@media (max-width: 1024px) {\n  .lfd-prins { grid-template-columns: 1fr; }\n  .lfd-why { grid-template-columns: 1fr; gap: 40px; }\n  .lfd-stats--about { gap: 48px; }\n}\n@media (max-width: 767px) {\n  .lfd-hero--about { min-height: 480px; }\n  .lfd-hero--about .lfd-h1 { font-size: 34px; }\n  .lfd-hero--about .lfd-hero__inner { padding-top: 64px; padding-bottom: 64px; }\n  .lfd-auds { grid-template-columns: 1fr; }\n  .lfd-aud { padding: 32px 24px; }\n  .lfd-fees { grid-template-columns: 1fr; }\n  .lfd-fee { padding: 28px 24px; }\n  .lfd-fees__h2 { font-size: 27px; }\n  .lfd-why__h2 { font-size: 27px; }\n  .lfd-local__h2, .lfd-endcta__h2 { font-size: 26px; }\n  .lfd-stats--about { gap: 32px; }\n  .lfd-stats--about .lfd-stat__n { font-size: 32px; }\n}\n\n\/* ==========================================================================\n   LEGAL NOTICE (Legal-Notice.dc.html) \u2014 added 2026-09-04\n   Values measured off the rendered design source at a 1920px viewport.\n   The hero itself reuses `.lfd-hero--contact`'s rules (identical spec, grouped\n   selectors above); only the extra \"Last updated\" line is new.\n   ========================================================================== *\/\n.lfd-hero__updated { font: 400 13px var(--lfd-sans);\n  color: rgba(255,255,255,.55); margin-top: 20px; }\n\n\/* ---------- document layout: sticky contents rail beside the body ----------\n   Grid rather than flex so the rail keeps its 220px track and the body its own\n   column; the design caps the body at 720 and leaves the remaining ~108px of the\n   1120 content width as slack on the right, which `minmax(0, 720px)` reproduces. *\/\n.lfd-doc { display: grid; grid-template-columns: 220px minmax(0, 720px);\n  column-gap: 72px; align-items: start;\n  \/* The design sticks the rail at top:32px, which assumes no fixed header. The live\n     theme HAS one \u2014 a `position: fixed` container measured at 76px on the rendered page\n     \u2014 so 32px parks the rail underneath it. Offset = header + 20px of breathing room,\n     and +32 again when WordPress adds its admin bar (which is exactly the state the\n     client reviews this draft in). Both the sticky offset and the anchor\n     scroll-margin read the same variable so they cannot drift apart. *\/\n  --lfd-doc-offset: 96px; }\n.admin-bar .lfd-doc { --lfd-doc-offset: 128px; }\n\/* `.lfd-band` uses `overflow-x: clip`, which per spec does NOT create a scroll\n   container, so `position: sticky` still resolves against the viewport here.\n   Verified functionally on the rendered page, not just by reading the property:\n   at scrollY 2000 the rail measured exactly at its offset. *\/\n.lfd-doc__toc { position: sticky; top: var(--lfd-doc-offset); }\n.lfd-doc__toc-label { font: 500 10px var(--lfd-sans); letter-spacing: .12em;\n  text-transform: uppercase; color: var(--lfd-muted); margin-bottom: 14px; }\n.lfd-doc__toc-links { display: flex; flex-direction: column; gap: 10px; }\n.lfd-doc__toc-link { font: 400 13px\/1.4 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-doc__toc-link:hover { color: var(--lfd-bronze); }\n\n.lfd-doc__sec { margin-bottom: 44px; }\n.lfd-doc__sec:last-child { margin-bottom: 0; }\n\/* Same reason: an anchored heading would otherwise land under the fixed header.\n   Build affordance \u2014 adds no text, so the verbatim diff is unaffected. *\/\n.lfd-doc__sec[id] { scroll-margin-top: var(--lfd-doc-offset); }\n.lfd-doc__h2 { font: 600 24px var(--lfd-serif-display); color: var(--lfd-navy); margin: 0 0 14px; }\n.lfd-doc__p { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin: 0; }\n.lfd-doc__p + .lfd-doc__p { margin-top: 14px; }\n.lfd-doc__p--intro { margin-bottom: 18px; }\n.lfd-doc__p a { color: var(--lfd-bronze); text-decoration: underline; }\n\n\/* ---------- publisher details table ---------- *\/\n.lfd-deftable { border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; }\n.lfd-deftable__row { display: flex; gap: 16px; padding: 14px 20px;\n  border-bottom: 1px solid var(--lfd-border); }\n.lfd-deftable__row:nth-child(odd)  { background: #fff; }\n.lfd-deftable__row:nth-child(even) { background: #FAFAF8; }\n.lfd-deftable__k { flex: 0 0 190px; font: 500 13px var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-deftable__v { flex: 1; font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n\n\/* ---------- bullet list with bronze dots ---------- *\/\n.lfd-bullets { display: flex; flex-direction: column; gap: 12px; }\n.lfd-bullets__item { display: flex; gap: 12px; align-items: flex-start; }\n.lfd-bullets__dot { width: 6px; height: 6px; border-radius: 50%;\n  background: var(--lfd-bronze); margin-top: 9px; flex-shrink: 0; }\n.lfd-bullets__t { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); }\n\n\/* ---------- closing note card ---------- *\/\n.lfd-notecard { background: var(--lfd-cream); border-radius: 12px; padding: 28px 32px;\n  display: flex; justify-content: space-between; align-items: center;\n  gap: 24px; flex-wrap: wrap; }\n.lfd-notecard__t { font: 600 18px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-notecard__s { font: 400 14px var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n\/* The design draws this as a <button>; it is emitted as an <a> so the theme's\n   `.elementor-kit-7 button` rule can never reach it \u2014 the standing lesson. *\/\n.lfd-btn--md { padding: 13px 24px; font-size: 14px; }\n\n@media (max-width: 1024px) {\n  .lfd-doc { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }\n  .lfd-doc__toc { position: static; top: auto; }\n}\n@media (max-width: 767px) {\n  .lfd-doc__h2 { font-size: 21px; }\n  .lfd-deftable__row { flex-direction: column; gap: 4px; }\n  .lfd-deftable__k { flex: 0 0 auto; }\n  .lfd-notecard { padding: 24px 22px; }\n}\n\n\/* ==========================================================================\n   PRIVACY POLICY (Privacy-Policy.dc.html) \u2014 added 2026-09-04\n   Measured off the rendered design source at 1920px. The whole document shell \u2014\n   `.lfd-doc`, the sticky rail, `.lfd-doc__sec\/h2\/p`, `.lfd-deftable`,\n   `.lfd-bullets`, `.lfd-notecard` \u2014 is reused from \/legal-notice\/ unchanged;\n   only the components below are new to this page.\n   ========================================================================== *\/\n\n\/* The design varies the heading gap per section: 14px default, 8px where a lead\n   paragraph follows immediately, 20px above a table. *\/\n.lfd-doc__h2--tight { margin-bottom: 8px; }\n.lfd-doc__h2--loose { margin-bottom: 20px; }\n\/* a closing paragraph the design sets in navy rather than muted *\/\n.lfd-doc__p--strong { color: var(--lfd-navy); margin-top: 14px; }\n\n\/* ---------- \"In short\" summary card ---------- *\/\n.lfd-inshort { background: var(--lfd-cream); border-radius: 12px;\n  padding: 28px 32px; margin-bottom: 44px; }\n.lfd-inshort__t { font: 600 17px var(--lfd-serif-display); color: var(--lfd-navy); margin-bottom: 14px; }\n.lfd-inshort__list { display: flex; flex-direction: column; gap: 10px; }\n.lfd-inshort__item { display: flex; gap: 10px; align-items: flex-start; }\n.lfd-inshort__item svg { margin-top: 3px; flex-shrink: 0; }\n.lfd-inshort__item span { font: 400 14px\/1.7 var(--lfd-sans); color: var(--lfd-navy); }\n\n\/* ---------- bronze-bordered callout (privacy \u00a74, \"Your consent to share\") ----------\n   Added 2026-09-09 with the design revision that introduced that section. It is the\n   only bronze-bordered box on the site; `.lfd-inshort` above is the same cream fill\n   with no border. Fill is a background-COLOR, not a gradient, so Elementor's\n   lazy-load `background-image: none !important` rule cannot strip it (see README). *\/\n.lfd-callout { border: 1px solid var(--lfd-bronze); border-radius: 12px;\n  padding: 24px 28px; background: var(--lfd-cream); }\n\/* Two differences from the page-level `.lfd-eyebrow`, both the design's: .12em rather\n   than .14em, and NO line-height override. `.lfd-eyebrow` pins `\/1`; this one is left at\n   `normal` (14.5px at 11px Inter), which is worth 3px of box height \u2014 measured against\n   the rendered design source, where the box is 232px and `\/1` gave 229px. *\/\n.lfd-callout__tag { font: 500 11px var(--lfd-sans); letter-spacing: .12em;\n  text-transform: uppercase; color: var(--lfd-bronze); margin-bottom: 10px; }\n.lfd-callout__p { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-navy); margin: 0; }\n\/* `.lfd :where(a)` resets links to `color: inherit`, so the mailto inside the callout\n   needs the same explicit rule `.lfd-doc__p a` gives every other link on this page. *\/\n.lfd-callout__p a { color: var(--lfd-bronze); text-decoration: underline; }\n\n\/* ---------- data table: three columns under a navy header row ----------\n   Extends `.lfd-deftable` (border, radius 12, overflow hidden, zebra rows). *\/\n.lfd-deftable__head { display: flex; gap: 16px; padding: 12px 20px;\n  background: var(--lfd-navy); }\n.lfd-deftable__head .lfd-deftable__c1,\n.lfd-deftable__head .lfd-deftable__c2,\n.lfd-deftable__head .lfd-deftable__c3 { font: 500 12px var(--lfd-sans); color: #fff; }\n\/* The zebra on `.lfd-deftable` keys off :nth-child, and the header row occupies\n   child 1 here, so the striping is restated to start from the first DATA row. *\/\n.lfd-deftable--3col .lfd-deftable__row:nth-child(even) { background: #fff; }\n.lfd-deftable--3col .lfd-deftable__row:nth-child(odd)  { background: #FAFAF8; }\n.lfd-deftable__c1 { flex: 0 0 170px; font: 500 13px\/1.5 var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-deftable__c2 { flex: 1; font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-deftable__c3 { flex: 0 0 140px; font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n\n\/* ---------- retention table: label grows, period is a fixed 240 column ---------- *\/\n.lfd-deftable--retention .lfd-deftable__k { flex: 1; }\n.lfd-deftable--retention .lfd-deftable__v { flex: 0 0 240px; }\n\n\/* ---------- rights: 2 x 3 bordered cards ---------- *\/\n.lfd-rights { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }\n.lfd-right { border: 1px solid var(--lfd-border); border-radius: 12px; padding: 18px 20px; }\n.lfd-right__t { font: 600 14px var(--lfd-sans); color: var(--lfd-navy); }\n.lfd-right__d { font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n\n@media (max-width: 767px) {\n  .lfd-rights { grid-template-columns: 1fr; }\n  .lfd-inshort { padding: 22px 20px; }\n  .lfd-callout { padding: 22px 20px; }\n  \/* the 3-column table cannot hold three columns on a phone *\/\n  .lfd-deftable--3col .lfd-deftable__head { display: none; }\n  .lfd-deftable--3col .lfd-deftable__row { flex-direction: column; gap: 4px; }\n  .lfd-deftable--3col .lfd-deftable__c1,\n  .lfd-deftable--3col .lfd-deftable__c3 { flex: 0 0 auto; }\n  \/* the legal-basis cell loses its header on mobile, so label it inline *\/\n  .lfd-deftable--3col .lfd-deftable__c3::before { content: 'Legal basis: '; color: var(--lfd-navy); }\n  .lfd-deftable--retention .lfd-deftable__v { flex: 0 0 auto; }\n}\n\n\/* ==========================================================================\n   PUBLISH YOUR PROPERTY (Publish-Your-Property.dc.html) \u2014 added 2026-09-10\n   Values measured off the RENDERED design source at a 1905px viewport (the live band\n   width), not read off its inline style strings.\n   The form + rail reuse \/contact\/'s grid and card classes wholesale; only what this\n   design does differently is declared here.\n   ========================================================================== *\/\n\n\/* hero: photo band, min 440px, copy vertically centred. Same 3-stop 90deg scrim as\n   \/contact\/ and \/about\/, and a PSEUDO-ELEMENT for the same documented reason \u2014\n   Elementor's lazy-load rule nulls `background-image` with !important on\n   `.e-con.e-parent:nth-of-type(n+2), \u2026 *`, and `*` does not match pseudo-elements.\n   No `object-position` override: the substitute photo is an interior, so the centre\n   crop is the right one (this is the same photo, and the same crop, as \/landlords\/). *\/\n.lfd-hero--publish { min-height: 440px; }\n.lfd-hero--publish .lfd-hero__scrim { background: none; }\n.lfd-hero--publish .lfd-hero__scrim::before {\n  content: ''; position: absolute; inset: 0;\n  background-image: linear-gradient(90deg,\n    rgba(20,32,58,.92) 0%, rgba(20,32,58,.62) 55%, rgba(20,32,58,.30) 100%);\n}\n.lfd-hero--publish .lfd-hero__inner { padding-top: 88px; padding-bottom: 88px; }\n\/* 44px\/1.15 where the shared `.lfd-h1` is 42px\/1.15 and \/contact\/'s is 42px\/1.2. *\/\n.lfd-hero--publish .lfd-h1 { font: 700 44px\/1.15 var(--lfd-serif); max-width: 760px; }\n.lfd-hero--publish .lfd-lede { font: 400 15px\/1.7 var(--lfd-sans);\n  color: rgba(255,255,255,.78); max-width: 600px; margin-top: 16px; }\n\/* The \"high demand, manual review\" paragraph. It sits BELOW the lede and ABOVE the form\n   by design \u2014 the framing has to be read before the form is filled in. Full white, not\n   the lede's .78, and set off by a bronze rule rather than a card. *\/\n\/* `content-box` is deliberate and measured: the design's 620px cap is on the TEXT, with\n   the 16px indent and the 2px rule outside it. Under the shared `.lfd *` border-box reset\n   the same declaration gives a 602px text column \u2014 18px narrower than the design. *\/\n.lfd-hero__note { font: 400 15px\/1.7 var(--lfd-sans); color: #fff;\n  box-sizing: content-box; max-width: 620px;\n  margin-top: 18px; border-left: 2px solid var(--lfd-bronze); padding-left: 16px; }\n\n\/* ---------- value strip: 3 centred cells, divided by 1px rules ----------\n   The column here is 1100px, NOT the 1200px the rest of the page uses. *\/\n.lfd-vstrip-band { padding: 40px 0; border-bottom: 1px solid var(--lfd-border); }\n.lfd-vstrip { max-width: 1100px; margin: 0 auto; padding: 0 var(--lfd-pad);\n  display: flex; gap: 40px; }\n.lfd-vstrip__item { flex: 1; display: flex; flex-direction: column; align-items: center;\n  text-align: center; padding: 0 20px; border-right: 1px solid var(--lfd-border); }\n.lfd-vstrip__item:last-child { border-right: 0; }\n.lfd-vstrip__item svg { margin-bottom: 14px; }\n.lfd-vstrip__t { font: 500 14px\/1.5 var(--lfd-sans); color: var(--lfd-navy);\n  max-width: 230px; }\n\n\/* ---------- form + rail ----------\n   The grid, the two column widths and every card style are \/contact\/'s\n   (`.lfd-contact-con`, `.lfd-side__*`), reused as-is. This design differs in exactly\n   one container value \u2014 72px of top padding where \/contact\/ has 64 \u2014 so that is all\n   `.lfd-pub-con` carries. NB it is (0-3-0), so it also has to be restated inside the\n   breakpoint below, where `.e-con.lfd-contact-con` (0-2-0) would otherwise lose to it. *\/\n.e-con.lfd-contact-con.lfd-pub-con { padding-top: 72px; }\n\/* This design's submit button is 14px\/32px where \/contact\/'s is 14px\/28px, so the shared\n   form skin's (0-4-0) rule is out-specified here rather than changed \u2014 \/contact\/ is live. *\/\n.lfd-pub-con .lfd.lfd-formw .elementor-button[type=\"submit\"] { padding: 14px 32px; }\n\n\/* navy rail card: this one opens with a bronze eyebrow above its title, where\n   \/contact\/'s opens with the title alone. Both rules are scoped so \/contact\/ is\n   untouched \u2014 `.lfd-side__brand` keeps its zero margin there. *\/\n.lfd-side__tag { font: 500 10px var(--lfd-sans); letter-spacing: .12em;\n  text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-side__tag + .lfd-side__brand { margin-top: 10px; }\n\n.lfd-bens { display: flex; flex-direction: column; gap: 13px; margin-top: 18px; }\n.lfd-ben { display: flex; gap: 10px; align-items: flex-start; }\n.lfd-ben svg { margin-top: 3px; flex-shrink: 0; }\n.lfd-ben__t { font: 400 14px\/1.6 var(--lfd-sans); color: #fff; }\n\n\/* neighbourhood pills. Deliberately NOT `.lfd-hoods__chip` (for-tenants' trust strip):\n   that one is 13px on a cream band, this one is 12px on white with a cream fill. *\/\n.lfd-hoodpills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }\n.lfd-hoodpill { background: var(--lfd-cream); color: var(--lfd-navy);\n  font: 500 12px var(--lfd-sans); border-radius: 20px; padding: 7px 14px; }\n\n\/* ---------- responsive ----------\n   There is NO `Publish-Your-Property-Mobile.dc.html` in the DesignSync project, where\n   every other page has a mobile variant. These rules are therefore derived from\n   \/contact\/'s \u2014 the layout this page is a near-copy of \u2014 and from the shared hero\n   rules, not from a design source. See the README. *\/\n@media (max-width: 900px) {\n  \/* restated at the same (0-3-0) as the desktop rule above, which would otherwise beat\n     `.e-con.lfd-contact-con`'s single-column padding regardless of source order. *\/\n  .e-con.lfd-contact-con.lfd-pub-con { padding-top: 56px; }\n}\n@media (max-width: 767px) {\n  .lfd-hero--publish { min-height: 360px; }\n  .lfd-hero--publish .lfd-h1 { font-size: 32px; }\n  .lfd-hero--publish .lfd-hero__inner { padding-top: 56px; padding-bottom: 56px; }\n  \/* the shared mobile rule flips `.lfd-hero__scrim` to a vertical gradient for exactly\n     this reason \u2014 the copy goes full-width \u2014 but it targets the element, which this\n     hero paints `none`. Applying the same intent to the pseudo-element instead. *\/\n  .lfd-hero--publish .lfd-hero__scrim::before {\n    background-image: linear-gradient(180deg,\n      rgba(20,32,58,.55) 0%, rgba(20,32,58,.82) 100%);\n  }\n  .lfd-hero--publish .lfd-lede, .lfd-hero--publish .lfd-hero__note { font-size: 14px; }\n  .lfd-vstrip { flex-direction: column; gap: 24px; }\n  .lfd-vstrip__item { border-right: 0; padding: 0; }\n}\n\n\/* ===========================================================================\n   HELP ARTICLE  (\/help\/how-renting-directly-works\/)  \u2014 added 2026-09-11\n   First article template. Geometry measured off the rendered design source at\n   a 1920px viewport, not read off its inline style strings:\n     H1 700 40px\/48px Fraunces navy \u00b7 h2 600 28px Playfair \u00b7 body column 720\n     TOC 260 \u00b7 column gap 64 \u00b7 FAQ card 720x122, #fff, 1px #E8E4DC, radius 12\n   The FAQ deliberately reuses the shared `.lfd-faq` skin rather than a new\n   one: that skin is ALREADY the light variant this page's design asks for\n   (white card, navy question), so the site-wide fix applies here for free.\n   =========================================================================== *\/\n.lfd-art-head { background: var(--lfd-cream); border-bottom: 1px solid var(--lfd-border); padding: 32px 0 56px; }\n.lfd-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 400 12px var(--lfd-sans); color: var(--lfd-muted); }\n.lfd .lfd-crumb a { color: var(--lfd-muted); text-decoration: none; }\n.lfd .lfd-crumb a:hover { color: var(--lfd-navy); }\n.lfd-crumb__sep { color: #C9C3B6; }\n.lfd-crumb__cur { color: var(--lfd-navy); }\n\n.lfd-art-head__row { display: flex; gap: 48px; align-items: center; margin-top: 24px; }\n.lfd-art-head__main { flex: 1; min-width: 0; max-width: 720px; }\n.lfd-art__badge { display: inline-block; background: #fff; border: 1px solid var(--lfd-border); color: var(--lfd-bronze);\n  font: 500 11px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; border-radius: 20px; padding: 7px 14px; }\n.lfd-art__h1 { font: 700 40px\/1.2 var(--lfd-serif); color: var(--lfd-navy); margin: 18px 0 0; text-wrap: pretty; }\n.lfd-art__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 18px; font: 400 13px var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-art__meta span { display: flex; align-items: center; gap: 7px; }\n.lfd-art__meta .lfd-art__dot { color: #C9C3B6; }\n.lfd-art-head__media { flex: 0 0 380px; height: 260px; border-radius: 12px; overflow: hidden; position: relative; }\n.lfd-art-head__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n\n.lfd-art-body { background: #fff; padding: 56px 0 96px; }\n.lfd-art-grid { display: flex; gap: 64px; align-items: flex-start; }\n.lfd-art__col { flex: 1; min-width: 0; max-width: 720px; }\n\n.lfd-art__lede { font: 400 17px\/1.8 var(--lfd-sans); color: var(--lfd-navy); margin: 0; }\n.lfd-art__sub { font: 400 16px\/1.8 var(--lfd-sans); color: var(--lfd-muted); margin: 20px 0 0; }\n.lfd-art__col h2 { font: 600 28px var(--lfd-serif-display); color: var(--lfd-navy); margin: 52px 0 0; scroll-margin-top: 24px; }\n.lfd-art__p { font: 400 16px\/1.8 var(--lfd-sans); color: var(--lfd-muted); margin: 16px 0 0; }\n.lfd-art__p--after { margin: 22px 0 0; }\n.lfd .lfd-art__col a { color: var(--lfd-bronze); text-decoration: underline; text-underline-offset: 2px; }\n.lfd .lfd-art__col a:hover { color: var(--lfd-navy); }\n\n.lfd-art__bullets { display: flex; flex-direction: column; gap: 14px; margin-top: 22px; }\n.lfd-art__bullet { display: flex; gap: 12px; align-items: flex-start; }\n.lfd-art__bullet svg { margin-top: 5px; flex-shrink: 0; }\n.lfd-art__bullet div { font: 400 16px\/1.7 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-art__bullet strong { color: var(--lfd-navy); font-weight: 600; }\n\n.lfd-art__steps { display: flex; flex-direction: column; gap: 20px; margin-top: 26px; }\n.lfd-art__step { display: flex; gap: 16px; align-items: flex-start; }\n.lfd-art__n { width: 30px; height: 30px; border-radius: 50%; background: var(--lfd-navy); color: #fff;\n  display: flex; align-items: center; justify-content: center; font: 600 14px var(--lfd-sans); flex-shrink: 0; }\n.lfd-art__n--soft { background: var(--lfd-cream); border: 1px solid var(--lfd-border); color: var(--lfd-navy); }\n.lfd-art__step div:last-child { font: 400 16px\/1.7 var(--lfd-sans); color: var(--lfd-muted); padding-top: 3px; }\n.lfd-art__step strong { color: var(--lfd-navy); font-weight: 600; }\n\n.lfd-art__fig { margin: 36px 0 0; }\n.lfd-art__fig img { width: 100%; aspect-ratio: 16\/10; object-fit: cover; border-radius: 12px; display: block; }\n.lfd-art__cap { font: 400 12px\/1.6 var(--lfd-sans); color: var(--lfd-muted); margin-top: 10px; }\n\n.lfd-art__faqwrap { margin-top: 64px; padding-top: 44px; border-top: 1px solid var(--lfd-border); }\n.lfd-art__faqwrap h2 { margin: 0; }\n.lfd-art__faqwrap .lfd-faq { margin-top: 24px; }\n\n.lfd-helpful { margin-top: 44px; background: var(--lfd-cream); border: 1px solid var(--lfd-border); border-radius: 12px;\n  padding: 24px 26px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }\n.lfd-helpful__t { font: 600 16px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-helpful__n { font: 400 13px var(--lfd-sans); color: var(--lfd-muted); margin-top: 4px; }\n.lfd-helpful__btns { display: flex; gap: 10px; }\n.lfd .lfd-helpful__b { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--lfd-border);\n  color: var(--lfd-navy); border-radius: 8px; padding: 11px 20px; font: 500 14px var(--lfd-sans); cursor: pointer; }\n.lfd .lfd-helpful__b:hover { background: var(--lfd-navy); border-color: var(--lfd-navy); color: #fff; }\n\n.lfd-toc { flex: 0 0 260px; position: sticky; top: 24px; }\n.lfd-toc__in { border-left: 1px solid var(--lfd-border); padding-left: 22px; }\n.lfd-toc__k { font: 500 10px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-toc__list { display: flex; flex-direction: column; gap: 11px; margin-top: 16px; }\n.lfd .lfd-toc__list a { font: 400 13px\/1.5 var(--lfd-sans); color: var(--lfd-navy); text-decoration: none; }\n.lfd .lfd-toc__list a:hover { color: var(--lfd-bronze); }\n.lfd-toc__foot { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--lfd-border);\n  font: 400 13px\/1.65 var(--lfd-sans); color: var(--lfd-muted); }\n\n.lfd-rel { background: var(--lfd-cream); border-top: 1px solid var(--lfd-border); padding: 80px 0; }\n.lfd-rel__k { font: 500 11px var(--lfd-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-rel h2 { font: 600 28px var(--lfd-serif-display); color: var(--lfd-navy); margin: 8px 0 0; }\n.lfd-rel__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 28px; }\n.lfd .lfd-rel__card { text-decoration: none; background: #fff; border: 1px solid var(--lfd-border); border-radius: 12px;\n  overflow: hidden; display: flex; flex-direction: column; }\n.lfd-rel__media { width: 100%; height: 170px; flex: 0 0 170px; position: relative; overflow: hidden; }\n.lfd-rel__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-rel__txt { padding: 24px; display: flex; flex-direction: column; gap: 10px; }\n.lfd-rel__tag { font: 500 10px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-rel__t { font: 600 18px\/1.35 var(--lfd-serif-display); color: var(--lfd-navy); text-wrap: pretty; }\n.lfd-rel__d { font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-rel__r { font: 400 12px var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n.lfd-rel__back { margin-top: 36px; }\n\n@media (max-width: 900px) {\n  .lfd-art-head__row { flex-direction: column; align-items: flex-start; gap: 28px; }\n  .lfd-art-head__media { flex: 0 0 auto; width: 100%; height: 220px; }\n  .lfd-art__h1 { font-size: 30px; }\n  .lfd-art-grid { flex-direction: column; gap: 40px; }\n  .lfd-toc { position: static; flex: 0 0 auto; width: 100%; order: -1; }\n  .lfd-art__col { max-width: 100%; }\n  .lfd-rel { padding: 56px 0; }\n  .lfd-helpful { flex-direction: column; align-items: flex-start; }\n}\n\n\/* ===========================================================================\n   HELP CATEGORY  (\/help\/getting-started\/)  \u2014 added 2026-09-11\n   Measured off the rendered design source at 1920px, not read off its inline\n   styles: hero min-height 420 with a 90deg navy gradient over the photo,\n   H1 700 52px\/1.12 Fraunces white, content column 900 (820 inner at 40px pad),\n   FAQ card 820x\u2014, #fff, 1px #E8E4DC, radius 12, padding 22\/24.\n   The FAQ reuses the shared `.lfd-faq` skin, with per-item ids for deep links.\n   =========================================================================== *\/\n.lfd-cat-hero { position: relative; min-height: 420px; display: flex; align-items: center; overflow: hidden; }\n.lfd .lfd-cat-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n\/* Gradient lives on a plain child div, never on an Elementor container \u2014 the\n   lazy-loader strips background-image from containers 3+ with !important. *\/\n.lfd-cat-hero__scrim { position: absolute; inset: 0; pointer-events: none;\n  background: linear-gradient(90deg, rgba(20,32,58,0.92) 0%, rgba(20,32,58,0.62) 55%, rgba(20,32,58,0.30) 100%); }\n.lfd-cat-hero__inner { position: relative; max-width: var(--lfd-maxw); margin: 0 auto;\n  padding: 56px 40px 64px; box-sizing: border-box; width: 100%; }\n.lfd-cat-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px;\n  font: 400 12px var(--lfd-sans); color: rgba(255,255,255,0.65); }\n.lfd .lfd-cat-crumb a { color: rgba(255,255,255,0.65); text-decoration: none; }\n.lfd .lfd-cat-crumb a:hover { color: #fff; }\n.lfd-cat-crumb__sep { color: rgba(255,255,255,0.35); }\n.lfd-cat-crumb__cur { color: #fff; }\n.lfd-cat-hero__back { margin-top: 20px; }\n.lfd .lfd-cat-hero__back a { display: inline-flex; align-items: center; gap: 8px;\n  font: 400 13px var(--lfd-sans); color: rgba(255,255,255,0.70); text-decoration: none; }\n.lfd .lfd-cat-hero__back a:hover { color: #fff; }\n.lfd-cat-hero__txt { max-width: 720px; margin-top: 20px; }\n.lfd-cat-hero__k { font: 500 11px var(--lfd-sans); letter-spacing: 0.14em; text-transform: uppercase;\n  color: var(--lfd-bronze); margin-bottom: 12px; }\n.lfd-cat-hero__h1 { font: 700 52px\/1.12 var(--lfd-serif); color: #fff; margin: 0; }\n.lfd-cat-hero__p { font: 400 17px\/1.7 var(--lfd-sans); color: rgba(255,255,255,0.78); margin: 16px 0 0; max-width: 560px; }\n\n.lfd-cat-body { background: #fff; padding: 56px 0 88px; }\n.lfd-cat-wrap { max-width: 900px; margin: 0 auto; padding: 0 40px; box-sizing: border-box; }\n.lfd-cat__k { font: 500 11px var(--lfd-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--lfd-bronze); }\n\n.lfd .lfd-feat { display: flex; gap: 28px; align-items: stretch; text-decoration: none; background: #fff;\n  border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; margin-top: 14px;\n  box-shadow: 0 4px 20px rgba(20,32,58,0.06); }\n.lfd .lfd-feat:hover { box-shadow: 0 8px 28px rgba(20,32,58,0.12); }\n.lfd-feat__media { flex: 0 0 260px; position: relative; }\n.lfd-feat__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-feat__txt { flex: 1; min-width: 0; padding: 30px 32px 30px 4px; display: flex; flex-direction: column;\n  justify-content: center; gap: 10px; }\n.lfd-feat__t { font: 600 24px\/1.3 var(--lfd-serif-display); color: var(--lfd-navy); text-wrap: pretty; }\n.lfd-feat__d { font: 400 15px\/1.7 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-feat__meta { display: flex; align-items: center; gap: 8px; font: 400 13px var(--lfd-sans);\n  color: var(--lfd-muted); margin-top: 4px; }\n\n.lfd-cat-faq { margin-top: 56px; }\n.lfd-cat-faq h2 { font: 600 26px var(--lfd-serif-display); color: var(--lfd-navy); margin: 0; }\n.lfd-cat-faq .lfd-faq { margin-top: 22px; }\n\/* the hash target is the ITEM, so keep it clear of the sticky admin bar *\/\n.lfd-cat-faq .lfd-faq__item { scroll-margin-top: 24px; }\n\n.lfd-still { margin-top: 56px; background: var(--lfd-navy); border-radius: 12px; padding: 40px;\n  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }\n.lfd-still__t { font: 600 24px var(--lfd-serif-display); color: #fff; }\n.lfd-still__p { font: 400 15px\/1.7 var(--lfd-sans); color: rgba(255,255,255,0.70); margin-top: 8px; max-width: 440px; }\n.lfd-still__btns { display: flex; flex-wrap: wrap; gap: 12px; }\n.lfd .lfd-still__wa { display: inline-flex; align-items: center; gap: 10px; background: var(--lfd-bronze);\n  color: #fff; border-radius: 8px; padding: 14px 24px; font: 500 15px var(--lfd-sans); text-decoration: none; }\n.lfd .lfd-still__wa:hover { background: #8f6e26; }\n.lfd .lfd-still__alt { display: inline-flex; align-items: center; gap: 10px; background: transparent;\n  border: 1px solid rgba(255,255,255,0.35); color: #fff; border-radius: 8px; padding: 14px 24px;\n  font: 500 15px var(--lfd-sans); text-decoration: none; }\n.lfd .lfd-still__alt:hover { border-color: #fff; }\n.lfd-cat-back { margin-top: 36px; }\n\n\/* Search results injected into \/help\/ from the hidden category index *\/\n.lfd-xres { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }\n.lfd .lfd-xres__item { display: block; text-decoration: none; background: #fff; border: 1px solid var(--lfd-border);\n  border-radius: 12px; padding: 18px 20px; }\n.lfd .lfd-xres__item:hover { border-color: var(--lfd-bronze); }\n.lfd-xres__cat { font: 500 10px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-xres__q { font: 600 15px var(--lfd-serif-display); color: var(--lfd-navy); margin-top: 6px; }\n.lfd-xres__s { font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n\n@media (max-width: 900px) {\n  .lfd-cat-hero { min-height: 320px; }\n  .lfd-cat-hero__inner { padding: 40px 20px 44px; }\n  .lfd-cat-hero__h1 { font-size: 32px; }\n  .lfd-cat-hero__p { font-size: 15px; }\n  .lfd-cat-wrap { padding: 0 20px; }\n  .lfd .lfd-feat { flex-direction: column; gap: 0; }\n  .lfd-feat__media { flex: 0 0 180px; height: 180px; }\n  .lfd-feat__txt { padding: 22px 22px 24px; }\n  .lfd-feat__t { font-size: 20px; }\n  .lfd-still { flex-direction: column; align-items: flex-start; padding: 28px 22px; }\n}\n\n\/* Navy outline button for LIGHT sections \u2014 the \"Back to Help Centre\" control on\n   the help article and the help category page. Added 2026-09-11 to fix a real\n   defect: both were using `.lfd-btn--ghost`, which is white-on-transparent for\n   DARK bands, so on a white\/cream section the border and label were invisible.\n   Matches the design: transparent, 1px navy, navy label, radius 8, 13\/24, 500 14px. *\/\n.lfd .lfd-btn--outline-navy { background: transparent; color: var(--lfd-navy);\n  border: 1px solid var(--lfd-navy); border-radius: 8px; padding: 13px 24px;\n  font: 500 14px var(--lfd-sans); display: inline-flex; align-items: center; gap: 10px;\n  text-decoration: none; }\n.lfd .lfd-btn--outline-navy:hover { background: var(--lfd-navy); color: #fff; }\n\n\/* =============================================================================\n   HELP ARTICLE #2 \u2014 Payments & Pricing (Help-Article-Pricing.dc.html), 2026-09-14.\n   Reuses the whole article #1 skin; only the blocks article #1 has no equivalent for\n   are new. Plain background-COLOR everywhere (no gradients): the chart and the table\n   sit in the 2nd container, which Elementor's lazy-load rule can strip.\n   ============================================================================= *\/\n.lfd-art__lede--m16 { margin: 16px 0 0; }\n.lfd-art__p--m18 { margin: 18px 0 0; }\n.lfd-art__p--m20 { margin: 20px 0 0; }\n.lfd-art__p--m30 { margin: 30px 0 0; }\n.lfd-art__col strong { color: var(--lfd-navy); font-weight: 600; }\n.lfd-art__fig--grid img { aspect-ratio: 1477 \/ 927; object-position: top center; border: 1px solid var(--lfd-border); }\n\n\/* two cost-summary cards *\/\n.lfd-psum { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 32px; }\n.lfd-psum__card { background: var(--lfd-cream); border: 1px solid var(--lfd-border); border-radius: 12px; padding: 22px 24px; }\n.lfd-psum__who { font: 500 10px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-psum__h { font: 600 20px\/1.3 var(--lfd-serif-display); color: var(--lfd-navy); margin-top: 10px; }\n.lfd-psum__d { font: 400 14px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n\n\/* cumulative-cost chart (bars drawn to the design's own scale) *\/\n.lfd-chart { border: 1px solid var(--lfd-border); border-radius: 12px; background: #fff; padding: 28px 30px 24px; }\n.lfd-chart__t { font: 600 16px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-chart__s { font: 400 13px\/1.6 var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n.lfd-chart__legend { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 18px; }\n.lfd-chart__key { display: flex; align-items: center; gap: 8px; font: 400 12px var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-chart__sw { width: 12px; height: 12px; border-radius: 3px; background-color: #C9C3B6; display: inline-block; }\n.lfd-chart__sw--lux { background-color: var(--lfd-bronze); }\n.lfd-chart__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 28px; padding-top: 8px; }\n.lfd-chart__col { display: flex; flex-direction: column; gap: 12px; }\n.lfd-chart__plot { height: 210px; display: flex; align-items: flex-end; justify-content: center; gap: 14px; border-bottom: 1px solid var(--lfd-border); }\n.lfd-chart__bw { width: 44px; display: flex; flex-direction: column; align-items: center; gap: 6px; }\n.lfd-chart__v { font: 600 12px var(--lfd-sans); color: var(--lfd-muted); white-space: nowrap; }\n.lfd-chart__v--lux { color: var(--lfd-bronze); }\n.lfd-chart__bar { width: 44px; background-color: #C9C3B6; border-radius: 4px 4px 0 0; }\n.lfd-chart__bar--lux { background-color: var(--lfd-bronze); }\n.lfd-chart__x { font: 500 12px var(--lfd-sans); color: var(--lfd-navy); text-align: center; }\n.lfd-chart__foot { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--lfd-border); font: 400 13px\/1.7 var(--lfd-sans); color: var(--lfd-muted); }\n\n\/* traditional rental vs LuxFlat Direct *\/\n.lfd-cmp { margin-top: 26px; border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; }\n.lfd-cmp__row { display: grid; grid-template-columns: 1.1fr 1.3fr 1.3fr; border-top: 1px solid var(--lfd-border); }\n.lfd-cmp__row--head { background-color: var(--lfd-navy); border-top: 0; }\n.lfd-cmp__h { font: 500 11px var(--lfd-sans); letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.55); padding: 14px 18px; }\n.lfd-cmp__h--lux { color: #fff; }\n.lfd-cmp__c { font: 500 14px\/1.6 var(--lfd-sans); color: var(--lfd-navy); padding: 15px 18px; }\n.lfd-cmp__c--trad { font-weight: 400; color: var(--lfd-muted); border-left: 1px solid var(--lfd-border); }\n.lfd-cmp__c--lux { color: var(--lfd-forest); border-left: 1px solid var(--lfd-border); background-color: #FBFAF7; }\n\n@media (max-width: 767px) {\n  .lfd-chart { padding: 22px 18px 18px; }\n  .lfd-chart__grid { gap: 10px; }\n  .lfd-chart__plot { gap: 6px; }\n  .lfd-chart__bw, .lfd-chart__bar { width: 34px; }\n  .lfd-cmp__row { grid-template-columns: 1fr 1.2fr 1.2fr; }\n  .lfd-cmp__h, .lfd-cmp__c { padding: 12px 10px; font-size: 13px; }\n  .lfd-cmp__h { font-size: 10px; letter-spacing: 0.06em; }\n}\n\n\/* =============================================================================\n   HELP ARTICLE #3 \u2014 Documents & Verification (Help-Article-Verification.dc.html),\n   2026-09-14. Reuses the article skin and the pricing article's `lfd-psum` cards.\n   ============================================================================= *\/\n.lfd-art__p--m24 { margin: 24px 0 0; }\n.lfd-psum--docs { margin-top: 26px; }\n.lfd-psum--docs .lfd-psum__h { font-size: 19px; }\n.lfd-art__steps-wrap .lfd-art__steps { gap: 18px; margin-top: 24px; }\n.lfd-art__fig--portal-docs img { aspect-ratio: 1284 \/ 929; object-fit: contain; background-color: #fff; border: 1px solid var(--lfd-border); }\n.lfd-art__fig--portal-qual img { aspect-ratio: 1282 \/ 837; object-fit: contain; background-color: #fff; border: 1px solid var(--lfd-border); }\n\n\/* =============================================================================\n   BLOG LISTING (\/blog\/) \u2014 Blog.dc.html, 2026-09-14.\n   Header band and crumb reuse the article skin (`lfd-crumb`). Plain background-COLOR\n   only (no gradients): see the Elementor lazy-load note.\n   ============================================================================= *\/\n.lfd-blog-head { background: var(--lfd-cream); border-bottom: 1px solid var(--lfd-border); padding: 32px 0 52px; }\n.lfd-blog-head__txt { max-width: 660px; margin-top: 26px; }\n.lfd-blog-head__k, .lfd-blog__k { font: 500 11px var(--lfd-sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-blog-head__h1 { font: 700 48px\/1.14 var(--lfd-serif); color: var(--lfd-navy); margin: 12px 0 0; }\n.lfd-blog-head__p { font: 400 17px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin: 16px 0 0; }\n\n.lfd-blog-body { background: #fff; padding: 56px 0 96px; }\n\n\/* featured post \u2014 46% image \/ text, the design's large card *\/\n.lfd .lfd-bfeat { display: flex; align-items: stretch; text-decoration: none; background: #fff; border: 1px solid var(--lfd-border);\n  border-radius: 12px; overflow: hidden; margin-top: 14px; box-shadow: 0 4px 20px rgba(20,32,58,0.06); transition: box-shadow 150ms ease-out; }\n.lfd .lfd-bfeat:hover { box-shadow: 0 8px 28px rgba(20,32,58,0.12); }\n.lfd-bfeat__media { flex: 0 0 46%; position: relative; min-height: 340px; }\n.lfd-bfeat__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-bfeat__txt { flex: 1; min-width: 0; padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }\n.lfd-bfeat__tag, .lfd-bcard__tag { font: 500 10px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-bfeat__t { font: 600 32px\/1.24 var(--lfd-serif-display); color: var(--lfd-navy); text-wrap: pretty; }\n.lfd-bfeat__d { font: 400 16px\/1.7 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-bfeat__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font: 400 13px var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n.lfd-bfeat__read { display: flex; align-items: center; gap: 7px; }\n.lfd-bfeat__dot, .lfd-bcard__dot { color: #C9C3B6; }\n\n\/* category tabs + grid + cards \u2014 rendered only once there is more than one post *\/\n.lfd-btabs { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 56px; padding-bottom: 24px; border-bottom: 1px solid var(--lfd-border); }\n.lfd .lfd-btab { background: #fff; border: 1px solid var(--lfd-border); color: var(--lfd-navy); border-radius: 20px; padding: 9px 18px;\n  font: 500 13px var(--lfd-sans); cursor: pointer; white-space: nowrap; }\n.lfd .lfd-btab.is-active { background: var(--lfd-navy); border-color: var(--lfd-navy); color: #fff; }\n.lfd-bgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }\n.lfd-btabs + .lfd-bgrid { margin-top: 32px; }\n.lfd-bfeat + .lfd-bgrid { margin-top: 56px; }\n.lfd .lfd-bcard { text-decoration: none; background: #fff; border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; }\n.lfd-bcard[hidden] { display: none; }\n.lfd-bcard__media { width: 100%; height: 190px; flex: 0 0 190px; position: relative; overflow: hidden; }\n.lfd-bcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }\n.lfd-bcard__txt { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }\n.lfd-bcard__t { font: 600 19px\/1.35 var(--lfd-serif-display); color: var(--lfd-navy); text-wrap: pretty; }\n.lfd-bcard__d { font: 400 14px\/1.65 var(--lfd-sans); color: var(--lfd-muted); }\n.lfd-bcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font: 400 12px var(--lfd-sans); color: var(--lfd-muted); margin-top: auto; padding-top: 12px; }\n.lfd-bmore { display: flex; justify-content: center; margin-top: 44px; }\n.lfd-bcount { margin-top: 44px; font: 400 13px var(--lfd-sans); color: var(--lfd-muted); text-align: center; }\n\n@media (max-width: 1024px) {\n  .lfd-bgrid { grid-template-columns: repeat(2, 1fr); }\n  .lfd-bfeat__txt { padding: 32px; }\n  .lfd-bfeat__t { font-size: 26px; }\n}\n@media (max-width: 767px) {\n  .lfd-blog-head__h1 { font-size: 34px; }\n  .lfd .lfd-bfeat { flex-direction: column; }\n  .lfd-bfeat__media { flex: 0 0 auto; min-height: 220px; }\n  .lfd-bfeat__txt { padding: 24px; }\n  .lfd-bfeat__t { font-size: 22px; }\n  .lfd-bgrid { grid-template-columns: 1fr; gap: 16px; }\n}\n\n\/* =============================================================================\n   BLOG ARTICLE \u2014 neighbourhoods guide (Blog-Article.dc.html), 2026-09-14.\n   Reuses the article skin; only the callout, the numbered decision questions and the\n   price table are new. background-COLOR only (lazy-load rule).\n   ============================================================================= *\/\n.lfd-art__p--m26 { margin: 26px 0 0; }\n.lfd-art__p--m28 { margin: 28px 0 0; }\n.lfd-art__p--navy { color: var(--lfd-navy); }\n.lfd-art__fig--nb img { aspect-ratio: 16 \/ 9; }\n\n.lfd-nb-callout { margin-top: 26px; border: 1px solid var(--lfd-border); border-left: 3px solid var(--lfd-bronze); border-radius: 12px;\n  padding: 22px 24px; background-color: var(--lfd-cream); }\n.lfd-nb-callout__t { font: 600 16px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-nb-callout__d { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n\n.lfd-nb-qs { display: flex; flex-direction: column; gap: 26px; margin-top: 26px; }\n.lfd-nb-q { display: flex; gap: 16px; align-items: flex-start; }\n.lfd-nb-q__n { flex: 0 0 30px; height: 30px; border-radius: 20px; background-color: var(--lfd-navy); color: #fff;\n  font: 600 13px var(--lfd-sans); display: flex; align-items: center; justify-content: center; margin-top: 2px; }\n.lfd-nb-q__b { min-width: 0; }\n.lfd-nb-q__t { font: 600 18px\/1.4 var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-nb-q__a { font: 400 16px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n.lfd-nb-q__c { font: 400 16px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 12px; }\n\n\/* price table \u2014 a real <table>; scrolls horizontally inside its own box on small screens *\/\n.lfd-nb-table-wrap { margin-top: 26px; border: 1px solid var(--lfd-border); border-radius: 12px; overflow-x: auto; -webkit-overflow-scrolling: touch; }\n.lfd .lfd-nb-table { width: 100%; min-width: 560px; border-collapse: collapse; margin: 0; }\n.lfd .lfd-nb-table th, .lfd .lfd-nb-table td { text-align: left; vertical-align: top; padding: 15px 16px; border: 0; }\n.lfd .lfd-nb-table thead th { background-color: var(--lfd-navy); font: 500 11px var(--lfd-sans); letter-spacing: 0.1em; text-transform: uppercase;\n  color: rgba(255,255,255,0.55); padding: 14px 16px; }\n.lfd .lfd-nb-table thead th.is-price { color: #fff; }\n.lfd .lfd-nb-table tbody tr { border-top: 1px solid var(--lfd-border); }\n.lfd .lfd-nb-table tbody th { font: 500 14px\/1.6 var(--lfd-sans); color: var(--lfd-navy); background-color: #fff; }\n.lfd .lfd-nb-table tbody td { font: 400 14px\/1.6 var(--lfd-sans); color: var(--lfd-muted); border-left: 1px solid var(--lfd-border); background-color: #fff; }\n.lfd .lfd-nb-table tbody td.is-price { font-weight: 500; color: var(--lfd-forest); background-color: #FBFAF7; white-space: nowrap; }\n\n.lfd-rel--back-only { padding: 56px 0; }\n.lfd-rel--back-only .lfd-rel__back { margin-top: 0; }\n\n\/* =============================================================================\n   BLOG ARTICLE \u2014 furnished vs unfurnished (Blog-Article-Furnished.dc.html), 2026-09-15.\n   Reuses the article skin, `lfd-psum` (short answer), `lfd-cmp` (side by side) and\n   `lfd-nb-callout` (edge case). New: the break-even box and the paired \"Choose \u2026 if\" cards.\n   Values are the design's inline styles. background-COLOR only (lazy-load rule).\n   ============================================================================= *\/\n.lfd-art__lede--m20 { margin: 20px 0 0; }\n.lfd-psum--fv { margin-top: 22px; }\n.lfd-cmp--fv .lfd-cmp__row { grid-template-columns: 1fr 1.3fr 1.3fr; }\n.lfd-art__note { font: 400 13px\/1.7 var(--lfd-sans); color: var(--lfd-muted); margin: 14px 0 0; }\n.lfd-nb-callout--m22 { margin-top: 22px; }\n\n.lfd-fv-calc { margin-top: 26px; background-color: var(--lfd-navy); border-radius: 12px; padding: 30px 32px; }\n.lfd-fv-calc__t { font: 600 18px var(--lfd-serif-display); color: #fff; }\n.lfd-fv-calc__rows { margin-top: 18px; display: flex; flex-direction: column; gap: 14px; }\n.lfd-fv-calc__r { font: 400 15px\/1.6 var(--lfd-sans); color: rgba(255,255,255,0.80); }\n\/* (0-2-1) so it beats `.lfd-art__col strong` (0-1-1), which paints every strong navy *\/\n.lfd-art__col .lfd-fv-calc strong { color: var(--lfd-bronze); font-weight: 600; }\n.lfd-fv-calc__hr { height: 1px; background-color: rgba(255,255,255,0.14); }\n.lfd-fv-calc__n { font: 400 14px\/1.7 var(--lfd-sans); color: rgba(255,255,255,0.65); margin-top: 18px; }\n\n.lfd-fv-who { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-top: 24px; }\n.lfd-fv-who__card { border: 1px solid var(--lfd-border); border-radius: 12px; padding: 26px 28px; background-color: #fff; }\n.lfd-fv-who__card--f { background-color: #FBFAF7; }\n.lfd-fv-who__t { font: 600 20px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-fv-who__list { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }\n.lfd-fv-who__i { display: flex; gap: 10px; align-items: flex-start; }\n.lfd-fv-who__i svg { margin-top: 4px; flex-shrink: 0; }\n.lfd-fv-who__i div { font: 400 15px\/1.65 var(--lfd-sans); color: var(--lfd-muted); }\n\n@media (max-width: 767px) {\n  .lfd-fv-calc { padding: 24px 20px; }\n  .lfd-fv-who__card { padding: 22px 20px; }\n}\n\n\/* =============================================================================\n   BLOG ARTICLE \u2014 cost to rent (Blog-Article-Cost.dc.html), 2026-09-15.\n   Reuses the furnished article's pieces; new: the h3, two `lfd-cmp` table variants (4 and 3\n   columns, 16px cell padding) and the numbered \"levers\" variant of `lfd-nb-q`.\n   Values are the design's inline styles. background-COLOR only (lazy-load rule).\n   ============================================================================= *\/\n\/* (0-2-0) so it beats the theme kit's `.elementor-kit-7 h3` (0-1-1) *\/\n.lfd-art__col .lfd-art__h3 { font: 600 20px var(--lfd-serif-display); color: var(--lfd-navy); margin: 36px 0 0; }\n.lfd-art__p--m14 { margin: 14px 0 0; }\n\n.lfd-cmp--cost4 { margin-top: 22px; }\n.lfd-cmp--cost4 .lfd-cmp__row { grid-template-columns: 0.9fr 1fr 1fr 1.6fr; }\n.lfd-cmp--cost3 .lfd-cmp__row { grid-template-columns: 1fr 1.1fr 1.8fr; }\n.lfd-cmp--cost4 .lfd-cmp__h, .lfd-cmp--cost3 .lfd-cmp__h { padding: 14px 16px; }\n.lfd-cmp--cost4 .lfd-cmp__c, .lfd-cmp--cost3 .lfd-cmp__c { padding: 15px 16px; }\n.lfd-cmp__c--sm { font-size: 13px; }\n.lfd-cmp__c--nowrap { white-space: nowrap; }\n\n.lfd-nb-qs--levers { gap: 20px; margin-top: 24px; }\n.lfd-nb-qs--levers .lfd-nb-q__t { font-size: 17px; }\n.lfd-nb-qs--levers .lfd-nb-q__a { margin-top: 6px; }\n\n@media (max-width: 767px) {\n  .lfd-cmp--cost4 .lfd-cmp__row { grid-template-columns: 0.9fr 1fr 1fr 1.4fr; }\n  .lfd-cmp--cost4 .lfd-cmp__h, .lfd-cmp--cost4 .lfd-cmp__c,\n  .lfd-cmp--cost3 .lfd-cmp__h, .lfd-cmp--cost3 .lfd-cmp__c { padding: 12px 8px; }\n  .lfd-cmp__c--nowrap { white-space: normal; }\n}\n\n@media (max-width: 767px) {\n  .lfd .lfd-nb-table th, .lfd .lfd-nb-table td { padding: 12px 12px; }\n  .lfd-nb-q__t { font-size: 17px; }\n}\n\n\/* =============================================================================\n   BLOG ARTICLE \u2014 digital nomad \/ freelancer (Blog-Article-Nomad.dc.html), 2026-09-15.\n   Reuses the cost article's pieces (levers variant for the three conditions). New: the\n   disclaimer and closing notes, visa-path cards, pull quote, \"Where LuxFlat Direct fits\" box,\n   permit sequence, budget cards and pinned area list.\n   Values are the design's inline styles. background-COLOR only (lazy-load rule).\n   ============================================================================= *\/\n.lfd-nm-m24 { margin: 24px 0 0; }\n.lfd-nm-m32 { margin: 32px 0 0; }\n\n.lfd-nm-note { display: flex; gap: 12px; align-items: flex-start; border: 1px solid #E0CFA8; border-left: 3px solid var(--lfd-bronze);\n  border-radius: 12px; padding: 22px 24px; background-color: #FBF6EC; }\n.lfd-nm-note svg { margin-top: 3px; flex-shrink: 0; }\n.lfd-nm-note__t { font: 600 16px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-nm-note__d { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n\n.lfd-nm-paths { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }\n.lfd-nm-path { border: 1px solid var(--lfd-border); border-radius: 12px; padding: 22px 24px; background-color: #FBFAF7; }\n.lfd-nm-path__k { font: 500 10px var(--lfd-sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--lfd-bronze); }\n.lfd-nm-path__t { font: 600 18px var(--lfd-serif-display); color: var(--lfd-navy); margin-top: 6px; }\n.lfd-nm-path__d { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 10px; }\n\n.lfd-nm-quote { margin-top: 28px; border-left: 3px solid var(--lfd-navy); padding: 6px 0 6px 24px; }\n.lfd-nm-quote__t { font: 600 24px\/1.45 var(--lfd-serif-display); color: var(--lfd-navy); text-wrap: pretty; }\n.lfd-nm-quote__d { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 12px; }\n\n.lfd-nm-fit { margin-top: 32px; border: 1px solid var(--lfd-border); border-radius: 12px; padding: 26px 28px; background-color: var(--lfd-cream); }\n.lfd-nm-fit__t { font: 600 19px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-nm-fit__d { font: 400 16px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 10px; }\n.lfd-nm-fit__d--m14 { margin-top: 14px; }\n.lfd-nm-fit__cta { margin-top: 18px; }\n\/* (0-3-1), later in the file, so it beats `.lfd .lfd-art__col a` and its :hover *\/\n.lfd .lfd-art__col a.lfd-nm-fit__btn { display: inline-flex; align-items: center; gap: 8px; background-color: var(--lfd-bronze); color: #fff;\n  border-radius: 8px; padding: 12px 22px; font: 500 14px var(--lfd-sans); text-decoration: none; }\n.lfd .lfd-art__col a.lfd-nm-fit__btn:hover { background-color: var(--lfd-navy); color: #fff; }\n\n.lfd-nm-seq { margin-top: 26px; border: 1px solid var(--lfd-border); border-radius: 12px; overflow: hidden; }\n.lfd-nm-seq__h { background-color: var(--lfd-navy); padding: 14px 18px; font: 500 11px var(--lfd-sans); letter-spacing: 0.1em;\n  text-transform: uppercase; color: #fff; }\n.lfd-nm-seq__r { display: flex; gap: 14px; align-items: flex-start; padding: 15px 18px; border-top: 1px solid var(--lfd-border); }\n.lfd-nm-seq__n { flex: 0 0 24px; height: 24px; border-radius: 20px; background-color: var(--lfd-cream); border: 1px solid var(--lfd-border);\n  color: var(--lfd-navy); font: 600 12px var(--lfd-sans); display: flex; align-items: center; justify-content: center; box-sizing: border-box; }\n.lfd-nm-seq__d { font: 400 15px\/1.65 var(--lfd-sans); color: var(--lfd-muted); min-width: 0; }\n\n.lfd-nm-costs { display: flex; flex-direction: column; gap: 18px; margin-top: 24px; }\n.lfd-nm-cost { border: 1px solid var(--lfd-border); border-radius: 12px; padding: 20px 22px; }\n.lfd-nm-cost__top { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }\n.lfd-nm-cost__t { font: 600 17px var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-nm-cost__fig { font: 600 15px var(--lfd-sans); color: var(--lfd-forest); white-space: nowrap; }\n.lfd-nm-cost__d { font: 400 15px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 8px; }\n\n.lfd-nm-areas { display: flex; flex-direction: column; gap: 18px; margin-top: 24px; }\n.lfd-nm-area { display: flex; gap: 16px; align-items: flex-start; }\n.lfd-nm-area svg { margin-top: 5px; flex-shrink: 0; }\n.lfd-nm-area__b { min-width: 0; }\n.lfd-nm-area__t { font: 600 17px\/1.4 var(--lfd-serif-display); color: var(--lfd-navy); }\n.lfd-nm-area__d { font: 400 16px\/1.75 var(--lfd-sans); color: var(--lfd-muted); margin-top: 6px; }\n\n.lfd-nm-foot { margin-top: 36px; border: 1px solid #E0CFA8; border-radius: 12px; padding: 20px 24px; background-color: #FBF6EC;\n  font: 400 14px\/1.7 var(--lfd-sans); color: var(--lfd-muted); }\n\n@media (max-width: 767px) {\n  .lfd-nm-note, .lfd-nm-path { padding: 20px; }\n  .lfd-nm-quote__t { font-size: 21px; }\n  .lfd-nm-fit { padding: 22px 20px; }\n  .lfd .lfd-art__col a.lfd-nm-fit__btn { display: flex; justify-content: center; text-align: center; }\n}\n\n<\/style>\n<script>\n\/* ==========================================================================\n   LuxFlat Direct \u2014 shared page behaviour\n   Replaces the Claude Design DC runtime (support.js \/ image-slot.js \/ DCLogic)\n   with plain vanilla JS. Loaded ONCE per page.\n\n   Provides:\n     - FAQ accordions            [data-lfd-faq]        (all four pages; the attribute\n                                                        value names the block class)\n     - Tenant\/landlord toggle    [data-lfd-toggle]     (how-it-works)  \u2014 replaces state.tab\n     - Help article filtering    [data-lfd-help-search] (help-centre)\n   Idempotent: safe to run twice (guards against double-binding).\n   ========================================================================== *\/\n(function () {\n  'use strict';\n\n  var BOUND = 'lfdBound';\n\n  function ready(fn) {\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', fn);\n    } else {\n      fn();\n    }\n  }\n\n  \/* ---------------------------------------------------------------- FAQ --\n     Markup contract:\n       <div data-lfd-faq>                        <- block class defaults to \"lfd-faq\"\n         <div class=\"lfd-faq__item is-open\">\n           <button class=\"lfd-faq__q\" aria-expanded=\"true\" aria-controls=\"ID\">\u2026<\/button>\n           <div class=\"lfd-faq__a\" id=\"ID\" role=\"region\">\u2026<\/div>\n         <\/div>\n       <\/div>\n     The attribute VALUE overrides the block class, so a page can carry a second,\n     visually different accordion without forking this function:\n       <div class=\"lfd-hfaq\" data-lfd-faq=\"lfd-hfaq\">  <- help-centre's design has a\n     leading doc icon and a chevron that rotates 90deg rather than 180deg, so it is a\n     separate component from the `.lfd-faq` the other three pages use.\n     Mirrors the DC behaviour: openIndex starts at 0, clicking an open item\n     closes it (openIndex -> -1). Single-open, like the original.\n  ---------------------------------------------------------------------- *\/\n  function initFaq(root) {\n    if (root[BOUND]) { return; }\n    root[BOUND] = true;\n\n    var block = root.getAttribute('data-lfd-faq') || 'lfd-faq';\n    var items = Array.prototype.slice.call(root.querySelectorAll('.' + block + '__item'));\n\n    function setOpen(item, open) {\n      item.classList.toggle('is-open', open);\n      var btn = item.querySelector('.' + block + '__q');\n      if (btn) { btn.setAttribute('aria-expanded', open ? 'true' : 'false'); }\n    }\n\n    items.forEach(function (item) {\n      var btn = item.querySelector('.' + block + '__q');\n      if (!btn) { return; }\n      btn.addEventListener('click', function () {\n        var isOpen = item.classList.contains('is-open');\n        items.forEach(function (other) { setOpen(other, false); });\n        setOpen(item, !isOpen);\n      });\n    });\n  }\n\n  \/* ------------------------------------------------- tenant\/landlord tabs --\n     Markup contract:\n       <div data-lfd-toggle>\n         <button role=\"tab\" aria-selected=\"true\"  aria-controls=\"panel-tenant\">\u2026<\/button>\n         <button role=\"tab\" aria-selected=\"false\" aria-controls=\"panel-landlord\">\u2026<\/button>\n       <\/div>\n       <div id=\"panel-tenant\">\u2026<\/div>\n       <div id=\"panel-landlord\" hidden>\u2026<\/div>\n     Replaces how-it-works' DCLogic `state.tab`. Also supports ?tab=landlord\n     in the URL and full keyboard arrow-key navigation.\n  ---------------------------------------------------------------------- *\/\n  function initToggle(root) {\n    if (root[BOUND]) { return; }\n    root[BOUND] = true;\n\n    var tabs = Array.prototype.slice.call(root.querySelectorAll('[role=\"tab\"]'));\n    if (!tabs.length) { return; }\n\n    function panelFor(tab) {\n      var id = tab.getAttribute('aria-controls');\n      return id ? document.getElementById(id) : null;\n    }\n\n    function select(tab, focus) {\n      tabs.forEach(function (t) {\n        var on = t === tab;\n        t.setAttribute('aria-selected', on ? 'true' : 'false');\n        t.setAttribute('tabindex', on ? '0' : '-1');\n        var p = panelFor(t);\n        if (p) { p.hidden = !on; }\n      });\n      if (focus) { tab.focus(); }\n    }\n\n    tabs.forEach(function (tab, i) {\n      tab.addEventListener('click', function () { select(tab, false); });\n      tab.addEventListener('keydown', function (e) {\n        var next = null;\n        if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { next = tabs[(i + 1) % tabs.length]; }\n        if (e.key === 'ArrowLeft'  || e.key === 'ArrowUp')   { next = tabs[(i - 1 + tabs.length) % tabs.length]; }\n        if (e.key === 'Home') { next = tabs[0]; }\n        if (e.key === 'End')  { next = tabs[tabs.length - 1]; }\n        if (next) { e.preventDefault(); select(next, true); }\n      });\n    });\n\n    \/\/ Deep-link support: \/how-it-works\/?tab=landlord\n    var want = null;\n    try { want = new URLSearchParams(window.location.search).get('tab'); } catch (err) { want = null; }\n    var initial = null;\n    if (want) {\n      initial = tabs.filter(function (t) { return t.getAttribute('data-lfd-tab') === want; })[0] || null;\n    }\n    select(initial || tabs.filter(function (t) { return t.getAttribute('aria-selected') === 'true'; })[0] || tabs[0], false);\n  }\n\n  \/* ------------------------------------------------- help article search --\n     Markup contract:\n       <input data-lfd-help-search data-lfd-target=\"help-results\">\n       <section data-lfd-filter-group>\n         <div class=\"lfd-tcard\" data-lfd-filter-item data-lfd-terms=\"extra keywords\">\u2026<\/div>\n         \u2026\n       <\/section>\n       <p class=\"lfd-noresults\" hidden>\u2026<span data-lfd-query><\/span>\u2026<\/p>\n     Client-side filtering over the topic cards AND the FAQ rows already in the page \u2014\n     each row's question and answer text is in the DOM, so it is part of the haystack.\n     No backend, and deliberately NOT the property-listings search: this searches the\n     help content on this page only. The no-results note must sit OUTSIDE every\n     [data-lfd-filter-group], or it gets hidden along with the group it lives in.\n  ---------------------------------------------------------------------- *\/\n  \/\/ ---------------------------------------------------------------------------\n  \/\/ Cross-page help index. \/help\/ only has the 8 sample FAQs in its own DOM, so\n  \/\/ questions that live on a CATEGORY page cannot be found by a pure DOM filter.\n  \/\/ A small hidden JSON array on \/help\/ carries {q, cat, snippet, url} for those,\n  \/\/ and matches are rendered as links into `[data-lfd-xres]`. Deliberately NOT the\n  \/\/ full answer text \u2014 matching + a preview only, so \/help\/'s DOM stays small.\n  function readHelpIndex() {\n    var node = document.querySelector('script[type=\"application\/json\"][data-lfd-help-index]');\n    if (!node) { return []; }\n    try { return JSON.parse(node.textContent) || []; } catch (e) { return []; }\n  }\n\n  function renderIndexResults(box, entries) {\n    if (!box) { return; }\n    if (!entries.length) { box.innerHTML = ''; box.hidden = true; return; }\n    var html = '';\n    for (var i = 0; i < entries.length; i++) {\n      var e = entries[i];\n      html += '<a class=\"lfd-xres__item\" href=\"' + e.url + '\">'\n            +   '<span class=\"lfd-xres__cat\">' + (e.category || 'Help') + '<\/span>'\n            +   '<span class=\"lfd-xres__q\">' + e.question + '<\/span>'\n            +   '<span class=\"lfd-xres__s\">' + (e.snippet || '') + '<\/span>'\n            + '<\/a>';\n    }\n    box.innerHTML = html;\n    box.hidden = false;\n  }\n\n  function initHelpSearch(input) {\n    if (input[BOUND]) { return; }\n    input[BOUND] = true;\n\n    \/\/ Scope document-wide so each filterable block can live in its own\n    \/\/ Elementor section and still be reordered independently.\n    var targetId = input.getAttribute('data-lfd-target');\n    var scope = (targetId && document.getElementById(targetId)) || document;\n\n    var groups = Array.prototype.slice.call(scope.querySelectorAll('[data-lfd-filter-group]'));\n    if (!groups.length) { groups = Array.prototype.slice.call(document.querySelectorAll('[data-lfd-filter-group]')); }\n    var empty = scope.querySelector('.lfd-noresults') || document.querySelector('.lfd-noresults');\n    var queryOut = empty ? empty.querySelector('[data-lfd-query]') : null;\n    var index = readHelpIndex();\n    var xbox = document.querySelector('[data-lfd-xres]');\n\n    function haystack(el) {\n      return (el.textContent + ' ' + (el.getAttribute('data-lfd-terms') || '')).toLowerCase();\n    }\n\n    function apply() {\n      var q = input.value.trim().toLowerCase();\n      var total = 0;\n\n      groups.forEach(function (group) {\n        var items = Array.prototype.slice.call(group.querySelectorAll('[data-lfd-filter-item]'));\n        var shown = 0;\n        items.forEach(function (item) {\n          var hit = !q || haystack(item).indexOf(q) !== -1;\n          item.hidden = !hit;\n          if (hit) { shown++; }\n        });\n        total += shown;\n        \/\/ hide a whole section (heading included) when nothing in it matches\n        group.hidden = q !== '' && shown === 0;\n      });\n\n      \/\/ Cross-page results, shown only once the visitor has typed something \u2014\n      \/\/ with an empty box \/help\/ must look exactly as it always has.\n      var hits = [];\n      if (q && index.length) {\n        for (var i = 0; i < index.length; i++) {\n          var e = index[i];\n          var hay = ((e.question || '') + ' ' + (e.category || '') + ' '\n                     + (e.snippet || '') + ' ' + (e.terms || '')).toLowerCase();\n          if (hay.indexOf(q) !== -1) { hits.push(e); }\n        }\n      }\n      renderIndexResults(xbox, hits);\n      total += hits.length;\n\n      if (empty) {\n        empty.hidden = !(q !== '' && total === 0);\n        if (queryOut) { queryOut.textContent = input.value.trim(); }\n      }\n    }\n\n    input.addEventListener('input', apply);\n    input.addEventListener('search', apply);\n    \/\/ Enter must not reload the page \u2014 this is a client-side filter\n    input.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter') { e.preventDefault(); apply(); }\n    });\n    var form = input.closest('form');\n    if (form) { form.addEventListener('submit', function (e) { e.preventDefault(); apply(); }); }\n\n    apply();\n  }\n\n  \/\/ ---------------------------------------------------------------------------\n  \/\/ Elementor's `tel` field rejects the space character. This is SERVER-side, not\n  \/\/ merely the HTML `pattern` attribute: proved 2026-09-11 by removing `pattern`\n  \/\/ and submitting anyway \u2014 the admin-ajax POST returns 200 carrying the same\n  \/\/ \"accepts only numbers and phone characters\" error, and no Submissions row is\n  \/\/ written. Luxembourg numbers are conventionally written in spaced groups and\n  \/\/ the field's own placeholder is `+352 \u2026`, so a landlord typing their number\n  \/\/ the normal way is blocked on a REQUIRED field of a lead-capture form.\n  \/\/\n  \/\/ Fix: strip whitespace from Elementor tel inputs before Elementor ever reads\n  \/\/ them. `type=\"tel\"` is kept, so mobile still gets the numeric keypad, and the\n  \/\/ user may still type spaces \u2014 they are tidied away on blur and guaranteed gone\n  \/\/ by submit. Only whitespace is touched; +, (), - and the rest are left alone.\n  \/\/\n  \/\/ The submit\/click listeners are on `document` and in the CAPTURE phase on\n  \/\/ purpose. A listener bound to the form itself would be at-target and would run\n  \/\/ AFTER Elementor's own handler, which is registered first \u2014 too late.\n  function stripTelSpaces(scope) {\n    (scope || document).querySelectorAll('input[type=\"tel\"]').forEach(function (el) {\n      var cleaned = el.value.replace(\/[\\s\\u00a0]+\/g, '');\n      if (cleaned !== el.value) { el.value = cleaned; }\n    });\n  }\n\n  function initTelNormalise() {\n    document.querySelectorAll('.elementor-form input[type=\"tel\"]').forEach(function (el) {\n      el.addEventListener('blur', function () { stripTelSpaces(el.form); });\n    });\n    document.addEventListener('submit', function (e) {\n      var form = e.target;\n      if (form && form.classList && form.classList.contains('elementor-form')) {\n        stripTelSpaces(form);\n      }\n    }, true);\n    document.addEventListener('click', function (e) {\n      var btn = e.target && e.target.closest\n        ? e.target.closest('.elementor-form button[type=\"submit\"]') : null;\n      if (btn) { stripTelSpaces(btn.form); }\n    }, true);\n  }\n\n  \/\/ ---------------------------------------------------------------------------\n  \/\/ Deep link into one FAQ row: \/help\/getting-started\/#create-tenant-profile\n  \/\/ opens that row and scrolls to it. The id is on the ITEM (see faq_block), so\n  \/\/ the browser's own anchor jump lands in the right place too; we re-scroll\n  \/\/ after opening because expanding the answer changes the offset.\n  function openFaqFromHash() {\n    var id = (window.location.hash || '').replace('#', '');\n    if (!id) { return; }\n    var item = document.getElementById(id);\n    if (!item || item.className.indexOf('lfd-faq__item') === -1) { return; }\n    if (item.className.indexOf('is-open') === -1) {\n      var btn = item.querySelector('.lfd-faq__q');\n      if (btn) { btn.click(); } else { item.className += ' is-open'; }\n    }\n    \/\/ Positioning is deliberately INSTANT and repeated, not one smooth animation.\n    \/\/ A smooth scroll here gets interrupted: the hero image and webfonts settle\n    \/\/ after the row expands, and the browser abandons the animation mid-flight\n    \/\/ (observed live \u2014 it travelled 16px and stopped). scrollIntoView honours the\n    \/\/ item's own `scroll-margin-top`, so the offset stays in CSS.\n    function place() {\n      try { item.scrollIntoView({ block: 'start' }); }\n      catch (e) { item.scrollIntoView(true); }\n    }\n    function placeSoon() { setTimeout(place, 60); setTimeout(place, 400); }\n    if (document.readyState === 'complete') { placeSoon(); }\n    else { window.addEventListener('load', placeSoon, { once: true }); }\n  }\n\n  ready(function () {\n    document.querySelectorAll('[data-lfd-faq]').forEach(initFaq);\n    document.querySelectorAll('[data-lfd-toggle]').forEach(initToggle);\n    document.querySelectorAll('[data-lfd-help-search]').forEach(initHelpSearch);\n    initTelNormalise();\n    openFaqFromHash();\n    window.addEventListener('hashchange', openFaqFromHash);\n  });\n}());\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9896f7b e-con-full e-flex e-con e-parent\" data-id=\"9896f7b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cf7b0de elementor-widget elementor-widget-html\" data-id=\"cf7b0de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"lfd lfd-band lfd-art-head\">\n  <div class=\"lfd-wrap\">\n    <nav class=\"lfd-crumb\" aria-label=\"Fil d\u2019Ariane\">\n      <a href=\"\/fr\/\">Accueil<\/a>\n      <span class=\"lfd-crumb__sep\" aria-hidden=\"true\">\/<\/span>\n      <a href=\"\/fr\/aide\/\">Centre d\u2019aide<\/a>\n      <span class=\"lfd-crumb__sep\" aria-hidden=\"true\">\/<\/span>\n      <a href=\"\/fr\/aide\/documents-et-verification\/\">Documents &amp; v\u00e9rification<\/a>\n      <span class=\"lfd-crumb__sep\" aria-hidden=\"true\">\/<\/span>\n      <span class=\"lfd-crumb__cur\">Faire v\u00e9rifier son dossier<\/span>\n    <\/nav>\n    <div class=\"lfd-art-head__row\">\n      <div class=\"lfd-art-head__main\">\n        <span class=\"lfd-art__badge\">Documents &amp; v\u00e9rification<\/span>\n        <h1 class=\"lfd-art__h1\">Faire v\u00e9rifier son dossier sur LuxFlat Direct : documents et v\u00e9rification expliqu\u00e9s<\/h1>\n        <div class=\"lfd-art__meta\">\n          <span><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>~4 min de lecture<\/span>\n          <span class=\"lfd-art__dot\" aria-hidden=\"true\">\u00b7<\/span>\n          <span>Derni\u00e8re mise \u00e0 jour : 14 septembre 2026<\/span>\n        <\/div>\n      <\/div>\n      <div class=\"lfd-art-head__media\">\n        <img fetchpriority=\"high\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/08\/luxflat-laptop-remote-work.webp\" alt=\"Appartement meubl\u00e9 au Luxembourg \u2014 visuel de l\u2019article sur la v\u00e9rification\" width=\"900\" height=\"506\" fetchpriority=\"high\" decoding=\"async\" class=\"lfd-art-head__img\">\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f2b9356 e-con-full e-flex e-con e-parent\" data-id=\"f2b9356\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-71851cd elementor-widget elementor-widget-html\" data-id=\"71851cd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"lfd lfd-band lfd-art-body\">\n  <div class=\"lfd-wrap\">\n    <div class=\"lfd-art-grid\">\n\n      <article class=\"lfd-art__col\">\n        <p class=\"lfd-art__lede\">Louer au Luxembourg suppose habituellement de constituer un dossier pour chaque appartement auquel on candidate. Sur LuxFlat Direct, vous ne le faites qu\u2019une fois. Deux documents, v\u00e9rifi\u00e9s sous 24 heures, et votre dossier est pr\u00eat \u00e0 \u00eatre adress\u00e9 \u00e0 n\u2019importe quelle annonce.<\/p>\n        <p class=\"lfd-art__sub\">C\u2019est tout l\u2019int\u00e9r\u00eat de la v\u00e9rification. Ce n\u2019est pas un obstacle &mdash; c\u2019est ce qui permet \u00e0 un propri\u00e9taire de dire oui rapidement, puisque vos justificatifs ont d\u00e9j\u00e0 \u00e9t\u00e9 contr\u00f4l\u00e9s avant m\u00eame qu\u2019il ne voie votre demande. Voici pr\u00e9cis\u00e9ment ce qu\u2019il faut r\u00e9unir, de part et d\u2019autre.<\/p>\n\n        <h2 id=\"tenants\">Ce que les locataires doivent fournir<\/h2>\n        <p class=\"lfd-art__p\">Deux documents. Tous deux obligatoires, tous deux t\u00e9l\u00e9vers\u00e9s s\u00e9par\u00e9ment dans votre espace locataire.<\/p>\n        <div class=\"lfd-psum lfd-psum--docs\">\n          <div class=\"lfd-psum__card\"><div class=\"lfd-psum__who\">Document 1<\/div><div class=\"lfd-psum__h\">Pi\u00e8ce d\u2019identit\u00e9 ou passeport<\/div><div class=\"lfd-psum__d\">Une carte d\u2019identit\u00e9 ou un passeport valide. Le document doit \u00eatre en cours de validit\u00e9, non expir\u00e9.<\/div><\/div>\n          <div class=\"lfd-psum__card\"><div class=\"lfd-psum__who\">Document 2<\/div><div class=\"lfd-psum__h\">Justificatif de revenus<\/div><div class=\"lfd-psum__d\">Des fiches de paie r\u00e9centes, ou votre contrat de travail ou convention de stage.<\/div><\/div>\n        <\/div>\n        <p class=\"lfd-art__p lfd-art__p--m24\">Les stagiaires, les ind\u00e9pendants et les nouveaux arrivants qui n\u2019ont pas encore \u00e9t\u00e9 r\u00e9mun\u00e9r\u00e9s peuvent pr\u00e9senter le contrat sign\u00e9 &mdash; aucun historique de versement n\u2019est n\u00e9cessaire pour \u00eatre qualifi\u00e9.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Les formats accept\u00e9s sont PDF, JPG ou PNG, jusqu\u2019\u00e0 10 Mo par fichier. Vous pouvez ajouter plusieurs fichiers par cat\u00e9gorie &mdash; plusieurs fiches de paie, ou le recto et le verso d\u2019une carte d\u2019identit\u00e9 &mdash; et un emplacement facultatif est pr\u00e9vu pour les pi\u00e8ces compl\u00e9mentaires que vous jugeriez utiles de montrer \u00e0 un propri\u00e9taire. Les deux documents obligatoires doivent \u00eatre t\u00e9l\u00e9vers\u00e9s avant de pouvoir demander la qualification ; l\u2019espace locataire le confirme par un bandeau \u00ab Documents obligatoires complets \u00bb une fois l\u2019\u00e9tape franchie.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--after\"><a href=\"\/fr\/locataires\/\">Tout ce que les locataires doivent savoir<\/a>.<\/p>\n\n        <figure class=\"lfd-art__fig lfd-art__fig--portal-docs\">\n          <img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/09\/luxflat-portal-documents-ui.webp\" alt=\"Page des documents de l\u2019espace locataire LuxFlat Direct montrant une pi\u00e8ce d\u2019identit\u00e9 et un justificatif de revenus t\u00e9l\u00e9vers\u00e9s, tous deux valid\u00e9s, avec les documents obligatoires marqu\u00e9s comme complets.\" width=\"1284\" height=\"929\" loading=\"lazy\" decoding=\"async\">\n        <\/figure>\n\n        <h2 id=\"landlords\">Ce que les propri\u00e9taires doivent fournir<\/h2>\n        <p class=\"lfd-art__p\">La v\u00e9rification des propri\u00e9taires est bien r\u00e9elle et obligatoire. Aucun bien n\u2019est mis en ligne sans elle.<\/p>\n        <p class=\"lfd-art__p\">Notre \u00e9quipe vous confirme les documents n\u00e9cessaires \u00e0 votre bien lors de sa prise de contact et v\u00e9rifie que vous \u00eates habilit\u00e9 \u00e0 le louer.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Le d\u00e9roul\u00e9 : vous soumettez votre bien via le formulaire Publier un bien en indiquant l\u2019essentiel &mdash; adresse, surface, ameublement, disponibilit\u00e9 et loyer mensuel. Notre \u00e9quipe examine la demande et vous contacte pour finaliser la v\u00e9rification et pr\u00e9parer votre annonce.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\"><a href=\"\/fr\/proprietaires\/\">Toutes les informations pour les propri\u00e9taires<\/a>.<\/p>\n\n        <h2 id=\"timing\">D\u00e9lais et suite du processus<\/h2>\n        <p class=\"lfd-art__lede lfd-art__lede--m16\">Dans les 24 heures suivant l\u2019envoi de vos documents.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m18\">C\u2019est le d\u00e9lai de qualification d\u2019un locataire. Une fois vos documents examin\u00e9s, le statut de votre dossier passe \u00e0 <strong>Qualifi\u00e9<\/strong> et le badge appara\u00eet sur la vue d\u2019ensemble de votre espace. Ensuite :<\/p>\n        <div class=\"lfd-art__steps-wrap\">\n        <div class=\"lfd-art__steps\">\n  <div class=\"lfd-art__step\"><div class=\"lfd-art__n\">1<\/div><div><strong>Parcourez les annonces et envoyez vos demandes.<\/strong> Votre dossier valid\u00e9 accompagne chacune d\u2019elles.<\/div><\/div>\n  <div class=\"lfd-art__step\"><div class=\"lfd-art__n\">2<\/div><div><strong>Les propri\u00e9taires examinent votre profil, pas vos justificatifs.<\/strong> Comme vous \u00eates d\u00e9j\u00e0 qualifi\u00e9, il n&#x27;y a plus d&#x27;\u00e9changes pour r\u00e9clamer des documents.<\/div><\/div>\n  <div class=\"lfd-art__step\"><div class=\"lfd-art__n\">3<\/div><div><strong>Suivez tout depuis votre espace.<\/strong> Les demandes en cours et les demandes accept\u00e9es disposent chacune de leur compteur sur votre \u00e9cran de synth\u00e8se.<\/div><\/div>\n  <div class=\"lfd-art__step\"><div class=\"lfd-art__n\">4<\/div><div><strong>Signez par voie num\u00e9rique<\/strong> d\u00e8s qu\u2019un propri\u00e9taire accepte.<\/div><\/div>\n<\/div>\n        <\/div>\n        <p class=\"lfd-art__p lfd-art__p--m24\">Si une demande est refus\u00e9e, rien n\u2019est r\u00e9initialis\u00e9. Votre qualification demeure et vos documents restent v\u00e9rifi\u00e9s &mdash; adressez la demande suivante imm\u00e9diatement, sans nouveau t\u00e9l\u00e9versement.<\/p>\n\n        <figure class=\"lfd-art__fig lfd-art__fig--portal-qual\">\n          <img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/09\/luxflat-portal-qualified-ui.webp\" alt=\"Vue d\u2019ensemble de l\u2019espace locataire LuxFlat Direct montrant un dossier locataire qualifi\u00e9, pr\u00eat \u00e0 envoyer des demandes d\u2019appartement au Luxembourg.\" width=\"1282\" height=\"837\" loading=\"lazy\" decoding=\"async\">\n        <\/figure>\n\n        <h2 id=\"security\">Comment vos documents sont s\u00e9curis\u00e9s<\/h2>\n        <p class=\"lfd-art__p\">Votre pi\u00e8ce d\u2019identit\u00e9 et vos fiches de paie sont des donn\u00e9es sensibles, et elles sont trait\u00e9es comme telles.<\/p>\n        <div class=\"lfd-art__bullets\">\n  <div class=\"lfd-art__bullet\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div><strong>Conserv\u00e9s hors de la m\u00e9diath\u00e8que publique.<\/strong> Vos fichiers n\u2019ont aucune URL publique : ils ne peuvent donc pas \u00eatre trouv\u00e9s en devinant un lien.<\/div><\/div>\n  <div class=\"lfd-art__bullet\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div><strong>Transmis uniquement via des t\u00e9l\u00e9chargements autoris\u00e9s.<\/strong> Un fichier ne peut \u00eatre r\u00e9cup\u00e9r\u00e9 que par une personne autoris\u00e9e \u00e0 le consulter.<\/div><\/div>\n  <div class=\"lfd-art__bullet\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div><strong>Les acc\u00e8s sont journalis\u00e9s.<\/strong> Chaque consultation est enregistr\u00e9e : il existe donc une trace de qui a ouvert quoi.<\/div><\/div>\n<\/div>\n        <p class=\"lfd-art__p lfd-art__p--after\">Vous ne t\u00e9l\u00e9versez qu\u2019une fois. Les propri\u00e9taires voient votre statut de qualification et votre dossier lorsque vous leur adressez une demande, jamais avant. Les modalit\u00e9s de ce consentement sont expos\u00e9es dans notre <a href=\"\/fr\/politique-de-confidentialite\/\">politique de confidentialit\u00e9<\/a>.<\/p>\n\n        <p class=\"lfd-art__p lfd-art__p--m30\">Vous d\u00e9butez ? <a href=\"\/fr\/aide\/comment-fonctionne-la-location-directe\/\">Commencez par notre guide Premiers pas<\/a>.<\/p>\n\n        <div class=\"lfd-art__faqwrap\">\n          <h2 id=\"faq\">Questions fr\u00e9quentes<\/h2>\n          <div class=\"lfd-faq\" data-lfd-faq>\n  <div class=\"lfd-faq__item is-open\">\n    <button class=\"lfd-faq__q\" type=\"button\" aria-expanded=\"true\" aria-controls=\"lfd-faq-help-article-verification-0\">\n      <span>Quels documents dois-je fournir en tant que locataire ?<\/span>\n      <svg class=\"lfd-faq__chev\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"lfd-faq__a\" id=\"lfd-faq-help-article-verification-0\" role=\"region\">Deux : une pi\u00e8ce d\u2019identit\u00e9 ou un passeport en cours de validit\u00e9, et un justificatif de revenus \u2014 des fiches de paie r\u00e9centes ou votre contrat de travail ou convention de stage. Un compte bancaire luxembourgeois est \u00e9galement n\u00e9cessaire pour louer via la plateforme.<\/div>\n  <\/div>\n  <div class=\"lfd-faq__item\">\n    <button class=\"lfd-faq__q\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lfd-faq-help-article-verification-1\">\n      <span>Combien de temps prend la v\u00e9rification ?<\/span>\n      <svg class=\"lfd-faq__chev\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"lfd-faq__a\" id=\"lfd-faq-help-article-verification-1\" role=\"region\">Dans les 24 heures suivant l\u2019envoi de vos documents. Une fois v\u00e9rifi\u00e9, votre dossier est marqu\u00e9 Qualifi\u00e9 et vous pouvez adresser des demandes \u00e0 n\u2019importe quelle annonce sans rien t\u00e9l\u00e9verser de nouveau.<\/div>\n  <\/div>\n  <div class=\"lfd-faq__item\">\n    <button class=\"lfd-faq__q\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lfd-faq-help-article-verification-2\">\n      <span>Mes donn\u00e9es sont-elles s\u00e9curis\u00e9es ?<\/span>\n      <svg class=\"lfd-faq__chev\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg>\n    <\/button>\n    <div class=\"lfd-faq__a\" id=\"lfd-faq-help-article-verification-2\" role=\"region\">Oui. Les documents sont conserv\u00e9s hors de la m\u00e9diath\u00e8que publique, ne poss\u00e8dent aucune URL publique et ne sont transmis que via des t\u00e9l\u00e9chargements autoris\u00e9s. Chaque consultation est journalis\u00e9e : il existe donc une trace de qui a ouvert quoi.<\/div>\n  <\/div>\n<\/div>\n        <\/div>\n        <script type=\"application\/ld+json\">{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Quels documents dois-je fournir en tant que locataire ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Deux : une pi\u00e8ce d\u2019identit\u00e9 ou un passeport en cours de validit\u00e9, et un justificatif de revenus \u2014 des fiches de paie r\u00e9centes ou votre contrat de travail ou convention de stage. Un compte bancaire luxembourgeois est \u00e9galement n\u00e9cessaire pour louer via la plateforme.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Combien de temps prend la v\u00e9rification ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Dans les 24 heures suivant l\u2019envoi de vos documents. Une fois v\u00e9rifi\u00e9, votre dossier est marqu\u00e9 Qualifi\u00e9 et vous pouvez adresser des demandes \u00e0 n\u2019importe quelle annonce sans rien t\u00e9l\u00e9verser de nouveau.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Mes donn\u00e9es sont-elles s\u00e9curis\u00e9es ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Oui. Les documents sont conserv\u00e9s hors de la m\u00e9diath\u00e8que publique, ne poss\u00e8dent aucune URL publique et ne sont transmis que via des t\u00e9l\u00e9chargements autoris\u00e9s. Chaque consultation est journalis\u00e9e : il existe donc une trace de qui a ouvert quoi.\"\n      }\n    }\n  ]\n}<\/script>\n\n        <div class=\"lfd-helpful\">\n          <div>\n            <div class=\"lfd-helpful__t\">Cet article vous a-t-il \u00e9t\u00e9 utile ?<\/div>\n            <div class=\"lfd-helpful__n\">Votre r\u00e9ponse nous aide \u00e0 choisir nos prochains sujets.<\/div>\n          <\/div>\n          <div class=\"lfd-helpful__btns\">\n            <button class=\"lfd-helpful__b\" type=\"button\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 11v9H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3z\"\/><path d=\"M7 11l4-7a2 2 0 0 1 3 1v5h4.5a2 2 0 0 1 2 2.4l-1.2 6A2 2 0 0 1 17.3 20H7\"\/><\/svg>Oui<\/button>\n            <button class=\"lfd-helpful__b\" type=\"button\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M17 13V4h3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-3z\"\/><path d=\"M17 13l-4 7a2 2 0 0 1-3-1v-5H5.5a2 2 0 0 1-2-2.4l1.2-6A2 2 0 0 1 6.7 4H17\"\/><\/svg>Non<\/button>\n          <\/div>\n        <\/div>\n      <\/article>\n\n      <aside class=\"lfd-toc\">\n        <div class=\"lfd-toc__in\">\n          <div class=\"lfd-toc__k\">SUR CETTE PAGE<\/div>\n          <nav class=\"lfd-toc__list\">\n            <a href=\"#tenants\">Ce que les locataires doivent fournir<\/a>\n            <a href=\"#landlords\">Ce que les propri\u00e9taires doivent fournir<\/a>\n            <a href=\"#timing\">Les d\u00e9lais<\/a>\n            <a href=\"#security\">Comment les documents sont s\u00e9curis\u00e9s<\/a>\n            <a href=\"#faq\">Questions fr\u00e9quentes<\/a>\n          <\/nav>\n          <div class=\"lfd-toc__foot\">Toujours bloqu\u00e9 ? <a href=\"\/fr\/contact\/\">Contactez notre \u00e9quipe<\/a> et nous vous r\u00e9pondrons directement.<\/div>\n        <\/div>\n      <\/aside>\n\n    <\/div>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1091095 e-con-full e-flex e-con e-parent\" data-id=\"1091095\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d502726 elementor-widget elementor-widget-html\" data-id=\"d502726\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"lfd lfd-band lfd-rel\">\n  <div class=\"lfd-wrap\">\n    <div class=\"lfd-rel__k\">DOCUMENTS &amp; V\u00c9RIFICATION<\/div>\n    <h2>Articles li\u00e9s<\/h2>\n    <div class=\"lfd-rel__grid\">\n      <a class=\"lfd-rel__card\" href=\"\/fr\/aide\/comment-fonctionne-la-location-directe\/\">\n        <div class=\"lfd-rel__media\"><img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/08\/luxflat-furnished-living-room-kirchberg.webp\" alt=\"Appartement meubl\u00e9 au Luxembourg\" width=\"900\" height=\"600\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"lfd-rel__txt\">\n          <span class=\"lfd-rel__tag\">Premiers pas<\/span>\n          <span class=\"lfd-rel__t\">Comment fonctionne la location directe au Luxembourg ? Votre guide LuxFlat Direct<\/span>\n          <span class=\"lfd-rel__d\">La vue d\u2019ensemble pour les locataires et les propri\u00e9taires \u2014 de la cr\u00e9ation du dossier \u00e0 la signature du contrat en ligne.<\/span>\n          <span class=\"lfd-rel__r\">~4 min de lecture<\/span>\n        <\/div>\n      <\/a>\n<a class=\"lfd-rel__card\" href=\"\/fr\/aide\/combien-ca-coute\/\">\n        <div class=\"lfd-rel__media\"><img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/08\/luxflat-furnished-living-dining-room.webp\" alt=\"Appartement meubl\u00e9 au Luxembourg\" width=\"1800\" height=\"1200\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"lfd-rel__txt\">\n          <span class=\"lfd-rel__tag\">Paiements &amp; tarifs<\/span>\n          <span class=\"lfd-rel__t\">Combien co\u00fbte une location via LuxFlat Direct ?<\/span>\n          <span class=\"lfd-rel__d\">Le d\u00e9tail complet des co\u00fbts \u2014 le loyer tout compris, le forfait unique r\u00e9gl\u00e9 de chaque c\u00f4t\u00e9, les cautions, et la comparaison avec une agence traditionnelle.<\/span>\n          <span class=\"lfd-rel__r\">~4 min de lecture<\/span>\n        <\/div>\n      <\/a>\n<a class=\"lfd-rel__card\" href=\"\/fr\/nomade-numerique-independant-luxembourg\/\">\n        <div class=\"lfd-rel__media\"><img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/09\/luxflat-nb-kirchberg.webp\" alt=\"Vue de Luxembourg-Ville avec les b\u00e2timents des institutions europ\u00e9ennes sur le plateau de Kirchberg\" width=\"1440\" height=\"958\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"lfd-rel__txt\">\n          <span class=\"lfd-rel__tag\">Guides locataires<\/span>\n          <span class=\"lfd-rel__t\">Louer au Luxembourg en tant que nomade num\u00e9rique ou ind\u00e9pendant : le guide complet 2026<\/span>\n          <span class=\"lfd-rel__d\">Cet article expose clairement la r\u00e9alit\u00e9 des visas, puis consacre l\u2019essentiel de son propos au probl\u00e8me dont personne n\u2019avertit les ind\u00e9pendants : une d\u00e9pendance circulaire entre logement et d\u00e9marches administratives, capable de bloquer une installation pendant des semaines.<\/span>\n          <span class=\"lfd-rel__r\">~13 min de lecture<\/span>\n        <\/div>\n      <\/a>\n    <\/div>\n    <div class=\"lfd-rel__back\">\n      <a class=\"lfd-btn lfd-btn--outline-navy\" href=\"\/fr\/aide\/\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M19 12H5\"\/><polyline points=\"12 19 5 12 12 5\"\/><\/svg>Retour au centre d\u2019aide<\/a>\n    <\/div>\n  <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":7,"featured_media":0,"parent":1180,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1433","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Documents pour louer au Luxembourg | LuxFlat Direct<\/title>\n<meta name=\"description\" content=\"Quels documents pour louer au Luxembourg ? Pi\u00e8ce d\u2019identit\u00e9 et justificatif de revenus, v\u00e9rifi\u00e9s sous 24 heures. La liste compl\u00e8te.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documents pour louer au Luxembourg | LuxFlat Direct\" \/>\n<meta property=\"og:description\" content=\"Quels documents pour louer au Luxembourg ? Pi\u00e8ce d\u2019identit\u00e9 et justificatif de revenus, v\u00e9rifi\u00e9s sous 24 heures. La liste compl\u00e8te.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/\" \/>\n<meta property=\"og:site_name\" content=\"LuxFlat Direct\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-24T18:54:32+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/aide\\\/verification-de-votre-dossier\\\/\",\"url\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/aide\\\/verification-de-votre-dossier\\\/\",\"name\":\"Documents pour louer au Luxembourg | LuxFlat Direct\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#website\"},\"datePublished\":\"2026-09-24T18:17:01+00:00\",\"dateModified\":\"2026-09-24T18:54:32+00:00\",\"description\":\"Quels documents pour louer au Luxembourg ? Pi\u00e8ce d\u2019identit\u00e9 et justificatif de revenus, v\u00e9rifi\u00e9s sous 24 heures. La liste compl\u00e8te.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/aide\\\/verification-de-votre-dossier\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/aide\\\/verification-de-votre-dossier\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/aide\\\/verification-de-votre-dossier\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/accueil\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aide\",\"item\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/aide\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"V\u00e9rification de votre dossier\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/\",\"name\":\"LuxFlat Direct\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#organization\",\"name\":\"LuxFlat Direct\",\"url\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.luxflat-direct.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/tmp-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.luxflat-direct.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/tmp-logo.jpg\",\"width\":204,\"height\":57,\"caption\":\"LuxFlat Direct\"},\"image\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Documents pour louer au Luxembourg | LuxFlat Direct","description":"Quels documents pour louer au Luxembourg ? Pi\u00e8ce d\u2019identit\u00e9 et justificatif de revenus, v\u00e9rifi\u00e9s sous 24 heures. La liste compl\u00e8te.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/","og_locale":"fr_FR","og_type":"article","og_title":"Documents pour louer au Luxembourg | LuxFlat Direct","og_description":"Quels documents pour louer au Luxembourg ? Pi\u00e8ce d\u2019identit\u00e9 et justificatif de revenus, v\u00e9rifi\u00e9s sous 24 heures. La liste compl\u00e8te.","og_url":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/","og_site_name":"LuxFlat Direct","article_modified_time":"2026-09-24T18:54:32+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/","url":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/","name":"Documents pour louer au Luxembourg | LuxFlat Direct","isPartOf":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/#website"},"datePublished":"2026-09-24T18:17:01+00:00","dateModified":"2026-09-24T18:54:32+00:00","description":"Quels documents pour louer au Luxembourg ? Pi\u00e8ce d\u2019identit\u00e9 et justificatif de revenus, v\u00e9rifi\u00e9s sous 24 heures. La liste compl\u00e8te.","breadcrumb":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.luxflat-direct.com\/fr\/aide\/verification-de-votre-dossier\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.luxflat-direct.com\/fr\/accueil\/"},{"@type":"ListItem","position":2,"name":"Aide","item":"https:\/\/www.luxflat-direct.com\/fr\/aide\/"},{"@type":"ListItem","position":3,"name":"V\u00e9rification de votre dossier"}]},{"@type":"WebSite","@id":"https:\/\/www.luxflat-direct.com\/fr\/#website","url":"https:\/\/www.luxflat-direct.com\/fr\/","name":"LuxFlat Direct","description":"","publisher":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.luxflat-direct.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.luxflat-direct.com\/fr\/#organization","name":"LuxFlat Direct","url":"https:\/\/www.luxflat-direct.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.luxflat-direct.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/06\/tmp-logo.jpg","contentUrl":"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/06\/tmp-logo.jpg","width":204,"height":57,"caption":"LuxFlat Direct"},"image":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/pages\/1433","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/comments?post=1433"}],"version-history":[{"count":1,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/pages\/1433\/revisions"}],"predecessor-version":[{"id":1452,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/pages\/1433\/revisions\/1452"}],"up":[{"embeddable":true,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/pages\/1180"}],"wp:attachment":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/media?parent=1433"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}