/* Arabic type (30 Sep 2026): Amiri for headings/display (400, 700) + Noto Naskh Arabic for text and UI (variable 400-700),
   self-hosted Google Fonts subsets (fonts comparison page, option 2). The Arabic files are cut down with pyftsubset to the
   Arabic letters, harakat, punctuation and Arabic digits the site uses (all OpenType features kept, ~60% smaller). Latin and
   Western digits: Noto Naskh Arabic's latin file in text; in display text they fall through to Gloock, the English display face
   (no Amiri latin file, one request less above the fold). size-adjust on the Arabic
   subsets brings both faces to the optical size of the previous IBM Plex Sans Arabic, so line breaks stay where they were. */
@font-face{font-family:'Amiri';font-style:normal;font-weight:400;font-display:swap;size-adjust:112%;src:url(/assets/fonts/amiri-400-arabic-core.woff2) format('woff2');unicode-range:U+060C, U+061B, U+061F, U+0621-063A, U+0640-0655, U+0660-066D, U+0670-0671, U+067E, U+0686, U+06A4, U+06A9, U+06AF, U+06CC, U+200C-200F, U+2010-2011, U+25CC}
@font-face{font-family:'Amiri';font-style:normal;font-weight:700;font-display:swap;size-adjust:112%;src:url(/assets/fonts/amiri-700-arabic-core.woff2) format('woff2');unicode-range:U+060C, U+061B, U+061F, U+0621-063A, U+0640-0655, U+0660-066D, U+0670-0671, U+067E, U+0686, U+06A4, U+06A9, U+06AF, U+06CC, U+200C-200F, U+2010-2011, U+25CC}
@font-face{font-family:'Noto Naskh Arabic';font-style:normal;font-weight:400 700;font-display:swap;size-adjust:104%;src:url(/assets/fonts/noto-naskh-arabic-400-700-arabic-core.woff2) format('woff2');unicode-range:U+060C, U+061B, U+061F, U+0621-063A, U+0640-0655, U+0660-066D, U+0670-0671, U+067E, U+0686, U+06A4, U+06A9, U+06AF, U+06CC, U+200C-200F, U+2010-2011, U+25CC}
@font-face{font-family:'Noto Naskh Arabic';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/noto-naskh-arabic-400-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Gloock';src:url(/assets/fonts/gloock-normal-latin.woff2) format('woff2');font-display:swap}
:root{--ink:#1a2130;--night:#243049;--lantern:#f0a851;--lantern-2:#ffcf8f;--text:#ece5d8;--muted:#b3ab9e;--ar:"Noto Naskh Arabic",system-ui,"Segoe UI",Tahoma,sans-serif;--ar-display:"Amiri","Gloock",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);font:400 17px/1.8 var(--ar)}
a{color:var(--lantern-2)}img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-weight:600;line-height:1.3;margin:0 0 .6em}h1{font-size:clamp(34px,6vw,64px)}h2{font-size:clamp(26px,3.4vw,40px)}
.wrap{width:min(1160px,100% - 40px);margin-inline:auto}.muted{color:var(--muted)}
.skip{position:fixed;inset-inline-start:16px;top:-60px;background:var(--lantern);color:var(--ink);padding:10px 14px;z-index:99}.skip:focus{top:16px}
:focus-visible{outline:2px solid var(--lantern);outline-offset:3px}
.kicker{color:var(--lantern-2);font-weight:500;margin:0 0 .8rem}.lead{font-size:clamp(17px,1.4vw,20px);color:#efe7da;max-width:36em}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;text-decoration:none;font:inherit;font-weight:600;border:1px solid var(--lantern);cursor:pointer;min-height:48px}
.btn--primary{background:var(--lantern);color:var(--ink)}.btn--ghost{background:transparent;color:var(--lantern-2)}.btn--small{padding:8px 16px;min-height:40px;font-size:15px}
.btn:hover{filter:brightness(1.08)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6rem}.text-link{font-weight:500}
.lnav{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:24px;padding:14px 20px;background:linear-gradient(rgba(26,33,48,.9),rgba(26,33,48,0))}
.brand{display:flex;gap:10px;align-items:center;color:var(--text);text-decoration:none;font-weight:600}.brand small{display:block;font-weight:400;color:var(--muted);font-size:13px}
.brand__mark{font-family:'Gloock',serif;color:var(--lantern-2);border:1px solid rgba(240,168,81,.5);width:40px;height:40px;display:grid;place-items:center;border-radius:50%}
.lnav__links{display:flex;gap:22px;margin-inline-start:auto}.lnav__links a{color:var(--text);text-decoration:none}.lnav__links a:hover{color:var(--lantern-2)}
.lang{font-family:"Hanken Grotesk",system-ui,sans-serif;text-decoration:none;border:1px solid rgba(240,168,81,.35);border-radius:999px;padding:6px 12px}
.lhero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.lhero__bg,.lhero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lhero::after{content:"";position:absolute;inset:0;background:linear-gradient(to left,rgba(20,26,40,.85),rgba(20,26,40,.2) 70%),linear-gradient(to top,rgba(20,26,40,.8),transparent 50%)}
.lhero__c{position:relative;z-index:1;padding:0 clamp(20px,6vw,96px) 12vh;max-width:760px}
.sec{padding:clamp(64px,10vw,120px) 0;border-top:1px solid rgba(240,168,81,.12)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.lform{background:var(--night);border:1px solid rgba(240,168,81,.2);border-radius:18px;padding:28px;display:grid;gap:16px}
.f{display:grid;gap:6px;border:0;padding:0;margin:0}.f span,.f legend{color:var(--muted);font-size:15px;padding:0}
.f input,.f select{font:inherit;color:var(--text);background:#1d2536;border:1px solid rgba(236,229,216,.2);border-radius:10px;padding:12px 14px;min-height:48px}
.r{display:inline-flex;gap:8px;align-items:center;margin-inline-end:18px}.r input,.consent input{accent-color:var(--lantern);width:18px;height:18px}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--muted)}
.cgrid,.lgrid{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:16px}
.cgrid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.ccard{border:1px solid rgba(240,168,81,.25);border-radius:14px;padding:20px}.ccard h3{font-size:22px}
.lgrid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.lcard{background:var(--night);border-radius:16px;overflow:hidden}
.lcard__b{padding:18px}.lcard__b p{margin:.2em 0}.lcard__price{font:400 26px/1.2 'Gloock',serif;color:var(--lantern-2)}.lcard__permit{font-size:13px;color:var(--muted)}.lcard__a{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:.8em!important}
.portrait{border-radius:18px;max-width:420px}
.lfoot{padding:40px 0 110px;color:var(--muted);font-size:14px;border-top:1px solid rgba(240,168,81,.12)}
.lbar{display:none}
.thanks{min-height:100svh;display:grid;align-content:center;padding:40px clamp(20px,8vw,120px);max-width:820px}
.lite:not(.lite--ar){font-family:"Hanken Grotesk",system-ui,sans-serif}
.lite--ar{line-height:1.85}.lite--ar :is(h1,h2,h3){font-family:var(--ar-display);font-weight:700;line-height:1.55;word-spacing:.06em}.lite--ar *{letter-spacing:0}
@media (max-width:820px){.lnav__links{display:none}.lang{margin-inline-start:auto}.two{grid-template-columns:1fr}
 .lbar{display:flex;position:fixed;inset:auto 0 0;z-index:20;gap:10px;padding:10px 14px;background:rgba(26,33,48,.95);border-top:1px solid rgba(240,168,81,.2)}
 .lbar a{flex:1;text-align:center;padding:12px;border-radius:999px;border:1px solid var(--lantern);text-decoration:none;font-weight:600}.lbar .wa{background:var(--lantern);color:var(--ink)}}
.two>*{min-width:0}.portrait{width:100%}html,body{overflow-x:clip}

.hint{color:var(--muted);font-size:14px;line-height:1.6}
.two>*{min-width:0}.lform{min-width:0}.f select,.f input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}

/* cluster card link */
.ccard .text-link{display:inline-flex;align-items:center;min-height:44px}
html.is-locked{overflow:hidden}

/* ===== v7 plan finder (#finder). Shared by css/site.css (/) and css/lite.css (/ar/) ===== */
.fx-sec{--fxg:#f0a851;--fxg2:#ffcf8f;--fxt:#ece5d8;--fxm:#b3ab9e;--fxl:rgba(240,168,81,.22);--fxd:var(--display,var(--ar,serif));--fxb:var(--body,var(--ar,system-ui,sans-serif));position:relative;background:radial-gradient(90% 60% at 100% 0,rgba(240,168,81,.07),transparent 60%),var(--ink,#1a2130)}
.fx-sec .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fx-head{max-width:760px;margin:0 0 44px}
.fx-kicker{display:flex;align-items:center;gap:12px;margin:0 0 16px;color:var(--fxg2);font:600 13px/1 var(--fxb);letter-spacing:.16em;text-transform:uppercase}
.fx-kicker::before{content:"";width:34px;height:1px;background:currentColor}
.fx-h2{font-size:clamp(28px,4vw,46px);margin:0 0 14px}
.fx-lede{margin:0;max-width:40em;color:var(--fxm);font-size:clamp(16px,1.3vw,19px);line-height:1.6}
.fx{margin:0;display:grid;gap:28px}
.fx-q{margin:0;padding:0;border:0;min-width:0}
.fx-q[hidden]{display:none}
.fx-q__l{display:flex;align-items:center;gap:12px;padding:0;margin:0 0 14px;font:600 14px/1 var(--fxb);letter-spacing:.12em;text-transform:uppercase;color:var(--fxt)}
.fx-q__n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--fxl);font:italic 400 16px/1 var(--fxd);color:var(--fxg2);letter-spacing:0}
/* type tiles: real radios */
.fx-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fx-tile{position:relative;display:grid;grid-template-rows:auto auto 1fr;gap:6px;padding:22px 22px 20px;border:1px solid rgba(236,229,216,.14);border-radius:18px;background:linear-gradient(160deg,rgba(255,255,255,.035),rgba(255,255,255,0) 60%);cursor:pointer;transition:border-color .25s,background-color .25s,transform .35s cubic-bezier(.2,.7,.1,1)}
.fx-tile:hover{border-color:rgba(240,168,81,.55)}
.fx-tile input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.fx-tile__i{display:block;color:var(--fxg);opacity:.85;margin-bottom:8px}
.fx-tile__i svg{width:120px;height:56px;display:block}
.fx-tile__t{font:400 clamp(24px,2.2vw,32px)/1.05 var(--fxd);color:var(--fxt)}
.fx-tile__m{font-size:14px;color:var(--fxm);align-self:end}
.fx-tile::after{content:"";position:absolute;top:18px;inset-inline-end:18px;width:22px;height:22px;border-radius:50%;border:1px solid rgba(236,229,216,.3);transition:background-color .2s,border-color .2s,box-shadow .2s}
.fx-tile:has(input:checked){border-color:var(--fxg);background:radial-gradient(120% 90% at 0 0,rgba(240,168,81,.16),rgba(240,168,81,.03) 70%)}
.fx-tile:has(input:checked)::after{background:var(--fxg);border-color:var(--fxg);box-shadow:inset 0 0 0 5px #221a10}
.fx-tile:has(input:focus-visible){outline:2px solid var(--fxg);outline-offset:3px}
.fx-tile:has(input:checked) .fx-tile__i{opacity:1;color:var(--fxg2)}
/* bedroom chips */
.fx-chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fx-chip{position:relative;cursor:pointer}
.fx-chip input{position:absolute;opacity:0;width:1px;height:1px}
.fx-chip span{display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border-radius:999px;border:1px solid rgba(236,229,216,.24);font:500 15px/1 var(--fxb);color:var(--fxt);transition:background-color .2s,border-color .2s,color .2s}
.fx-chip:hover span{border-color:var(--fxg)}
.fx-chip input:checked+span{background:var(--fxg);border-color:var(--fxg);color:#221a10;font-weight:600}
.fx-chip input:focus-visible+span{outline:2px solid var(--fxg);outline-offset:3px}
.fx-tog{display:inline-flex;align-items:center;gap:10px;margin-top:14px;min-height:44px;cursor:pointer;color:var(--fxt);font-size:15px}
.fx-tog[hidden]{display:none}
.fx-tog input{width:20px;height:20px;accent-color:var(--fxg);margin:0}
/* results */
.fx-res{min-height:120px;border-top:1px solid var(--fxl);padding-top:22px}
.fx-hint{margin:0;color:var(--fxm);font-size:16px;max-width:34em}
.fx-res__h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin:0 0 16px}
.fx-res__n{margin:0;font:400 clamp(22px,2vw,28px)/1.2 var(--fxd);color:var(--fxt)}
.fx-link{min-height:44px;padding:0 2px;border:0;background:none;color:var(--fxg2);font:600 15px/1 var(--fxb);text-decoration:underline;text-underline-offset:5px;cursor:pointer}
.fx-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fx-card{display:flex;flex-direction:column;border:1px solid rgba(236,229,216,.12);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#212a3d,#1b2233);animation:fxIn .5s cubic-bezier(.2,.7,.1,1) both;animation-delay:calc(var(--i,0) * 60ms)}
@keyframes fxIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fx-card{animation:none}}
.fx-card__img{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:14px;margin:0;border:0;background:#efe8dc;cursor:zoom-in;overflow:hidden}
.fx-card.is-ph .fx-card__img{background:#1d2536}
.fx-card__img img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .6s cubic-bezier(.2,.7,.1,1)}
.fx-card__img:hover img{transform:scale(1.04)}
.fx-rank,.fx-badge{position:absolute;top:10px;inset-inline-start:10px;padding:5px 10px;border-radius:999px;font:700 11px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.fx-rank{background:#1a2130;color:var(--fxg2)}
.fx-badge{background:rgba(240,168,81,.16);border:1px solid rgba(240,168,81,.6);color:var(--fxg2)}
.fx-card__b{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px;flex:1}
.fx-card__t{margin:0;font:400 21px/1.15 var(--fxd);color:var(--fxt)}
.fx-card__c{margin:0;font-size:14px;color:var(--fxm)}
.fx-card__s{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 4px}
.fx-card__s div{border-top:1px solid var(--fxl);padding-top:7px;min-width:0}
.fx-card__s dt{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fxm)}
.fx-card__s dd{margin:2px 0 0;font:400 18px/1.2 var(--fxd);color:var(--fxt);overflow-wrap:anywhere}
.fx-todo{display:inline-block;font:600 11.5px/1.35 system-ui,sans-serif;color:var(--fxg2);background:rgba(240,168,81,.1);padding:2px 6px;border-radius:4px}
.fx-card__ph{margin:0;font-size:12.5px;color:var(--fxg2)}
.fx-card__a{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:10px}
.fx-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid transparent;font:600 14px/1 var(--fxb);text-decoration:none;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.fx-btn--p{background:var(--fxg);color:#221a10}.fx-btn--p:hover{background:var(--fxg2)}
.fx-btn--l{border-color:rgba(240,168,81,.55);color:var(--fxg2);background:none}.fx-btn--l:hover{border-color:var(--fxg2)}
/* all 15 clusters, collapsed */
.fx-idx{margin-top:40px;border-top:1px solid var(--fxl);border-bottom:1px solid var(--fxl)}
.fx-idx summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;cursor:pointer;list-style:none;font:400 clamp(19px,1.7vw,24px)/1.2 var(--fxd);color:var(--fxt)}
.fx-idx summary::-webkit-details-marker{display:none}
.fx-idx summary svg{width:22px;height:22px;flex:none;color:var(--fxg);transition:transform .3s}
.fx-idx[open] summary svg{transform:rotate(180deg)}
.fx-idx summary:hover{color:var(--fxg2)}
.fx-idx__note{margin:0 0 18px;color:var(--fxm);font-size:14.5px}
.fx-idx__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px 36px;padding-bottom:26px}
.fx-idx__h{margin:0 0 8px;font:600 12.5px/1 var(--fxb);letter-spacing:.14em;text-transform:uppercase;color:var(--fxm)}
.fx-idx__h small{color:var(--fxg2);margin-inline-start:6px;font-size:inherit}
.fx-idx__l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 16px}
.fx-cl{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:48px;padding:8px 0;border:0;border-bottom:1px solid rgba(236,229,216,.08);background:none;color:var(--fxt);text-align:start;font:400 18px/1.2 var(--fxd);cursor:pointer}
.fx-cl small{font:400 12.5px/1.2 var(--fxb);color:var(--fxm)}
.fx-cl.is-soon small{color:var(--fxg2)}
.fx-cl:hover .fx-cl__n{color:var(--fxg2)}
.fx-dot{position:absolute;top:13px;inset-inline-end:4px;width:8px;height:8px;border-radius:50%;background:var(--fxg);box-shadow:0 0 0 4px rgba(240,168,81,.15)}
.fx-note{margin:18px 0 0;font-size:13px;color:var(--fxm);max-width:60em}
/* Arabic */
[dir="rtl"] .fx-kicker,[dir="rtl"] .fx-q__l,[dir="rtl"] .fx-idx__h,[dir="rtl"] .fx-card__s dt,[dir="rtl"] .fx-rank,[dir="rtl"] .fx-badge{letter-spacing:0;text-transform:none}
[dir="rtl"] .fx-kicker{font-size:15px}[dir="rtl"] .fx-q__l{font-size:16px}[dir="rtl"] .fx-idx__h{font-size:14px}[dir="rtl"] .fx-card__s dt{font-size:13px}[dir="rtl"] .fx-rank,[dir="rtl"] .fx-badge{font-size:12.5px}
[dir="rtl"] .fx-tile__t,[dir="rtl"] .fx-res__n,[dir="rtl"] .fx-card__t,[dir="rtl"] .fx-idx summary{font-weight:600}
[dir="rtl"] .fx-tile__t{font-size:clamp(22px,2vw,28px)}[dir="rtl"] .fx-card__t{font-size:18px}[dir="rtl"] .fx-cl{font-size:17px;font-weight:600}[dir="rtl"] .fx-card__s dd{font-size:16px;font-weight:600}
[dir="rtl"] .fx-tile__i svg{transform:scaleX(-1)}
@media (max-width:900px){
  .fx-cards{grid-template-columns:1fr 1fr}
  .fx-idx__grid{grid-template-columns:1fr 1fr}.fx-idx__g:first-child{grid-column:1/-1}
}
@media (max-width:640px){
  .fx-head{margin-bottom:30px}
  .fx-tiles{grid-template-columns:1fr;gap:10px}
  .fx-tile{grid-template-columns:88px 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:2px;padding:14px 48px 14px 14px;align-items:center}
  [dir="rtl"] .fx-tile{padding:14px 14px 14px 48px}
  .fx-tile__i{grid-row:1/3;margin:0}.fx-tile__i svg{width:88px;height:42px}
  .fx-tile__m{align-self:start;font-size:13.5px}
  .fx-tile::after{top:50%;margin-top:-11px}
  .fx-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.fx-chip{flex:none}
  .fx-cards{grid-template-columns:1fr;gap:14px}
  .fx-card{display:grid;grid-template-columns:118px 1fr}
  .fx-card__img{aspect-ratio:auto;height:100%;min-height:140px;padding:8px}
  .fx-card__b{padding:12px 14px 14px}
  .fx-card__t{font-size:18px}
  .fx-card__s dd{font-size:16px}
  .fx-rank,.fx-badge{top:6px;inset-inline-start:6px;padding:4px 7px;font-size:9.5px}
  .fx-card__a .fx-btn{flex:1;padding:0 10px}
  .fx-idx__grid{grid-template-columns:1fr}
  .fx-idx__l{grid-template-columns:1fr 1fr}
}
.fx-lgd{display:inline-flex;align-items:center;gap:8px;margin-inline-start:6px}
.fx-dot--i{position:static;display:inline-block;flex:none}
/* v7: real plan thumbs (white Emaar drawings) on warm paper, floors side by side */
.fx-th{display:flex;gap:6px;width:100%;height:100%;justify-content:center}
.fx-th img{flex:1 1 0;min-width:0;height:100%;object-fit:contain;mix-blend-mode:multiply}
.fx-card.is-ph .fx-th img{mix-blend-mode:normal;object-fit:cover}
.fx-card__img{background:#f3eee4}
.fx-card__s dd small{display:block;margin-top:2px;font:400 12px/1.3 var(--fxb);color:var(--fxm)}
.fx-ns{font:500 13.5px/1.3 var(--fxb);color:#e5dccb}
.fx-rows{list-style:none;margin:0;padding:0;border-top:1px solid rgba(236,229,216,.1)}
.fx-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,1.2fr) auto;align-items:center;gap:10px 20px;padding:12px 0;border-bottom:1px solid rgba(236,229,216,.1)}
.fx-row__n{font:400 21px/1.15 var(--fxd);color:var(--fxt)}
.fx-row__n small{display:block;margin-top:3px;font:400 12.5px/1.2 var(--fxb);color:var(--fxm)}
.fx-row__c{font-size:14.5px;color:var(--fxm)}
.fx-row__s{font:400 17px/1.2 var(--fxd);color:var(--fxt)}
.fx-badge--i{position:static;display:inline-block;padding:3px 7px;font-size:10px}
[dir="rtl"] .fx-row__n{font-weight:600;font-size:18px}[dir="rtl"] .fx-row__s{font-weight:600;font-size:15px}
@media (max-width:640px){
  .fx-row{grid-template-columns:1fr auto;gap:4px 12px}
  .fx-row__n{grid-column:1}.fx-row .fx-btn{grid-column:2;grid-row:1/4}
  .fx-row__c,.fx-row__s{grid-column:1;font-size:14px}
  .fx-th img{mix-blend-mode:multiply}
}
.fx-btn{white-space:nowrap}
@media (max-width:640px){.fx-card__a{flex-wrap:wrap}.fx-card__a .fx-btn{padding:0 12px;font-size:13.5px}}
.fx-cn{display:inline;min-height:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-decoration-color:rgba(240,168,81,.55);text-underline-offset:3px;cursor:pointer}
.fx-cn:hover,.fx-cn:focus-visible{color:var(--fxg2)}
.fx-row__n .fx-cn{text-align:start;font-weight:inherit}
@media (pointer:coarse){.fx-cn{padding-block:12px;margin-block:-12px}}

/* bgfix (29 Sep 2026): the "shadow while scrolling" came from stacked near-identical navies (ink #1a2130 / night #243049 / a night-to-ink gradient),
   a gold radial tint on the finder, a fixed gradient nav bar on /ar/, blurred fixed bars, and reveals that were still fading when on screen.
   Every dark section is now one flat ink; sections are separated by a hairline, fixed bars are solid, reveals finish as they enter. */
.fx-sec{background:var(--ink,#1a2130)}
.sell,.close{background:var(--ink,#1a2130)}
.sell{border-block:1px solid rgba(236,229,216,.08)}
.hero__stage{background-color:var(--ink,#1a2130)}
.nav.is-solid{background:var(--ink,#1a2130);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 1px 0 rgba(236,229,216,.08)}
.to-top{background:var(--ink,#1a2130);-webkit-backdrop-filter:none;backdrop-filter:none}
.cbar{background:rgba(26,33,48,.98)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.reveal{transform:translateY(14px);transition:opacity .5s var(--ease,ease),transform .5s var(--ease,ease)}
.lnav{background:var(--ink,#1a2130);box-shadow:0 1px 0 rgba(240,168,81,.14)}
/* /ar/ concierge button (panel css loads on first tap) */

/* a11y (29 Sep): the photo-slot number ("01") could sit over the gold hero button or a bright part of the frame
   (measured 1.7:1). An opaque ink chip keeps the gold numeral at ~12:1 on any background. */
.inset__n{background:#141926;padding:3px 7px 2px;border:1px solid rgba(240,168,81,.35);text-shadow:none}

/* qa.css (QA pass, 29 Sep 2026). Appended last by _tests/cat-css.sh so it wins over base + finder + bgfix at equal specificity. */

/* 1. Contact: "Buying or selling? Answer a few quick questions" is now a designed gold pill, not an underlined
      link that grows a hard rectangle when focused. The keyboard ring follows the pill shape. */
.close__guided{margin:-4px 0 32px}
.jny-open-btn{display:inline-flex;align-items:center;gap:12px;min-height:46px;padding:0 8px 0 20px;border:1px solid rgba(240,168,81,.45);border-radius:999px;
  background:rgba(240,168,81,.06);color:var(--lantern-2);font:500 15px/1.3 var(--body);text-decoration:none;text-align:start;cursor:pointer;
  transition:background-color .25s,border-color .25s,color .25s}
.jny-open-btn__a{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--lantern);color:var(--ink);font-size:15px;line-height:1;transition:transform .25s var(--ease,ease)}
.jny-open-btn:hover{background:rgba(240,168,81,.12);border-color:var(--lantern);color:var(--lantern-2)}
.jny-open-btn:hover .jny-open-btn__a{transform:translateX(3px)}
.jny-open-btn:focus-visible{outline:2px solid var(--lantern-2);outline-offset:3px;border-radius:999px}
.jny-open-btn.is-pfocus:focus-visible{outline:none}   /* focus handed back after a mouse/touch-opened journey */
@media (max-width:480px){.jny-open-btn{font-size:14.5px;padding:8px 6px 8px 16px;gap:10px}}

/* 2. /ar/ valuation form: the radios inherited the full-width text-input box (width:100%, 48px tall, filled) and drew as big white discs */
.lform .f .r{margin-inline-end:22px;min-height:44px}
.lform .f .r input,.lform .consent input{width:18px;height:18px;min-height:0;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:none;flex:none;accent-color:var(--lantern)}

/* 3. /ar/ Latin fallback fonts in Arabic text: rank/placeholder badges were system-ui (DejaVu/Segoe), the lang switch used an unloaded Hanken */
[dir="rtl"] .fx-rank,[dir="rtl"] .fx-badge,[dir="rtl"] .fx-todo{font-family:var(--fxb)}

.lite--ar .lang{font-family:var(--ar)}
.lite--ar .lcard__price{font-family:'Gloock',var(--ar)}

/* 4. Numbers and phone numbers never split across lines */
.chapter__direct [data-agent],.lform input[type=tel],.lite--ar a[href^="tel:"] span{white-space:nowrap}

/* 5. About caption: the nested role/company spans inherited display:block, leaving the comma alone on its own line */
.portrait figcaption span span{display:inline;margin:0}

/* 6. /ar/ headings: no one-word last lines such as a lone "3؟" (EN titles already balance; "A specialist's" gets a no-break space in index.html) */
.lite h1,.lite h2{text-wrap:balance}

/* 7. Listing chips: the count reads as a badge, so "Anya 1 1" no longer looks like a typo */
.chip span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:8px;border-radius:999px;background:rgba(31,37,51,.08);font-size:12px;opacity:1;vertical-align:1px}
.chip.is-on span{background:rgba(236,229,216,.18)}

/* 8. Listing detail: editorial name as the title, portal headline as a quiet tag line */
.detail__tags{display:block;margin-top:10px;font:500 13px/1.45 var(--body);letter-spacing:.02em;color:var(--ink-muted)}

/* 9. Mobile listing rows: built-up area was hidden with the table columns */
.row__mbua{display:none}
@media (max-width:900px){.row__mbua{display:inline}}

/* 11. Tap targets of at least 44px (checklist item 10). Hero progress dots stay 24px tall on phones (WCAG 2.5.8 AA
       minimum) because the Skip intro control shares their row. */
.hero__skip{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.nav__lang,.lite .lang{display:inline-flex;align-items:center;min-height:44px;min-width:44px;justify-content:center}
.chip{min-height:44px}
.lnav__links a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.lite .consent{min-height:44px;align-items:center}
.foot__nav a{display:inline-flex;align-items:center;min-height:44px}
@media (min-width:901px){.hero__progress button{top:-21px;bottom:-21px}}
/* sticky header: anchors and focused fields land below it, not under it */
html{scroll-padding-top:96px}

/* 12. Floor-plan panel (checklist item 7): one banner + one badge per card; no repeated per-card "Placeholder" note;
       fewer than four cards get wider cards instead of a sparse grid */

/* 13. AR permit row stays hidden until real Trakheesi numbers are added (then remove the hidden attribute) */
.lcard__permit[hidden]{display:none!important}

/* 14. The /ar/ listing cards are regenerated by the daily listings sync (sync-listings.mjs), whose template still prints
   "رقم تصريح الإعلان: [TODO: real data required]". Keep that sync-owned block byte-for-byte and hide the permit row here
   until real Trakheesi numbers exist. */
.lcard__permit{display:none!important}
