{"id":1439,"date":"2026-09-24T18:34:26","date_gmt":"2026-09-24T18:34:26","guid":{"rendered":"https:\/\/www.luxflat-direct.com\/appartement-meuble-ou-non-meuble-luxembourg\/"},"modified":"2026-09-24T18:54:47","modified_gmt":"2026-09-24T18:54:47","slug":"appartement-meuble-ou-non-meuble-luxembourg","status":"publish","type":"post","link":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/","title":{"rendered":"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg : lequel choisir ?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1439\" class=\"elementor elementor-1439 elementor-bc-flex-widget\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-520333a e-con-full e-flex e-con e-parent\" data-id=\"520333a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6e816c5 elementor-widget elementor-widget-html\" data-id=\"6e816c5\" 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-2a9d452 e-con-full e-flex e-con e-parent\" data-id=\"2a9d452\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aefefb2 elementor-widget elementor-widget-html\" data-id=\"aefefb2\" 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\/blog\/\">Blog<\/a>\n      <span class=\"lfd-crumb__sep\" aria-hidden=\"true\">\/<\/span>\n      <span class=\"lfd-crumb__cur\">Meubl\u00e9 ou non meubl\u00e9<\/span>\n    <\/nav>\n    <div class=\"lfd-art-head__row\">\n      <div class=\"lfd-art-head__main\">\n        <span class=\"lfd-art__badge\">Guides locataires<\/span>\n        <h1 class=\"lfd-art__h1\">Appartements meubl\u00e9s ou non meubl\u00e9s au Luxembourg : lequel choisir ?<\/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>~11 min de lecture<\/span>\n          <span class=\"lfd-art__dot\" aria-hidden=\"true\">\u00b7<\/span>\n          <span>14 septembre 2026<\/span>\n          <span class=\"lfd-art__dot\" aria-hidden=\"true\">\u00b7<\/span>\n          <span>Derni\u00e8re r\u00e9vision : 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\/09\/luxflat-nb-hero.webp\" alt=\"Luxembourg-Ville \u2014 visuel de l\u2019article meubl\u00e9 ou non meubl\u00e9\" width=\"1600\" height=\"900\" 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-5ec92bb e-con-full e-flex e-con e-parent\" data-id=\"5ec92bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3094775 elementor-widget elementor-widget-html\" data-id=\"3094775\" 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\">La plupart des comparatifs entre meubl\u00e9 et non meubl\u00e9 alignent deux colonnes d\u2019avantages et d\u2019inconv\u00e9nients et vous laissent exactement au point de d\u00e9part. Celui-ci fera autrement. Il existe une r\u00e9ponse d\u00e9fendable \u00e0 cette question, et elle d\u00e9pend presque enti\u00e8rement d\u2019une seule donn\u00e9e : la dur\u00e9e de votre s\u00e9jour.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">C\u2019est l\u00e0 que l\u2019on se trompe. On aborde le sujet comme une question de go\u00fbt \u2014 est-ce que je tiens \u00e0 mes meubles, le canap\u00e9 d\u2019un autre me d\u00e9range-t-il \u2014 alors qu\u2019il s\u2019agit d\u2019une question arithm\u00e9tique avec un seuil de rentabilit\u00e9. En de\u00e7\u00e0 d\u2019une certaine dur\u00e9e, le meubl\u00e9 l\u2019emporte si nettement que la comparaison n\u2019a rien de serr\u00e9. Au-del\u00e0, le non meubl\u00e9 commence \u00e0 se justifier, puis finit par s\u2019imposer.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Ce guide d\u00e9taille ce que chaque option comprend r\u00e9ellement au Luxembourg (l\u2019\u00e9cart entre le \u00ab non meubl\u00e9 \u00bb d\u2019ici et celui d\u2019autres pays surprend), la v\u00e9ritable comparaison de co\u00fbts une fois tout pris en compte et non le seul loyer mensuel, ce \u00e0 quoi vous vous engagez en termes de bail, et une m\u00e9thode claire pour d\u00e9cider. Il se conclut par une recommandation, pas par un haussement d\u2019\u00e9paules.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Si vous n\u2019avez pas encore choisi votre quartier, commencez par l\u00e0 \u2014 <a href=\"\/fr\/meilleurs-quartiers-ou-louer-au-luxembourg\/\">notre guide des meilleurs quartiers o\u00f9 louer au Luxembourg<\/a> \u2014 puis revenez \u00e0 cet article.<\/p>\n\n        <h2 id=\"short-answer\">La r\u00e9ponse courte<\/h2>\n        <div class=\"lfd-psum lfd-psum--fv\">\n          <div class=\"lfd-psum__card\"><div class=\"lfd-psum__who\">Moins de 12 mois<\/div><div class=\"lfd-psum__h\">Meubl\u00e9, \u00e0 de tr\u00e8s rares exceptions pr\u00e8s<\/div><div class=\"lfd-psum__d\">Le surco\u00fbt mensuel est inf\u00e9rieur \u00e0 ce que vous d\u00e9penseriez pour meubler un logement que vous allez quitter, et la souplesse du bail vaut \u00e0 elle seule plus que l&#x27;\u00e9cart de loyer.<\/div><\/div>\n          <div class=\"lfd-psum__card\"><div class=\"lfd-psum__who\">2 ans ou plus<\/div><div class=\"lfd-psum__h\">Non meubl\u00e9, probablement<\/div><div class=\"lfd-psum__d\">Si vous poss\u00e9dez d\u00e9j\u00e0 des meubles : l&#x27;\u00e9conomie mensuelle se cumule et vous obtenez un espace qui est vraiment le v\u00f4tre.<\/div><\/div>\n          <div class=\"lfd-psum__card\"><div class=\"lfd-psum__who\">Entre les deux, ou dans le doute<\/div><div class=\"lfd-psum__h\">Meubl\u00e9<\/div><div class=\"lfd-psum__d\">L\u2019incertitude a un co\u00fbt, et le meubl\u00e9 est le moyen de ne pas le payer. La suite de cet article explique pourquoi.<\/div><\/div>\n        <\/div>\n\n        <h2 id=\"furnished\">Ce que \u00ab meubl\u00e9 \u00bb signifie r\u00e9ellement au Luxembourg<\/h2>\n        <p class=\"lfd-art__p\">Au Luxembourg, un appartement meubl\u00e9 est cens\u00e9 \u00eatre habitable d\u00e8s la remise des cl\u00e9s. Concr\u00e8tement, cela signifie :<\/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>Du mobilier.<\/strong> Lit, armoire ou rangements, canap\u00e9, table et chaises, et un espace bureau dans la plupart des logements destin\u00e9s aux actifs.<\/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>De l\u2019\u00e9lectrom\u00e9nager.<\/strong> R\u00e9frig\u00e9rateur, cong\u00e9lateur, four, plaques, lave-linge. Lave-vaisselle dans beaucoup de logements, mais pas tous.<\/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>De la vaisselle et des ustensiles.<\/strong> Assiettes, verres, casseroles, couverts. C\u2019est l\u2019\u00e9l\u00e9ment le plus variable de la liste.<\/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>Des textiles d\u2019ameublement.<\/strong> Rideaux ou stores, et g\u00e9n\u00e9ralement l\u2019\u00e9clairage.<\/div><\/div>\n<\/div>\n        <p class=\"lfd-art__p lfd-art__p--m24\">Ce qui n\u2019est g\u00e9n\u00e9ralement <strong>pas<\/strong> compris, et qu\u2019il vaut mieux v\u00e9rifier avant de signer :<\/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=\"#B03A2E\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"\/><path d=\"m6 6 12 12\"\/><\/svg><div><strong>Le linge de lit et les serviettes.<\/strong> Parfois fournis, parfois non.<\/div><\/div>\n  <div class=\"lfd-art__bullet\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B03A2E\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"\/><path d=\"m6 6 12 12\"\/><\/svg><div><strong>Les produits d\u2019entretien et consommables.<\/strong> Presque jamais.<\/div><\/div>\n  <div class=\"lfd-art__bullet\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B03A2E\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"\/><path d=\"m6 6 12 12\"\/><\/svg><div><strong>Les objets personnels ou d\u00e9coratifs.<\/strong> Attendez-vous \u00e0 du neutre.<\/div><\/div>\n  <div class=\"lfd-art__bullet\"><svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#B03A2E\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"\/><path d=\"m6 6 12 12\"\/><\/svg><div><strong>Le service de m\u00e9nage.<\/strong> Une prestation distincte, sauf mention contraire dans l\u2019annonce.<\/div><\/div>\n<\/div>\n\n        <p class=\"lfd-art__p lfd-art__p--m24\">L\u2019inventaire exact varie selon le bien, et chaque annonce pr\u00e9cise ce qui est compris avant la r\u00e9servation \u2014 v\u00e9rifiez donc le d\u00e9tail de celle qui vous int\u00e9resse plut\u00f4t que de pr\u00e9sumer d\u2019un standard.<\/p>\n\n        <p class=\"lfd-art__p lfd-art__p--m24\">Le test pratique d\u2019un appartement meubl\u00e9 consiste \u00e0 savoir si vous pouvez arriver avec une valise et y dormir le soir m\u00eame. Un bon logement passe le test. En consultant une annonce, c\u2019est la question \u00e0 garder en t\u00eate plut\u00f4t que de compter les objets un \u00e0 un.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Un point propre au Luxembourg concernant les charges. Une annonce meubl\u00e9e peut inclure ou non l\u2019\u00e9lectricit\u00e9, l\u2019eau, le chauffage et les charges d\u2019immeuble \u2014 cela d\u00e9pend enti\u00e8rement du propri\u00e9taire et de la plateforme. Chaque annonce sur LuxFlat Direct comprend ces quatre postes, ainsi que le Wi-Fi, dans le montant mensuel affich\u00e9. Ailleurs, posez la question : ce seul d\u00e9tail peut faire varier votre co\u00fbt mensuel r\u00e9el de plusieurs centaines d\u2019euros.<\/p>\n\n        <h2 id=\"unfurnished\">Ce que \u00ab non meubl\u00e9 \u00bb signifie r\u00e9ellement \u2014 et pourquoi cela surprend<\/h2>\n        <p class=\"lfd-art__p\">C\u2019est l\u00e0 que les personnes s\u2019installant au Luxembourg se font pi\u00e9ger, en particulier celles venant du Royaume-Uni, des \u00c9tats-Unis ou de certaines r\u00e9gions d\u2019Asie, o\u00f9 \u00ab non meubl\u00e9 \u00bb sous-entend encore une cuisine.<\/p>\n        <p class=\"lfd-art__lede lfd-art__lede--m20\">Au Luxembourg, non meubl\u00e9 signifie souvent r\u00e9ellement vide.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m18\">Pas \u00ab sans canap\u00e9 \u00bb \u2014 vide. Dans de nombreux appartements, cela inclut l\u2019absence totale de cuisine \u00e9quip\u00e9e : ni four, ni plaques, ni r\u00e9frig\u00e9rateur, parfois m\u00eame pas les meubles. Les luminaires peuvent manquer, laissant des fils nus au plafond. Pas de tringles \u00e0 rideaux. Parfois pas d\u2019armoires, les rangements int\u00e9gr\u00e9s n\u2019\u00e9tant pas la norme.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">C\u2019est la norme ici comme dans une grande partie de l\u2019Europe continentale. Les locataires installent couramment leur propre cuisine, l\u2019emportent en partant et la revendent. Ce n\u2019est pas le signe d\u2019une mauvaise annonce. Mais cela signifie que \u00ab non meubl\u00e9, 1 900 \u20ac\/mois \u00bb et \u00ab meubl\u00e9, 2 400 \u20ac\/mois \u00bb ne sont pas des montants comparables, et les traiter comme tels vous conduira \u00e0 une mauvaise d\u00e9cision.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Avant de visiter un appartement non meubl\u00e9 au Luxembourg, obtenez une r\u00e9ponse pr\u00e9cise \u00e0 trois questions : y a-t-il une cuisine \u00e9quip\u00e9e, l\u2019\u00e9lectrom\u00e9nager est-il inclus, et les luminaires sont-ils en place. Les r\u00e9ponses modifient le co\u00fbt total de ce logement de plusieurs milliers d\u2019euros.<\/p>\n\n        <h2 id=\"cost\">La v\u00e9ritable comparaison des co\u00fbts<\/h2>\n        <p class=\"lfd-art__p\"><strong>L\u2019\u00e9cart affich\u00e9 :<\/strong> au Luxembourg, les appartements meubl\u00e9s co\u00fbtent g\u00e9n\u00e9ralement <strong>15 \u00e0 30 % de plus par mois<\/strong> qu\u2019un logement non meubl\u00e9 comparable. Sur un appartement non meubl\u00e9 \u00e0 2 000 \u20ac, cela repr\u00e9sente environ 300 \u00e0 600 \u20ac de plus par mois.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">C\u2019est l\u00e0 que s\u2019arr\u00eatent la plupart des comparatifs. C\u2019est aussi l\u00e0 qu\u2019ils induisent en erreur, car ce chiffre ignore trois co\u00fbts qui p\u00e8sent enti\u00e8rement sur le non meubl\u00e9.<\/p>\n\n        <p class=\"lfd-art__p lfd-art__p--m24\"><strong>1. Les charges mensuelles, factur\u00e9es \u00e0 part.<\/strong> Dans un bail non meubl\u00e9 classique au Luxembourg, les charges et frais d\u2019immeuble repr\u00e9sentent g\u00e9n\u00e9ralement <strong>200 \u00e0 300 \u20ac par mois<\/strong> en sus du loyer, souvent sous forme de provision avec r\u00e9gularisation annuelle \u2014 d\u2019o\u00f9 une facture de solde qui arrive bien apr\u00e8s que vous l\u2019avez oubli\u00e9e. Dans une annonce meubl\u00e9e tout compris, ces postes figurent d\u00e9j\u00e0 dans le montant mensuel.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Additionnez ces deux \u00e9l\u00e9ments et une bonne part du surco\u00fbt du meubl\u00e9 est absorb\u00e9e avant m\u00eame d\u2019avoir achet\u00e9 une seule chaise.<\/p>\n\n        <p class=\"lfd-art__p lfd-art__p--m24\"><strong>2. Meubler le logement.<\/strong> Mobilier, \u00e9lectrom\u00e9nager, \u00e9ventuellement une cuisine compl\u00e8te, plus la livraison et le montage. L\u2019amplitude est \u00e9norme selon la mani\u00e8re de proc\u00e9der : plut\u00f4t que de vous donner un chiffre qui ne correspondra pas \u00e0 votre situation, faites vous-m\u00eame ce calcul \u2014 il prend cinq minutes et c\u2019est lui qui tranche r\u00e9ellement la question :<\/p>\n\n        <div class=\"lfd-fv-calc\">\n          <div class=\"lfd-fv-calc__t\">Le calcul du seuil de rentabilit\u00e9<\/div>\n          <div class=\"lfd-fv-calc__rows\">\n            <div class=\"lfd-fv-calc__r\">(Loyer mensuel meubl\u00e9, tout compris) \u2212 (Loyer mensuel non meubl\u00e9 + charges mensuelles) = <strong>votre surco\u00fbt mensuel<\/strong><\/div>\n            <div class=\"lfd-fv-calc__hr\" aria-hidden=\"true\"><\/div>\n            <div class=\"lfd-fv-calc__r\">(Votre co\u00fbt d\u2019ameublement estim\u00e9 + frais de d\u00e9m\u00e9nagement) \u00f7 ce surco\u00fbt mensuel = <strong>seuil de rentabilit\u00e9 en mois<\/strong><\/div>\n          <\/div>\n          <div class=\"lfd-fv-calc__n\">Vous restez plus longtemps que ce nombre ? Le non meubl\u00e9 est moins cher. Moins longtemps ? Le meubl\u00e9 est moins cher, et ce avant m\u00eame de compter les avantages non financiers.<\/div>\n        <\/div>\n\n        <p class=\"lfd-art__p lfd-art__p--m24\">Faites le calcul honn\u00eatement et le seuil se situe g\u00e9n\u00e9ralement bien au-del\u00e0 d\u2019un an \u2014 souvent au-del\u00e0 de deux, une fois la cuisine incluse. C\u2019est la raison de la recommandation qui figure en t\u00eate de cet article.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\"><strong>3. Les frais de d\u00e9m\u00e9nagement, deux fois.<\/strong> Acheminer des meubles jusqu\u2019au Luxembourg, puis les faire repartir. En cas de mobilit\u00e9 internationale, ce n\u2019est pas une variable d\u2019ajustement, et cela s\u2019applique aux deux extr\u00e9mit\u00e9s du s\u00e9jour.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\"><strong>Un point qui ne varie pas :<\/strong> contrairement \u00e0 certains pays, le Luxembourg n\u2019accorde pas aux propri\u00e9taires d\u2019avantage fiscal significatif pour la location meubl\u00e9e par rapport \u00e0 la location vide. L\u2019\u00e9cart de prix que vous constatez refl\u00e8te donc une v\u00e9ritable dynamique de march\u00e9 \u2014 la demande de logements cl\u00e9s en main et le capital que le propri\u00e9taire a immobilis\u00e9 dans le mobilier \u2014 et non la r\u00e9percussion d\u2019un dispositif fiscal. Bon \u00e0 savoir pour juger si un prix meubl\u00e9 est justifi\u00e9.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Pour le d\u00e9tail complet de ce que comprend un montant mensuel LuxFlat Direct et des forfaits uniques appliqu\u00e9s : <a href=\"\/fr\/aide\/combien-ca-coute\/\">comment fonctionnent les co\u00fbts de location sur LuxFlat Direct<\/a>.<\/p>\n\n        <h2 id=\"side-by-side\">C\u00f4te \u00e0 c\u00f4te<\/h2>\n        <div class=\"lfd-cmp lfd-cmp--fv\" role=\"table\" aria-label=\"Le meubl\u00e9 compar\u00e9 au non meubl\u00e9\">\n          <div class=\"lfd-cmp__row lfd-cmp__row--head\"><div class=\"lfd-cmp__h\"><\/div><div class=\"lfd-cmp__h lfd-cmp__h--lux\">Meubl\u00e9<\/div><div class=\"lfd-cmp__h\">Non meubl\u00e9<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Loyer mensuel<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">15 \u00e0 30 % plus \u00e9lev\u00e9<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">Montant affich\u00e9 plus bas<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Charges et frais<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">Compris dans les annonces tout compris<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">Factur\u00e9s \u00e0 part, environ 200 \u00e0 300 \u20ac par mois<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Cuisine \u00e9quip\u00e9e<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">En place<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">Souvent absente \u2014 les locataires installent la leur<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Co\u00fbt d\u2019ameublement<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">Aucun<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">Mobilier, \u00e9lectrom\u00e9nager, livraison, montage<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Dur\u00e9e du bail<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">\u00c0 partir d\u20191 mois, sans maximum<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">G\u00e9n\u00e9ralement 1 \u00e0 3 ans<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Pr\u00e9avis<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">Adapt\u00e9 \u00e0 la dur\u00e9e du s\u00e9jour<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">G\u00e9n\u00e9ralement trois mois, de part et d\u2019autre<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">D\u00e9lai d\u2019emm\u00e9nagement<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">Imm\u00e9diat \u2014 se loue 1 \u00e0 3 semaines plus vite<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">Apr\u00e8s l\u2019ameublement et la souscription des contrats<\/div><\/div>\n          <div class=\"lfd-cmp__row\"><div class=\"lfd-cmp__c\">Frais de d\u00e9m\u00e9nagement<\/div><div class=\"lfd-cmp__c lfd-cmp__c--lux\">Une valise<\/div><div class=\"lfd-cmp__c lfd-cmp__c--trad\">Acheminement \u00e0 l\u2019aller, puis au retour<\/div><\/div>\n        <\/div>\n        <p class=\"lfd-art__note\">Ces chiffres d\u00e9crivent les pratiques courantes du march\u00e9 luxembourgeois et varient selon le propri\u00e9taire et le contrat.<\/p>\n\n        <h2 id=\"speed\">Rapidit\u00e9, dur\u00e9e du bail et niveau d\u2019engagement<\/h2>\n        <p class=\"lfd-art__p\">Le co\u00fbt est la diff\u00e9rence visible. L\u2019engagement est la plus importante.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\"><strong>Les baux non meubl\u00e9s classiques au Luxembourg courent g\u00e9n\u00e9ralement sur un \u00e0 trois ans, avec un pr\u00e9avis de trois mois de part et d\u2019autre.<\/strong> C\u2019est un engagement s\u00e9rieux. Si votre contrat prend fin plus t\u00f4t, si vous \u00eates promu dans un autre bureau, si l\u2019expatriation ne fonctionne pas \u2014 vous restez tenu, et vous devez donner trois mois de pr\u00e9avis quoi qu\u2019il arrive. Pour quelqu\u2019un dont la situation est r\u00e9ellement stable, cette stabilit\u00e9 est un atout. Pour quelqu\u2019un en mission de 18 mois ou en p\u00e9riode d\u2019essai, c\u2019est un handicap.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Le meubl\u00e9 vous permet de prendre des s\u00e9jours d\u2019un mois \u00e0 une dur\u00e9e illimit\u00e9e sans faire semblant de savoir ce que vous ferez la troisi\u00e8me ann\u00e9e.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\"><strong>Les appartements meubl\u00e9s se louent aussi 1 \u00e0 3 semaines plus vite que leurs \u00e9quivalents non meubl\u00e9s.<\/strong> C\u2019est un fait de march\u00e9 \u00e0 la cause \u00e9vidente : celles et ceux qui se les disputent \u2014 personnes en mobilit\u00e9, salari\u00e9s mut\u00e9s, professionnels commen\u00e7ant \u00e0 une date fixe \u2014 ne peuvent pas attendre une livraison de meubles, et encore moins une importation. Le cl\u00e9s en main est une exigence, pas une pr\u00e9f\u00e9rence.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Cela a deux cons\u00e9quences pour vous. Si vous arrivez \u00e0 une date que vous ne ma\u00eetrisez pas, le march\u00e9 du meubl\u00e9 avance au rythme qui est le v\u00f4tre ; celui du non meubl\u00e9, g\u00e9n\u00e9ralement pas. Et si vous h\u00e9sitez devant une annonce meubl\u00e9e qui vous pla\u00eet, h\u00e9sitez bri\u00e8vement. Une rotation plus rapide, c\u2019est aussi davantage de concurrence.<\/p>\n\n        <h2 id=\"who\">\u00c0 qui convient chaque formule<\/h2>\n        <div class=\"lfd-fv-who\">\n          <div class=\"lfd-fv-who__card lfd-fv-who__card--f\"><div class=\"lfd-fv-who__t\">Choisissez le meubl\u00e9 si<\/div><div class=\"lfd-fv-who__list\"><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Votre s\u00e9jour dure moins de 12 mois, ou vous ne pouvez pas affirmer avec certitude le contraire.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous vous installez depuis l&#x27;\u00e9tranger et devriez sinon tout acheminer ou tout acheter.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous \u00eates en contrat \u00e0 dur\u00e9e d\u00e9termin\u00e9e, en stage, en d\u00e9tachement ou en mission.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous arrivez \u00e0 une date que vous ne ma\u00eetrisez pas et avez besoin d&#x27;un logement habitable imm\u00e9diatement.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous d\u00e9couvrez le Luxembourg et n&#x27;avez pas encore arr\u00eat\u00e9 votre quartier \u2014 un s\u00e9jour meubl\u00e9 est un moyen peu co\u00fbteux d&#x27;habiter quelque part six mois avant de vous engager sur un bail de trois ans ailleurs.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-forest)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous pr\u00e9f\u00e9rez ne pas passer vos trois premiers week-ends \u00e0 monter des meubles en kit dans un pays o\u00f9 vous ignorez encore quels magasins livrent.<\/div><\/div><\/div><\/div>\n          <div class=\"lfd-fv-who__card\"><div class=\"lfd-fv-who__t\">Choisissez le non meubl\u00e9 si<\/div><div class=\"lfd-fv-who__list\"><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-muted)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous vous installez pour deux ans ou plus avec une confiance raisonnable.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-muted)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous poss\u00e9dez d\u00e9j\u00e0 des meubles, d\u00e9j\u00e0 au Luxembourg ou peu co\u00fbteux \u00e0 transporter.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-muted)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous \u00eates une famille \u2014 l&#x27;offre meubl\u00e9e penche vers les une et deux chambres destin\u00e9es aux actifs, et les appartements meubl\u00e9s de taille familiale sont \u00e0 la fois plus rares et plus chers.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-muted)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous tenez \u00e0 faire v\u00f4tre votre logement. Peindre les murs, choisir une cuisine, vivre avec vos propres affaires.<\/div><\/div><div class=\"lfd-fv-who__i\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lfd-muted)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><div>Vous visez le co\u00fbt mensuel le plus bas possible sur la dur\u00e9e et vous restez assez longtemps pour que le calcul soit favorable.<\/div><\/div><\/div><\/div>\n        <\/div>\n        <div class=\"lfd-nb-callout lfd-nb-callout--m22\"><div class=\"lfd-nb-callout__t\">Le cas limite, en toute honn\u00eatet\u00e9 : un s\u00e9jour de 12 \u00e0 24 mois<\/div><div class=\"lfd-nb-callout__d\">Ici, c\u2019est r\u00e9ellement serr\u00e9, et le facteur d\u00e9cisif tient g\u00e9n\u00e9ralement \u00e0 votre degr\u00e9 de certitude plut\u00f4t qu\u2019\u00e0 l\u2019argent. Si vous pariez sur une pr\u00e9sence de deux ann\u00e9es pleines, optez pour le non meubl\u00e9. Si vous h\u00e9siteriez \u00e0 prendre ce pari, choisissez le meubl\u00e9 \u2014 la souplesse vaut plus que l\u2019\u00e9cart, et un bail que l\u2019on doit rompre co\u00fbte plus cher que tout le mobilier que vous auriez achet\u00e9.<\/div><\/div>\n\n        <h2 id=\"flexible\">Pourquoi le meubl\u00e9 se justifie pour un s\u00e9jour plus court<\/h2>\n        <p class=\"lfd-art__p\">Laissez le mobilier de c\u00f4t\u00e9 un instant, car ce n\u2019est pas vraiment l\u2019essentiel.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Si le meubl\u00e9 fonctionne pour un s\u00e9jour plus court, c\u2019est qu\u2019il ram\u00e8ne une s\u00e9rie de probl\u00e8mes distincts \u00e0 une seule d\u00e9cision. Avec un bail non meubl\u00e9 classique au Luxembourg, vous ne cherchez pas seulement un appartement. Vous vous engagez sur un \u00e0 trois ans, vous le meublez, vous y installez \u00e9ventuellement une cuisine, vous souscrivez des contrats d\u2019\u00e9lectricit\u00e9 et d\u2019eau, vous organisez l\u2019acc\u00e8s internet, puis vous d\u00e9montez tout cela \u00e0 votre d\u00e9part \u2014 y compris la cl\u00f4ture des comptes de fourniture, avec ses propres frais et ses propres casse-t\u00eates de calendrier.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Pour un s\u00e9jour de quelques mois \u00e0 un an, cela repr\u00e9sente une machinerie disproportionn\u00e9e au regard d\u2019une situation temporaire.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">C\u2019est pr\u00e9cis\u00e9ment le besoin auquel r\u00e9pond LuxFlat Direct. Chaque annonce est meubl\u00e9e et le prix mensuel est tout compris \u2014 \u00e9lectricit\u00e9, eau, chauffage, charges d\u2019immeuble et de service, Wi-Fi et mobilier figurent dans le montant affich\u00e9. Aucun contrat de fourniture \u00e0 ouvrir \u00e0 votre nom, aucun \u00e0 cl\u00f4turer \u00e0 votre d\u00e9part. Les s\u00e9jours vont d\u2019un mois \u00e0 une dur\u00e9e illimit\u00e9e : le bail s\u2019adapte donc \u00e0 votre situation r\u00e9elle plut\u00f4t qu\u2019\u00e0 l\u2019horizon pr\u00e9f\u00e9r\u00e9 du propri\u00e9taire.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">La structure tarifaire le refl\u00e8te \u00e9galement. Chaque partie r\u00e8gle un forfait de service r\u00e9duit : les locataires versent des frais de r\u00e9servation uniques de 20 % du premier mois de loyer, et les propri\u00e9taires un forfait de service unique de 20 % du premier mois de loyer lorsque la location est confirm\u00e9e. Un pr\u00e9l\u00e8vement, une seule fois, et non un pourcentage ponctionn\u00e9 sur votre loyer tant que vous restez.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Les locataires effectuent par ailleurs une seule v\u00e9rification \u2014 une pi\u00e8ce d\u2019identit\u00e9 valide et un justificatif de revenus \u2014 puis sont pr\u00e9-valid\u00e9s pour adresser des demandes \u00e0 n\u2019importe quelle annonce, au lieu de reconstituer un dossier pour chaque appartement. <a href=\"\/fr\/aide\/verification-de-votre-dossier\/\">Comment fonctionne la v\u00e9rification<\/a>.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Pr\u00eat \u00e0 chercher ? <a href=\"\/fr\/apartments\/\">Parcourez les appartements meubl\u00e9s dans toute la Grande R\u00e9gion luxembourgeoise<\/a>.<\/p>\n\n        <h2 id=\"verdict\">Le verdict<\/h2>\n        <p class=\"lfd-art__p\">Si vous restez moins d\u2019un an, ou si vous ne pouvez pas affirmer avec certitude que vous resterez plus de deux ans, louez meubl\u00e9. Le surco\u00fbt mensuel est r\u00e9el, mais plus faible qu\u2019il n\u2019y para\u00eet une fois compt\u00e9es les charges que vous r\u00e9gleriez s\u00e9par\u00e9ment, et bien inf\u00e9rieur au co\u00fbt d\u2019ameublement d\u2019un logement que vous allez quitter. Plus important encore, il vous ach\u00e8te le droit de changer d\u2019avis \u2014 ce qui, pour la plupart des personnes arrivant au Luxembourg, est la chose la plus pr\u00e9cieuse qui soit.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Si vous vous installez durablement, que vous avez des meubles et que vous savez o\u00f9 vous voulez \u00eatre ces trois prochaines ann\u00e9es : louez non meubl\u00e9, installez la cuisine de votre choix et profitez d\u2019un co\u00fbt mensuel plus bas. Vous l\u2019avez bien m\u00e9rit\u00e9.<\/p>\n        <p class=\"lfd-art__p lfd-art__p--m20\">Ce qu\u2019il ne faut pas faire, c\u2019est signer un bail non meubl\u00e9 de trois ans parce que le loyer affich\u00e9 paraissait 400 \u20ac moins cher. Cette comparaison n\u2019est pas r\u00e9elle, et les co\u00fbts de sortie, lorsque vos projets changent, d\u00e9passent largement l\u2019\u00e9cart.<\/p>\n\n        <figure class=\"lfd-art__fig lfd-art__fig--nb\"><img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/09\/luxflat-nb-bonnevoie.webp\" alt=\"Les toits de Luxembourg-Ville au-dessus de l\u2019Alzette\" width=\"1440\" height=\"959\" loading=\"lazy\" decoding=\"async\"><figcaption class=\"lfd-art__cap\">O\u00f9 que vous atterrissiez dans la ville, un s\u00e9jour meubl\u00e9 vous y installe en quelques jours plut\u00f4t qu\u2019en quelques semaines.<\/figcaption><\/figure>\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-blog-furnished-0\">\n      <span>Est-il moins cher de louer meubl\u00e9 ou non meubl\u00e9 au Luxembourg ?<\/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-blog-furnished-0\" role=\"region\">Le non meubl\u00e9 est moins cher au mois \u2014 le meubl\u00e9 co\u00fbte g\u00e9n\u00e9ralement 15 \u00e0 30 % de plus. Mais les baux non meubl\u00e9s facturent habituellement \u00e0 part les charges et frais de service, soit environ 200 \u00e0 300 \u20ac par mois, et vous devez meubler vous-m\u00eame le logement, souvent cuisine comprise. Une fois ces deux \u00e9l\u00e9ments pris en compte, le meubl\u00e9 revient g\u00e9n\u00e9ralement moins cher pour un s\u00e9jour de moins d\u2019un an, tandis que le non meubl\u00e9 devient plus avantageux \u00e0 mesure que le s\u00e9jour se prolonge.<\/div>\n  <\/div>\n  <div class=\"lfd-faq__item\">\n    <button class=\"lfd-faq__q\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lfd-faq-blog-furnished-1\">\n      <span>Quelle est la dur\u00e9e des baux non meubl\u00e9s au Luxembourg ?<\/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-blog-furnished-1\" role=\"region\">Les baux non meubl\u00e9s classiques courent g\u00e9n\u00e9ralement sur un \u00e0 trois ans, avec un pr\u00e9avis de trois mois pour le locataire comme pour le propri\u00e9taire. Les locations meubl\u00e9es sont bien plus souples \u2014 sur LuxFlat Direct, les s\u00e9jours vont d\u2019un mois \u00e0 une dur\u00e9e illimit\u00e9e.<\/div>\n  <\/div>\n  <div class=\"lfd-faq__item\">\n    <button class=\"lfd-faq__q\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lfd-faq-blog-furnished-2\">\n      <span>Que signifie \u00ab non meubl\u00e9 \u00bb au Luxembourg ?<\/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-blog-furnished-2\" role=\"region\">Souvent r\u00e9ellement vide. De nombreux appartements non meubl\u00e9s au Luxembourg n\u2019ont ni cuisine \u00e9quip\u00e9e, ni \u00e9lectrom\u00e9nager, et parfois m\u00eame pas de luminaires \u2014 les locataires installent les leurs et les emportent en partant. V\u00e9rifiez toujours si une cuisine et des appareils sont inclus avant de comparer un prix non meubl\u00e9 \u00e0 un prix meubl\u00e9.<\/div>\n  <\/div>\n  <div class=\"lfd-faq__item\">\n    <button class=\"lfd-faq__q\" type=\"button\" aria-expanded=\"false\" aria-controls=\"lfd-faq-blog-furnished-3\">\n      <span>Puis-je louer un appartement meubl\u00e9 au Luxembourg pour seulement quelques mois ?<\/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-blog-furnished-3\" role=\"region\">Oui. C\u2019est dans le meubl\u00e9 que se trouve le march\u00e9 de courte dur\u00e9e. Les annonces LuxFlat Direct sont disponibles d\u2019un mois \u00e0 une dur\u00e9e illimit\u00e9e, toutes meubl\u00e9es et tout compris, ce qui convient aux stages, aux contrats \u00e0 dur\u00e9e d\u00e9termin\u00e9e, aux mutations et au travail en mode projet.<\/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\": \"Est-il moins cher de louer meubl\u00e9 ou non meubl\u00e9 au Luxembourg ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Le non meubl\u00e9 est moins cher au mois \u2014 le meubl\u00e9 co\u00fbte g\u00e9n\u00e9ralement 15 \u00e0 30 % de plus. Mais les baux non meubl\u00e9s facturent habituellement \u00e0 part les charges et frais de service, soit environ 200 \u00e0 300 \u20ac par mois, et vous devez meubler vous-m\u00eame le logement, souvent cuisine comprise. Une fois ces deux \u00e9l\u00e9ments pris en compte, le meubl\u00e9 revient g\u00e9n\u00e9ralement moins cher pour un s\u00e9jour de moins d\u2019un an, tandis que le non meubl\u00e9 devient plus avantageux \u00e0 mesure que le s\u00e9jour se prolonge.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Quelle est la dur\u00e9e des baux non meubl\u00e9s au Luxembourg ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Les baux non meubl\u00e9s classiques courent g\u00e9n\u00e9ralement sur un \u00e0 trois ans, avec un pr\u00e9avis de trois mois pour le locataire comme pour le propri\u00e9taire. Les locations meubl\u00e9es sont bien plus souples \u2014 sur LuxFlat Direct, les s\u00e9jours vont d\u2019un mois \u00e0 une dur\u00e9e illimit\u00e9e.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Que signifie \u00ab non meubl\u00e9 \u00bb au Luxembourg ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Souvent r\u00e9ellement vide. De nombreux appartements non meubl\u00e9s au Luxembourg n\u2019ont ni cuisine \u00e9quip\u00e9e, ni \u00e9lectrom\u00e9nager, et parfois m\u00eame pas de luminaires \u2014 les locataires installent les leurs et les emportent en partant. V\u00e9rifiez toujours si une cuisine et des appareils sont inclus avant de comparer un prix non meubl\u00e9 \u00e0 un prix meubl\u00e9.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Puis-je louer un appartement meubl\u00e9 au Luxembourg pour seulement quelques mois ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Oui. C\u2019est dans le meubl\u00e9 que se trouve le march\u00e9 de courte dur\u00e9e. Les annonces LuxFlat Direct sont disponibles d\u2019un mois \u00e0 une dur\u00e9e illimit\u00e9e, toutes meubl\u00e9es et tout compris, ce qui convient aux stages, aux contrats \u00e0 dur\u00e9e d\u00e9termin\u00e9e, aux mutations et au travail en mode projet.\"\n      }\n    }\n  ]\n}<\/script>\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=\"#short-answer\">La r\u00e9ponse courte<\/a>\n            <a href=\"#furnished\">Ce que \u00ab meubl\u00e9 \u00bb signifie ici<\/a>\n            <a href=\"#unfurnished\">Ce que \u00ab non meubl\u00e9 \u00bb signifie ici<\/a>\n            <a href=\"#cost\">La v\u00e9ritable comparaison des co\u00fbts<\/a>\n            <a href=\"#side-by-side\">C\u00f4te \u00e0 c\u00f4te<\/a>\n            <a href=\"#speed\">Rapidit\u00e9 et dur\u00e9e du bail<\/a>\n            <a href=\"#who\">\u00c0 qui convient chaque formule<\/a>\n            <a href=\"#flexible\">Pourquoi le meubl\u00e9 convient aux s\u00e9jours sans dur\u00e9e fix\u00e9e<\/a>\n            <a href=\"#verdict\">Le verdict<\/a>\n            <a href=\"#faq\">Questions fr\u00e9quentes<\/a>\n          <\/nav>\n          <div class=\"lfd-toc__foot\">Vous cherchez un logement d\u00e8s maintenant ? <a href=\"\/fr\/apartments\/\">Parcourir les locations meubl\u00e9es<\/a>.<\/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-afffda5 e-con-full e-flex e-con e-parent\" data-id=\"afffda5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1869730 elementor-widget elementor-widget-html\" data-id=\"1869730\" 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\">\u00c0 LIRE AUSSI SUR LE BLOG<\/div>\n    <h2>Articles li\u00e9s<\/h2>\n    <div class=\"lfd-rel__grid\">\n      <a class=\"lfd-rel__card\" href=\"\/fr\/meilleurs-quartiers-ou-louer-au-luxembourg\/\">\n        <div class=\"lfd-rel__media\"><img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/09\/luxflat-nb-belair.webp\" alt=\"Belair vu d\u2019en haut : maisons de ville et avenues bord\u00e9es d\u2019arbres\" width=\"1440\" height=\"810\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"lfd-rel__txt\">\n          <span class=\"lfd-rel__tag\">Quartiers<\/span>\n          <span class=\"lfd-rel__t\">Les meilleurs quartiers o\u00f9 louer au Luxembourg en 2026<\/span>\n          <span class=\"lfd-rel__d\">Sept quartiers compar\u00e9s sur le prix, le caract\u00e8re, les transports et le profil auquel chacun convient.<\/span>\n          <span class=\"lfd-rel__r\">~12 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\/09\/luxflat-nb-gasperich.webp\" alt=\"Les Sky Apartments \u00e0 la Cloche d&#x27;Or, \u00e0 Gasperich\" width=\"1440\" height=\"960\" 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 loyer tout compris, le forfait unique r\u00e9gl\u00e9 de chaque c\u00f4t\u00e9, et la comparaison avec une agence.<\/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\/verification-de-votre-dossier\/\">\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=\"Le plateau de Kirchberg avec ses tours modernes et le tram\" width=\"1440\" height=\"958\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"lfd-rel__txt\">\n          <span class=\"lfd-rel__tag\">Documents &amp; v\u00e9rification<\/span>\n          <span class=\"lfd-rel__t\">Faire v\u00e9rifier son dossier : documents et v\u00e9rification expliqu\u00e9s<\/span>\n          <span class=\"lfd-rel__d\">Deux documents, v\u00e9rifi\u00e9s sous 24 heures, et votre dossier fonctionne pour toutes les annonces.<\/span>\n          <span class=\"lfd-rel__r\">~4 min de lecture<\/span>\n        <\/div>\n      <\/a>\n<a class=\"lfd-rel__card\" href=\"\/fr\/cout-de-la-location-au-luxembourg\/\">\n        <div class=\"lfd-rel__media\"><img loading=\"lazy\" src=\"https:\/\/www.luxflat-direct.com\/wp-content\/uploads\/2026\/09\/luxflat-nb-limpertsberg.webp\" alt=\"Luxembourg-Ville au-dessus de la vall\u00e9e\" width=\"1440\" height=\"960\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"lfd-rel__txt\">\n          <span class=\"lfd-rel__tag\">Analyses de march\u00e9<\/span>\n          <span class=\"lfd-rel__t\">Combien co\u00fbte la location au Luxembourg en 2026 ?<\/span>\n          <span class=\"lfd-rel__d\">Le loyer moyen par type d\u2019appartement et par quartier, les raisons de prix \u00e9lev\u00e9s, et comment payer moins.<\/span>\n          <span class=\"lfd-rel__r\">~11 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\/blog\/\"><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 blog<\/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,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1439","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg | LuxFlat<\/title>\n<meta name=\"description\" content=\"Meubl\u00e9 ou non meubl\u00e9 au Luxembourg : l\u2019\u00e9cart de co\u00fbt r\u00e9el, la dur\u00e9e des baux et une r\u00e9ponse claire selon la dur\u00e9e de votre s\u00e9jour.\" \/>\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\/appartement-meuble-ou-non-meuble-luxembourg\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg | LuxFlat\" \/>\n<meta property=\"og:description\" content=\"Meubl\u00e9 ou non meubl\u00e9 au Luxembourg : l\u2019\u00e9cart de co\u00fbt r\u00e9el, la dur\u00e9e des baux et une r\u00e9ponse claire selon la dur\u00e9e de votre s\u00e9jour.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/\" \/>\n<meta property=\"og:site_name\" content=\"LuxFlat Direct\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-24T18:34:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-24T18:54:47+00:00\" \/>\n<meta name=\"author\" content=\"Hemal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hemal\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/\"},\"author\":{\"name\":\"Hemal\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#\\\/schema\\\/person\\\/dcb4e3b7a490141a97ffe242aefc1b86\"},\"headline\":\"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg : lequel choisir ?\",\"datePublished\":\"2026-09-24T18:34:26+00:00\",\"dateModified\":\"2026-09-24T18:54:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#organization\"},\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/\",\"url\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/\",\"name\":\"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg | LuxFlat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#website\"},\"datePublished\":\"2026-09-24T18:34:26+00:00\",\"dateModified\":\"2026-09-24T18:54:47+00:00\",\"description\":\"Meubl\u00e9 ou non meubl\u00e9 au Luxembourg : l\u2019\u00e9cart de co\u00fbt r\u00e9el, la dur\u00e9e des baux et une r\u00e9ponse claire selon la dur\u00e9e de votre s\u00e9jour.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/appartement-meuble-ou-non-meuble-luxembourg\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/accueil\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg : lequel choisir ?\"}]},{\"@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\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/#\\\/schema\\\/person\\\/dcb4e3b7a490141a97ffe242aefc1b86\",\"name\":\"Hemal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2c898a30af3a67c31fde19c9f0fa61bbec86b12224b6d16aa5dc476262e567a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2c898a30af3a67c31fde19c9f0fa61bbec86b12224b6d16aa5dc476262e567a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2c898a30af3a67c31fde19c9f0fa61bbec86b12224b6d16aa5dc476262e567a?s=96&d=mm&r=g\",\"caption\":\"Hemal\"},\"url\":\"https:\\\/\\\/www.luxflat-direct.com\\\/fr\\\/author\\\/hemal\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg | LuxFlat","description":"Meubl\u00e9 ou non meubl\u00e9 au Luxembourg : l\u2019\u00e9cart de co\u00fbt r\u00e9el, la dur\u00e9e des baux et une r\u00e9ponse claire selon la dur\u00e9e de votre s\u00e9jour.","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\/appartement-meuble-ou-non-meuble-luxembourg\/","og_locale":"fr_FR","og_type":"article","og_title":"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg | LuxFlat","og_description":"Meubl\u00e9 ou non meubl\u00e9 au Luxembourg : l\u2019\u00e9cart de co\u00fbt r\u00e9el, la dur\u00e9e des baux et une r\u00e9ponse claire selon la dur\u00e9e de votre s\u00e9jour.","og_url":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/","og_site_name":"LuxFlat Direct","article_published_time":"2026-09-24T18:34:26+00:00","article_modified_time":"2026-09-24T18:54:47+00:00","author":"Hemal","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Hemal"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/#article","isPartOf":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/"},"author":{"name":"Hemal","@id":"https:\/\/www.luxflat-direct.com\/fr\/#\/schema\/person\/dcb4e3b7a490141a97ffe242aefc1b86"},"headline":"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg : lequel choisir ?","datePublished":"2026-09-24T18:34:26+00:00","dateModified":"2026-09-24T18:54:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/"},"wordCount":9,"publisher":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/#organization"},"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/","url":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/","name":"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg | LuxFlat","isPartOf":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/#website"},"datePublished":"2026-09-24T18:34:26+00:00","dateModified":"2026-09-24T18:54:47+00:00","description":"Meubl\u00e9 ou non meubl\u00e9 au Luxembourg : l\u2019\u00e9cart de co\u00fbt r\u00e9el, la dur\u00e9e des baux et une r\u00e9ponse claire selon la dur\u00e9e de votre s\u00e9jour.","breadcrumb":{"@id":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.luxflat-direct.com\/fr\/appartement-meuble-ou-non-meuble-luxembourg\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.luxflat-direct.com\/fr\/accueil\/"},{"@type":"ListItem","position":2,"name":"Appartement meubl\u00e9 ou non meubl\u00e9 au Luxembourg : lequel choisir ?"}]},{"@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\/"}},{"@type":"Person","@id":"https:\/\/www.luxflat-direct.com\/fr\/#\/schema\/person\/dcb4e3b7a490141a97ffe242aefc1b86","name":"Hemal","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/d2c898a30af3a67c31fde19c9f0fa61bbec86b12224b6d16aa5dc476262e567a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d2c898a30af3a67c31fde19c9f0fa61bbec86b12224b6d16aa5dc476262e567a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d2c898a30af3a67c31fde19c9f0fa61bbec86b12224b6d16aa5dc476262e567a?s=96&d=mm&r=g","caption":"Hemal"},"url":"https:\/\/www.luxflat-direct.com\/fr\/author\/hemal\/"}]}},"_links":{"self":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/posts\/1439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"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=1439"}],"version-history":[{"count":1,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/posts\/1439\/revisions"}],"predecessor-version":[{"id":1456,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/posts\/1439\/revisions\/1456"}],"wp:attachment":[{"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/media?parent=1439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/categories?post=1439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.luxflat-direct.com\/fr\/wp-json\/wp\/v2\/tags?post=1439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}