/* Дубай: стилът на генерирания markup от dubai_build.py (правило 5о: генериран
   компонент, CSS в assets/, не inline). От 11.09.2026.
   Токените са от colors_and_type.css; злато като текст на светло е --gold-ink (правило 5з).
   Числата НИКОГА през --font-display (ПРАВИЛА.md § 1): --font-body 700. */

/* hero с рендер на строителя под navy overlay: текстът стои върху композита navy .86 до .94,
   мерено в browser pane при 1440 (виж _ЛОГ_КОД.md 11.09.2026, Дубай, проект по проект) */
.db-hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(64vh,640px);display:flex;flex-direction:column;justify-content:center;gap:16px;padding:80px clamp(20px,4vw,56px) 72px;background:var(--navy)}
.db-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;z-index:-2;pointer-events:none}
.db-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(22,28,51,.74) 0%,rgba(33,41,71,.78) 50%,rgba(22,28,51,.94) 100%)}
.db-hero__cred{position:absolute;right:clamp(12px,3vw,40px);bottom:12px;font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.06em;color:var(--fg-3)}

.db-stat{display:flex;flex-direction:column;gap:6px;padding:22px 24px;border:1px solid rgba(33,41,71,.16);border-radius:var(--radius-md);background:rgba(255,255,255,.55)}
.db-stat strong{font-family:var(--font-body);font-weight:700;font-size:32px;line-height:1.05;color:var(--gold-ink,#7d6a33);overflow-wrap:anywhere}
.db-stat span{font-family:var(--font-caption);font-size:13px;line-height:1.45;color:var(--ink-2)}
.db-stat small{font-family:var(--font-caption);font-size:12px;color:var(--ink-3);line-height:1.45}
.db-stat--navy{border-color:var(--navy-line);background:rgba(255,255,255,.06);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.db-stat--navy strong{color:var(--gold)}
.db-stat--navy span{color:var(--fg-2)}
.db-stat--navy small{color:var(--fg-3)}
.db-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}

/* карта на проект (генерирана) */
.db-proekt{display:flex;flex-direction:column;gap:22px;padding:clamp(20px,3vw,36px);background:rgba(255,255,255,.5);border:1px solid rgba(33,41,71,.14);border-radius:var(--radius-md)}
.db-chips{display:flex;flex-wrap:wrap;gap:8px}
.db-fig{margin:0;display:flex;flex-direction:column;gap:6px}
.db-fig__img{width:100%;height:220px;object-fit:cover;border-radius:var(--radius-md);background:var(--navy-deep)}
.db-fig figcaption{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--ink-3);line-height:1.4}
.db-proekt__cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* таблици: bg-table на cream + скрол по правило 2г */
.on-cream .bh-t{min-width:640px}
.on-cream .bg-table thead th{position:static}
.on-cream .bg-table tbody td{border-bottom:1px solid rgba(33,41,71,.34)}

/* стъпки, въпроси */
.db-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;counter-reset:db}
.db-steps li{counter-increment:db;position:relative;padding:20px 20px 20px 64px;border:1px solid rgba(33,41,71,.14);border-radius:var(--radius-md);background:rgba(255,255,255,.5)}
.db-steps li::before{content:counter(db);position:absolute;left:18px;top:18px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:700;font-size:var(--fs-16);color:var(--cream);background:var(--navy)}
.db-steps strong{display:block;color:var(--ink);margin-bottom:4px}
.db-steps span{color:var(--ink-2);font-size:var(--fs-14);line-height:1.6}
.db-faq{display:flex;flex-direction:column;gap:10px;margin:0}
.db-faq details{border:1px solid rgba(33,41,71,.14);border-radius:var(--radius-md);background:rgba(255,255,255,.5);padding:0 20px}
.db-faq summary{cursor:pointer;padding:16px 0;color:var(--ink);font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.db-faq summary::-webkit-details-marker{display:none}
.db-faq summary::after{content:"+";color:var(--gold-ink,#7d6a33);font-family:var(--font-body);font-size:20px;line-height:1}
.db-faq details[open] summary::after{content:"−"}
.db-faq p{margin:0 0 16px;color:var(--ink-2);line-height:1.7}
.db-faq summary:focus-visible{outline:2px solid var(--gold-ink,#7d6a33);outline-offset:2px;border-radius:6px}
.db-toc{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}

/* форма. 12.09.2026: кант в покой --cream-line-strong (над 3:1 върху бяло), фокус --gold-ink
   (5,27:1 върху бяло) без ореол; старият фокус --gold даваше 2,08:1, ореолът 1,12:1. */
/* 12.09.2026: min-width:0 и width:100%, защото клетката на грид (1fr = minmax(auto,1fr)) приема
   присъщата ширина на полето, а тя порасна с кегел 16 px (под 16 iOS увеличава страницата при фокус):
   на 390 px страницата ставаше 400 широка. */
.db-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.db-label{font-family:var(--font-caption);font-size:13px;color:var(--ink);font-weight:600}
.db-input{padding:13px 16px;border:1px solid var(--cream-line-strong);border-radius:var(--radius-md);font-size:var(--fs-16);font-family:inherit;background:rgba(255,255,255,.65);color:var(--ink);box-sizing:border-box;width:100%;min-width:0;max-width:100%}
.db-input:focus{outline:none;border-color:var(--gold-ink);background:#fff;box-shadow:0 0 0 1px var(--gold-ink)}
.db-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
/* Кремава карта на токени: blur върху крем не дава нищо освен чужд оттенък (#faf7ed). */
.db-glass{position:relative;background:var(--cream-soft);border:1px solid var(--cream-line);box-shadow:var(--shadow-md);border-radius:var(--radius-lg)}
/* .db-formmsg → .bh-formmsg в assets/bottom-nav.css (15.09.2026) */

@media (max-width:760px){
  .db-hero{min-height:auto;padding:64px clamp(20px,4vw,56px) 56px}
  .db-stat strong{font-size:26px}
  .db-fig__img{height:180px}
}
@media (max-width:640px){
  .db-grid2{grid-template-columns:1fr}
}

/* ── Списък на сградите в dubai.html и страница на сграда dubai/<slug>.html (11.09.2026, 20:4x) ── */
/* v14 (15.09.2026): картите на сградите са на канона `.bg-card` (радиус, сянка, вдигане от components.css), в решетка
   2 на 2 на компютър и една колона на телефон. Тук е само вътрешното подреждане: кадър отгоре, тяло, един плътен
   бутон и текстова връзка. Tonino носи `.bg-card--gold-edge` (`izpaknat` в dubai_proekti.json). */
.db-bcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6,24px);align-items:stretch}
.db-bcard{display:flex;flex-direction:column;min-width:0}
.db-bcard__media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--navy-deep)}
.db-bcard__img{width:100%;height:100%;object-fit:cover;display:block}
.db-bcard__body{display:flex;flex-direction:column;gap:10px;flex:1;padding:var(--space-6,24px)}
.db-bcard__title{color:var(--ink)!important;text-decoration:none}
.db-bcard__title:hover{text-decoration:underline!important;color:var(--ink)!important}
.db-bcard__price{font-family:var(--font-body);font-weight:700;font-size:clamp(22px,2.4vw,30px);line-height:1.1;color:var(--gold-ink,#7d6a33)}
.db-bcard__obeshtanie{margin:-4px 0 0;font-family:var(--font-caption);font-size:var(--fs-14,14px);letter-spacing:.02em;line-height:1.4;color:var(--ink-2)}
.db-bcard__cta{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;margin-top:auto;padding-top:8px}
.db-bcard__cta .bg-btn{white-space:normal;text-align:center}
.on-cream a.db-bcard__link{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-caption);font-size:var(--fs-14,14px);font-weight:600;letter-spacing:.04em;color:var(--gold-ink,#7d6a33);text-decoration:underline;text-underline-offset:4px}
.db-bcard__link:focus-visible{outline:2px solid var(--gold-ink,#7d6a33);outline-offset:2px;border-radius:4px}
@media (max-width:760px){.db-bcards{grid-template-columns:1fr;gap:18px}.db-bcard__body{padding:var(--space-5,20px)}.db-bcard__cta .bg-btn{flex:1 1 100%}}

.db-crumbs{position:relative;display:flex;gap:8px;align-items:center;font-family:var(--font-caption);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}
.db-crumbs a{color:var(--gold)}
.db-toolbar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.db-sort{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-family:var(--font-caption);font-size:12px;color:var(--fg-3)}
.db-units{min-width:820px}
.db-units .db-kod{font-family:var(--font-caption);font-weight:600;white-space:nowrap}
.db-units .db-kod small{display:block;font-weight:400;color:var(--fg-3);font-size:var(--fs-12)}
.db-units tbody td{color:var(--fg)}
.db-units .db-td-cta{white-space:nowrap}
.db-units .db-oferta{padding:8px 12px;font-size:var(--fs-12)}
/* Разделителят между редовете е информация (правило 2г). Таблицата стои в #fasada, тоест върху
   --navy (мерено): бяло .36 дава 3,16:1; предишното .34 даваше 2,98:1. */
.db-units tbody td{border-bottom:1px solid rgba(255,255,255,.36)}
.db-calc{display:flex;flex-direction:column;gap:8px;padding:20px 24px;background:rgba(255,255,255,.5);border:1px solid rgba(33,41,71,.14);border-radius:var(--radius-lg);max-width:560px}
/* Полето на калкулатора: числото е в нашия стил (Plex 700), с групирани хиляди (type=text). */
#db-calc-aed{max-width:240px;font-family:var(--font-body);font-weight:700;font-size:var(--fs-18)}
.db-calc__out[hidden]{display:none}

/* Телефон: таблицата на единиците става карти (един ред = една карта), без хоризонтален
   скрол на страницата; етикетите идват от data-l. Схемата остава таблица в .bh-tw. */
@media (max-width:760px){
  .db-units-wrap{overflow:visible}
  .db-units{min-width:0;display:block}
  .db-units thead{display:none}
  .db-units tbody{display:grid;gap:12px}
  .db-units tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:14px 16px;background:rgba(255,255,255,.06);border:1px solid var(--navy-line-strong);border-radius:12px}
  .db-units tr[hidden]{display:none}
  .db-units td{display:flex;flex-direction:column;border:0!important;padding:4px 0;text-align:left!important}
  .db-units td::before{content:attr(data-l);font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
  .db-units td.db-kod{grid-column:1 / -1;font-size:16px}
  .db-units td.db-td-cta{grid-column:1 / -1;padding-top:10px}
  .db-units td.db-td-cta::before{content:none}
  .db-units .db-oferta{width:100%;padding:12px 14px;font-size:12px}
  .db-units-wrap+.bh-tw-hint{display:none}
}

/* ── Версия 3 (11.09.2026) ─────────── */
.db-hero--full{min-height:min(88vh,860px);padding-bottom:64px;justify-content:flex-end}
.db-hero--full::before{background:linear-gradient(180deg,rgba(22,28,51,.10) 0%,rgba(22,28,51,.42) 45%,rgba(33,41,71,.94) 82%,var(--navy) 100%)}
.db-hero--full .db-hero__img{object-position:center 30%}
/* QR кодът на разрешителното за реклама от DLD (qr_dld): плочка в „Числата“, не в hero-то (15.09.2026).
   150 px без padding, SVG-то носи бяла периферия от 4 модула; под 150 декодирането от кадър пада (§ 5ф). */
.db-qr{display:inline-flex;align-self:flex-start;gap:16px;align-items:center;margin:0;padding:12px 20px 12px 12px;border:1px solid rgba(33,41,71,.16);border-radius:var(--radius-md);background:rgba(255,255,255,.55);max-width:100%}
.db-qr a{display:block;line-height:0;border-radius:4px}
.db-qr a:focus-visible{outline:2px solid var(--gold-ink,#7d6a33);outline-offset:3px}
.db-qr img{display:block;width:150px;height:150px;max-width:none;background:#fff;border-radius:4px}
.db-qr figcaption{font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.04em;color:var(--ink-2);line-height:1.5;max-width:190px}
.db-qr b{font-family:var(--font-body);font-weight:700;font-size:var(--fs-16);letter-spacing:0;color:var(--ink)}
/* Цифрите в h1 са в .bh-num (bottom-nav.css, § 5х); тук само оптичното изравняване с буквите на заглавието. */
.bg-h1 .bh-num{font-size:.92em}
/* „Парите ви са под контрол“ под стъпките в „Как става“ на dubai.html (15.09.2026): цяла рамка, не лява лента. */
.db-kontrol{display:flex;flex-direction:column;gap:8px;padding:20px 24px;border:1px solid var(--navy-line);border-radius:var(--radius-lg);background:var(--navy-deep);max-width:760px}
.db-bigchips{display:flex;flex-wrap:wrap;gap:10px;position:relative}
.db-bigchip{display:inline-flex;flex-direction:column;gap:2px;padding:12px 18px;border:1px solid rgba(203,178,106,.45);border-radius:var(--radius-md);background:rgba(22,28,51,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.db-bigchip strong{font-family:var(--font-body);font-weight:700;font-size:clamp(20px,2vw,26px);line-height:1.05;color:var(--gold)}
.db-bigchip span{font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.on-cream .db-bigchip{background:rgba(255,255,255,.55);border-color:rgba(33,41,71,.16)}
.on-cream .db-bigchip strong{color:var(--gold-ink,#7d6a33)}
.on-cream .db-bigchip span{color:var(--ink-3)}
.db-bigchip small{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-2);line-height:1.4}
.on-cream .db-bigchip small{color:var(--ink-2)}
.db-bigchip--wide strong{font-size:16px;line-height:1.3;font-weight:600}

/* кино лента */
.db-film{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 14px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.db-film figure{flex:0 0 min(78vw,720px);margin:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:6px}
.db-film img{width:100%;height:min(46vw,420px);object-fit:cover;border-radius:12px;background:var(--navy-deep)}
.db-film figcaption{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-3)}
.db-film:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:12px}

/* фасада, версия 8 (15.09.2026): рендерът на строителя с полигони от dubai_fasadi.json (§ 5ф-2) */
.db-facade{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:28px;align-items:start}
.db-facade__stage{display:flex;flex-direction:column;gap:10px;min-width:0}
.db-render{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);background:var(--navy-deep)}
.db-render__stage{position:relative;line-height:0}
.db-render__img{width:100%;height:auto;display:block}
.db-render__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.db-render__cred{position:absolute;right:10px;bottom:8px;line-height:1.3;font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.06em;color:var(--fg-2);text-shadow:0 1px 3px var(--navy-deep);pointer-events:none}
/* Свободен апартамент: кант по типа (крем 1 спалня, злато 2 спални), лек пълнеж; hover и фокус светят.
   v13 (15.09.2026, решение: прозорците да личат като цели за клик от пръв поглед): кантът в покой е плътен и 2 px
   (беше 1,2 px с прозрачност), пълнежът 16 до 20%, и тъмен ореол --navy-deep отвън, който държи канта
   отделен от светлите прозорци на нощния рендер. Ореолът е SVG филтър #db-halo (dubai_build.py): тъмен пръстен
   отвън; първият опит с drop-shadow 1,5 px даде 1,00:1 в най-лошата точка (бели LED ребра), тоест не държеше. Мерено по пиксели на кадъра (_ЛОГ_КОД.md, 15.09.2026, v13). */
.db-win{cursor:pointer;outline:none;fill:rgba(245,237,214,.16);stroke:var(--cream,#f5edd6);stroke-width:2;vector-effect:non-scaling-stroke;filter:url(#db-halo);transition:fill var(--dur-fast,160ms) var(--ease-out),stroke-width var(--dur-fast,160ms) var(--ease-out)}
.db-win--2{fill:rgba(219,192,120,.20);stroke:var(--gold-light,#dbc078)}
.db-win:hover,.db-win.is-on{fill:rgba(245,237,214,.45);stroke:var(--cream,#f5edd6);stroke-width:3;filter:url(#db-halo) drop-shadow(0 0 5px rgba(245,237,214,.9))}
.db-win--2:hover,.db-win--2.is-on{fill:rgba(219,192,120,.48);stroke:var(--gold-light,#dbc078);filter:url(#db-halo) drop-shadow(0 0 5px rgba(219,192,120,.95))}
.db-win:focus-visible{stroke:#fff;stroke-width:3.5;fill:rgba(245,237,214,.45);filter:url(#db-halo) drop-shadow(0 0 6px rgba(255,255,255,.9))}
.db-win.is-dim{pointer-events:none;opacity:.2}
/* Лента по етаж. На кулата без полигони кант в покой (там има свободни); на кулата с полигони само подсветка.
   v13: кантът е плътно --gold-light, 1,6 px, с ореола на прозорците (беше 1 px при 55%). */
.db-rfl polygon{fill:transparent;stroke:none;vector-effect:non-scaling-stroke;transition:fill var(--dur-fast,160ms) var(--ease-out)}
.db-rfl[tabindex]{cursor:pointer;outline:none}
.db-rfl[tabindex] polygon{fill:rgba(219,192,120,.12);stroke:var(--gold-light,#dbc078);stroke-width:1.6;filter:url(#db-halo)}
.db-rfl[tabindex]:hover polygon,.db-rfl[tabindex].is-on polygon{fill:rgba(245,237,214,.30);stroke:var(--gold-light,#dbc078);stroke-width:3;filter:url(#db-halo) drop-shadow(0 0 5px rgba(219,192,120,.95))}
.db-rfl[tabindex]:focus-visible polygon{stroke:#fff;stroke-width:3.5;filter:url(#db-halo) drop-shadow(0 0 6px rgba(255,255,255,.9))}
/* Пулс при първото показване (v13): три вълни, закъснението на целта е --puls-d (скриптът го смята от мястото ѝ),
   после стоп. Ключовият кадър е само по средата: началото и краят са стилът в покой, тоест след третата вълна
   остава статичният кант. Класът .is-puls го слага IntersectionObserver веднъж. */
@keyframes db-puls{45%{fill:rgba(255,246,222,.62);stroke:#fff;stroke-width:3}}
.db-render__svg.is-puls .db-win,.db-render__svg.is-puls .db-rfl[tabindex] polygon{animation:db-puls 1.6s var(--ease-in-out,cubic-bezier(.6,0,.2,1)) var(--puls-d,0s) 3}
/* Подсказката в небето между кулите (v13): --hint-x и --hint-w пише dubai_build.py от ъглите на фасадите.
   pointer-events:none, тоест не пречи на hover под нея; изчезва след първия hover, фокус или докосване. */
.db-render__hint{position:absolute;top:12px;left:var(--hint-x,50%);z-index:var(--z-raised,1);transform:translateX(-50%);box-sizing:border-box;width:max-content;max-width:min(300px,calc(var(--hint-w,60%) - 16px));margin:0;padding:9px 14px 9px 12px;display:flex;gap:9px;align-items:baseline;border:1px solid var(--gold,#cbb26a);border-radius:var(--radius-md,12px);background:rgba(22,28,51,.9);background:color-mix(in srgb,var(--navy-deep) 90%,transparent);box-shadow:var(--shadow-md);font-family:var(--font-caption);font-size:13px;line-height:1.4;letter-spacing:.02em;color:var(--cream);text-wrap:balance;pointer-events:none;transition:opacity var(--dur-base,240ms) var(--ease-out)}
.db-render__hint::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold,#cbb26a);transform:translateY(-1px)}
.db-render__hint.is-skrita{opacity:0}
.db-render__hint[hidden]{display:none}
.db-halo__c{flood-color:var(--navy-deep,#161c33);flood-opacity:1}
/* Телефон: карето застава в левия край на празнината между кулите, в видимата част на кутията с плъзгане. */
@media (max-width:760px){.db-render__hint{left:calc(var(--hint-l640,160px) + 8px);transform:none;font-size:12px;padding:8px 12px 8px 10px;max-width:min(calc(var(--hint-w640,240px) - 16px),calc(100vw - 2 * max(20px,4vw) - var(--hint-l640,160px) - 16px))}}

.db-rfl--svetlina{pointer-events:none}
.db-rfl--svetlina.is-on polygon{fill:rgba(245,237,214,.10);stroke:rgba(219,192,120,.5);stroke-width:1}
.db-render-hint{display:none;margin:0;font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-3)}
.db-nevidimi{margin:0;font-family:var(--font-body);font-size:var(--fs-14);line-height:1.6;color:var(--fg-2)}
.db-nevidimi a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.db-nevidimi a:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px}
@media (prefers-reduced-motion:reduce){.db-win,.db-rfl polygon{transition:none}.db-render__svg.is-puls .db-win,.db-render__svg.is-puls .db-rfl[tabindex] polygon{animation:none}.db-render__hint{transition:none}}
/* Телефон: рендерът държи 640 px (прозорецът остава над 12 px), кутията се плъзга настрани. */
@media (max-width:760px){.db-render__stage{width:640px}.db-render-hint{display:block}}
/* Стъкленият панел отстрани. Една декларация. */
.db-wincard{position:sticky;top:110px;display:flex;flex-direction:column;gap:12px;padding:22px 24px;min-height:220px;border-radius:var(--radius-lg);background:rgba(255,255,255,.07);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid rgba(255,255,255,.18);box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 24px 48px -24px rgba(22,28,51,.6)}
.db-wincard__kod{font-family:var(--font-caption);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.db-wincard__price{font-family:var(--font-body);font-weight:700;font-size:30px;line-height:1.05;color:var(--gold)}
.db-wincard__aed{font-family:var(--font-caption);font-size:12px;color:var(--fg-3)}
.db-wincard dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0}
.db-wincard dt{font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.db-wincard dd{margin:0;color:var(--fg);font-size:var(--fs-14)}
.db-wincard__hint{color:var(--fg-2);font-size:14px;line-height:1.6;margin:0}
.db-legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-family:var(--font-caption);font-size:12px;color:var(--fg-2);align-items:center}
.db-tabs{display:flex;gap:8px}
.db-panel[hidden]{display:none}
/* Телефон и таблет: колоната е minmax(0,1fr), иначе min-content на кулата разливаше страницата до 440 px при 390. */
@media (max-width:900px){.db-facade{grid-template-columns:minmax(0,1fr)}.db-facade__stage,.db-wincard{min-width:0}.db-wincard{position:static}}

/* хронология на плащанията */
.db-tl{position:relative;padding:18px 0 8px;overflow-x:auto}
.db-tl__svg{width:100%;min-width:720px;height:auto;display:block}
.db-tl text{font-family:'Jura','Avenir Next','Helvetica Neue',sans-serif;font-size:10px;fill:var(--ink-3)}
.db-tl .pct{font-family:'IBM Plex Serif',Georgia,serif;font-weight:700;font-size:13px;fill:var(--ink)}
.db-tl .sum{font-family:'IBM Plex Serif',Georgia,serif;font-weight:700;font-size:11px;fill:var(--gold-ink,#7d6a33)}
.db-tl .line{stroke:var(--gold-deep);stroke-width:2}
.db-tl .tick{stroke:var(--gold-deep);stroke-width:1.5}
.db-tl .dot{fill:var(--navy);stroke:var(--gold-deep);stroke-width:2}
.db-tl .dot--big{fill:var(--gold-deep)}
.db-calc--compact{max-width:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;align-items:end}
.db-calc--compact .db-field{grid-column:1 / span 2}
.db-calc__out{display:flex;flex-direction:column;gap:2px}
.db-calc__out strong{font-family:var(--font-body);font-weight:700;font-size:22px;color:var(--gold-ink,#7d6a33);line-height:1.1}
.db-calc__out span{font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.db-calc__out small{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--ink-3)}
.db-danni{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-3);text-align:center;margin:0;padding:12px clamp(20px,4vw,56px);background:var(--navy-deep)}
.db-steps--navy li{background:rgba(255,255,255,.06);border-color:var(--navy-line-strong)}
.db-steps--navy strong{color:var(--cream)}
.db-steps--navy span{color:var(--fg-2)}
.db-steps--navy li::before{background:var(--gold);color:var(--navy-deep)}

/* ── Лентата над фасадата: легенда с брой и филтър, ред „етаж“ (v4 от 11.09.2026, преработени на 15.09.2026) ── */
.db-facade-bar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between}
.db-lg{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--navy-line-strong);background:transparent;color:var(--fg-2);font-family:var(--font-caption);font-size:12px;letter-spacing:.04em;cursor:pointer}
.db-lg b{color:var(--cream);font-weight:600}
.db-lg i{display:inline-block;width:14px;height:10px;border-radius:2px;border:1.5px solid #f5edd6;background:rgba(245,237,214,.10)}
.db-lg--2 i{border-color:#dbc078;background:rgba(203,178,106,.14)}
.db-lg--dark{cursor:default}
.db-lg[aria-pressed="true"]{border-color:var(--gold);color:var(--cream)}
.db-lg:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.db-lg[hidden]{display:none}  /* display:inline-flex бие hidden (капанът от CLAUDE.md) */
.db-floorbar{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;padding:8px 10px 8px 16px;border:1px solid var(--navy-line-strong);border-radius:var(--radius-md);background:rgba(255,255,255,.06);font-family:var(--font-caption);font-size:var(--fs-14);color:var(--fg-2);min-height:48px}
.db-floorbar strong{font-family:var(--font-body);font-weight:700;font-size:16px;color:var(--cream)}
.db-floorbar b{font-family:var(--font-body);font-weight:700;font-size:var(--fs-16);color:var(--gold)}
.db-floorbar #db-fb-spisak{margin-left:auto}
/* Празната лента пази мястото си: с display:none фасадата скачаше под курсора (12.09.2026). */
.db-floorbar.is-empty{visibility:hidden}
/* Телефон: празната лента не пази място (докосването не мести нищо под пръста, а празнината беше 200 px). */
@media (max-width:760px){.db-floorbar.is-empty{display:none}}
@media (max-width:760px){.db-lg__w{display:none}.db-facade-bar{gap:8px 12px}.db-lg{padding:6px 10px}.db-floorbar #db-fb-spisak{margin-left:0}}
#db-floor-chip[hidden]{display:none}
#db-panel-fasada:not([hidden]){display:flex;flex-direction:column;gap:14px}
#db-panel-spisak{scroll-margin-top:110px}

/* ── Версия 6 (12.09.2026): 17-те одобрени текста ─────── */
/* Раздел 14, вариант А: hero 74% от екрана, кадърът слиза към кулата, заглавието 32 до 56 px. */
.db-hero--full{min-height:min(74vh,720px)}
.db-hero--full .db-hero__img{object-position:center 62%}
.db-hero--full .bg-h1{font-size:clamp(32px,2.2vw + 24px,56px)}
.db-hero__opis{position:relative;margin:0;max-width:720px;color:var(--fg-2);line-height:1.6}
/* Раздел 4: изходи към секциите на dubai.html */
.db-izhodi{position:relative;display:flex;flex-wrap:wrap;gap:8px}
/* Раздел 8: офертата и WhatsApp един под друг в картата на прозореца */
.db-wincard__cta{display:flex;flex-direction:column;gap:10px}
.db-wincard__cta .bg-btn{width:100%;justify-content:center;text-align:center;white-space:normal}
/* Раздел 6 */
.db-netna{margin:0;color:var(--fg-2);line-height:1.6}
/* Раздели 10 и 16: таблица на таксите до калкулатора. Числата през --font-body 700 (ПРАВИЛА.md § 1). */
.db-taksi{max-width:560px}
.db-taksi__t{width:100%;border-collapse:collapse}
.db-taksi__t caption{text-align:left;font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding-bottom:8px}
.db-taksi__t th{text-align:left;font-weight:400;color:var(--ink-2);padding:10px 12px 10px 0;border-bottom:1px solid rgba(33,41,71,.34);vertical-align:top}
.db-taksi__t td{text-align:right;font-family:var(--font-body);font-weight:700;color:var(--ink);padding:10px 0;border-bottom:1px solid rgba(33,41,71,.34)}
.db-taksi__t td small{display:block;font-family:var(--font-caption);font-weight:400;font-size:var(--fs-12);color:var(--ink-2);line-height:1.4}
/* 20.09.2026: с какво смята калкулаторът (само страница със схема на вноските, § 5ф-17). */
.db-taksi__kalk{margin:10px 0 0;color:var(--ink-2);line-height:1.6}
/* Раздел 1: ескроу блокът (само vid = novo) */
.db-eskrou{display:flex;flex-direction:column;gap:8px;padding:20px 24px;border-left:3px solid var(--gold-ink,#7d6a33);background:rgba(255,255,255,.55);border-radius:0 var(--radius-md) var(--radius-md) 0;max-width:720px}
.db-eskrou__dld{margin:0;font-style:italic;color:var(--ink-2)}
/* Раздел 7 */
.db-zashto{display:flex;flex-direction:column;gap:12px;margin:0 0 24px}
.db-zashto__l{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;color:var(--ink-2);line-height:1.6}
/* Раздел 9: три падащи менюта */
.db-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:640px){.db-grid3{grid-template-columns:1fr}}
/* 12.09.2026: подписът за месечната вноска се пренася на 3 до 4 реда на телефон; с align-items:end
   съседните колони в калкулатора слизаха надолу. Горно подравняване, редът започва на едно ниво. */
.db-calc--compact{align-items:start}

/* Проект без списък с единици (13.09.2026, dubai_build.py `има_единици`): вместо фасадата и таблицата
   идват типовете като карти и редът „списъкът и цените са по запитване“. Числата през --font-body (ПРАВИЛА.md § 1). */
.db-tipove{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}
.db-tip{display:flex;flex-direction:column;gap:4px;min-width:0;padding:16px 18px;border:1px solid rgba(203,178,106,.45);border-radius:var(--radius-md);background:rgba(22,28,51,.55)}
.db-tip strong{font-family:var(--font-body);font-weight:700;font-size:18px;line-height:1.3;color:var(--cream);overflow-wrap:anywhere}
.db-tip span{font-family:var(--font-body);font-size:15px;line-height:1.45;color:var(--fg-2);overflow-wrap:anywhere}
.db-tip .db-tip__bel{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-3)}
.db-spisak-red{margin:0;max-width:720px;font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--cream)}
.db-shema-tekst{margin:0;max-width:720px;color:var(--ink-2);line-height:1.7}

/* Трохите и редът „строител · квартал“ (15.09.2026, v10): първи ред ВЪТРЕ в стъкления панел, над заглавието.
   До v9 стояха над панела върху отделна мека лента, която на 390 изглеждаше отрязана и не беше подравнена с панела.
   Цветовете са за фона на панела: връзката в --gold-light, текущото име в --fg-2 (--gold и --fg-3 са под 4,5:1). */
.db-hero__nad{display:flex;flex-direction:column;gap:10px;min-width:0}
.db-hero__panel .db-crumbs{flex-wrap:wrap}
.db-hero__panel .db-crumbs a{color:var(--gold-light)}
.db-hero__panel .db-crumbs span{color:var(--fg-2)}

/* Стъклен панел зад текста на hero-то (15.09.2026, dubai.html и всички dubai/<slug>.html): заглавието, описанието и
   чиповете стоят в него. Прегледът мери под 3:1 на светлите рендери (Arancia, Bay Villas, Solaya); общото
   потъмняване на рендера и прозрачната шапка отпаднаха, остава стъкленият панел. Рендерът извън панела не се пипа.
   Мерено по маска на глифите (§ 5ф-3 на _ПРАВИЛА_САЙТ.md); сваляш ли плътността, мери наново със същия метод.
   Без backdrop-filter (стари браузъри) фонът е по-плътен, защото няма размиване, което да успокои рендера отдолу. */
.db-hero__panel{position:relative;align-self:flex-start;display:flex;flex-direction:column;gap:var(--space-4);max-width:100%;padding:var(--space-6) var(--space-8);border:1px solid var(--navy-line);border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(22,28,51,.74) 0,rgba(22,28,51,.74) 110px,rgba(22,28,51,.55) 260px);background:linear-gradient(180deg,color-mix(in srgb,var(--navy-deep) 74%,transparent) 0,color-mix(in srgb,var(--navy-deep) 74%,transparent) 110px,color-mix(in srgb,var(--navy-deep) 55%,transparent) 260px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.db-hero__panel{background:rgba(22,28,51,.8);background:color-mix(in srgb,var(--navy-deep) 80%,transparent)}}
@media (max-width:760px){.db-hero__panel{gap:var(--space-3);padding:var(--space-4) var(--space-5)}}
/* Надписът над заглавието на dubai.html е в панела: --gold даде 4,44:1 в най-лошия пиксел (1440), --gold-light е над 4,5. */
.db-hero__panel .bg-eyebrow{color:var(--gold-light)}

/* Курсът на дирхама в горната лента (15.09.2026, § 5ф-7). Слотът .bh-top__kurs и класът .bh-top--kurs ги рисува
   build_shell.py САМО на страниците на Дубай (активна секция „dubai“), затова CSS-ът е тук, а не в bottom-nav.css:
   файлът зареждат само тези страници. Живото число и пулсът на точката: assets/dubai-kurs.js.
   Текст --gold върху --navy-deep (8,11:1 по 01-TOKENS, мерено наново в _ЛОГ_КОД.md); цифрите в .bh-num (ПРАВИЛА.md § 1),
   с фиксирана ширина, за да не мърда лентата при отброяването. Широкият вид е с долара, тесният само с еврото. */
.bh-top__kurs{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-caption);font-size:var(--fs-12,12px);letter-spacing:.03em;line-height:1;white-space:nowrap;color:var(--gold)}
.bh-top__kurs .bh-num{font-variant-numeric:tabular-nums;letter-spacing:0}
.bh-top__kurs-sep{margin:0 9px;color:var(--fg-3)}
.bh-top__kurs-dot{position:relative;flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.bh-top__kurs-dot::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid var(--gold);opacity:0}
.bh-top__kurs--zhivo .bh-top__kurs-dot::after{animation:bh-kurs-puls 1.2s var(--ease-out,cubic-bezier(.2,.7,.2,1)) 3}
@keyframes bh-kurs-puls{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.bh-top__kurs-short{display:none}
@media (max-width:1240px){.bh-top--kurs .bh-top__kurs-long{display:none}.bh-top--kurs .bh-top__kurs-short{display:inline}}
/* Телефон: курсът застава на мястото на часовете (лентата там е телефон, WhatsApp, часове). */
@media (max-width:768px){.bh-top--kurs .bh-top__c .bh-top__h{display:none}}
@media (max-width:359px){.bh-top--kurs .bh-top__kurs-dot{display:none}}
@media (prefers-reduced-motion:reduce){.bh-top__kurs--zhivo .bh-top__kurs-dot::after{animation:none}}

/* ── v14 (15.09.2026): доверие, телефон, галерия ─────────────────────────────────────────────────────────────── */
/* „Защо през нас“ със същата тежест като ескроу картата: цяла рамка и повдигнат фон (лява лента не, § 05-CONVENTIONS),
   и лицето отдолу: assets/raffy-portret.jpg, 56 px кръг. */
.db-zashto{padding:var(--space-6,24px);border:1px solid rgba(33,41,71,.16);border-radius:var(--radius-lg);background:rgba(255,255,255,.55);box-shadow:var(--shadow-sm)}
.db-lice{display:flex;gap:14px;align-items:center;padding-top:14px;border-top:1px solid var(--cream-line)}
.db-lice img{flex:none;width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:1px solid var(--gold-deep);background:var(--navy)}
.db-lice p{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--ink)}
/* „Другите проекти“: чипове към публикуваните сгради, над „Защо през нас“. */
.db-drugi{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin:0 0 20px}
.db-drugi__t{margin-right:4px;font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
/* Редът над бутона на формата. */
.db-razgovor{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--ink);text-align:center}
/* QR: заглавие „Проверете сами“ и подкана. */
.db-qr figcaption{max-width:240px}
.db-qr figcaption strong{display:block;margin-bottom:4px;font-family:var(--font-body);font-weight:700;font-size:var(--fs-16);letter-spacing:0;line-height:1.3;color:var(--ink)}
/* Обещанието до „по запитване“ в чипа за цена в hero-то. */
.db-bigchip small{margin-top:2px;text-transform:none;letter-spacing:.02em}
/* Легендата във фасадата: 44 px цел на тъч екран (02-COMPONENTS § Докосваеми цели). */
@media (pointer:coarse){.db-lg{position:relative}.db-lg::before{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}}
/* Галерията на компютър: сянка в десния край и стрелка „следващ кадър“, докато има още кадри. */
.db-film-wrap{position:relative}
.db-film__next{display:none}
@media (hover:hover) and (min-width:761px){
  .db-film-wrap::after{content:"";position:absolute;top:0;right:0;bottom:14px;width:120px;background:linear-gradient(90deg,rgba(33,41,71,0),var(--navy));pointer-events:none;transition:opacity var(--dur-base,240ms) var(--ease-out)}
  .db-film-wrap.is-kraj::after{opacity:0}
  .db-film__next{display:flex;position:absolute;right:16px;top:calc(50% - 7px);z-index:var(--z-raised-2,2);transform:translateY(-50%);width:48px;height:48px;padding:0;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--gold);background:var(--navy-deep);color:var(--gold);cursor:pointer;transition:background var(--dur-fast,160ms) var(--ease-out),color var(--dur-fast,160ms) var(--ease-out)}
  .db-film__next:hover{background:var(--gold);color:var(--navy-deep)}
  .db-film__next:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
  .db-film__next[hidden]{display:none}
}
/* Хъбът на телефон: чиповете за секциите залепват под шапката, щом hero-то излезе от кадър. Шапката е 74 px при скрол
   (--bg-sticky-top), а при скрита капсула (body.bh-dock-off) лентата отива до горния ръб. */
@media (max-width:760px){
  .db-toc-sec{position:sticky;top:var(--bg-sticky-top,74px);z-index:var(--z-raised-2,2);padding:8px 0!important;border-bottom:1px solid var(--navy-line);transition:top var(--dur-base,240ms) var(--ease-out)}
  body.bh-dock-off .db-toc-sec{top:0}
  .db-toc-sec .db-toc{flex-wrap:nowrap;overflow-x:auto;padding:0 20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .db-toc-sec .db-toc::-webkit-scrollbar{display:none}
  .db-toc-sec .db-toc li{flex:none}
}
@media (prefers-reduced-motion:reduce){.db-toc-sec{transition:none}}

/* ── Разпределенията (16.09.2026, § 5ф-9): миниатюра в картата на типа, бутон и диалог ─────────────────────────
   Планът е файлът на строителя (светъл фон); кутията около него е бяла, за да не се смесва фонът на страницата с чертежа.
   Диалогът е <dialog> (Esc затваря сам, клик извън рамката затваря скриптът). На телефон е на цял екран; <img> е без
   touch-action и без user-scalable=no, тоест zoom с пръсти работи. Числата през --font-body 700 (ПРАВИЛА.md § 1). */
.db-tip__plan{display:block;margin:10px 0 2px;padding:0;border:1px solid rgba(203,178,106,.45);border-radius:var(--radius-sm,8px);background:#fff;overflow:hidden;cursor:zoom-in;line-height:0}
.db-tip__plan img{display:block;width:100%;height:150px;object-fit:contain;background:#fff}
.db-tip__plan:focus-visible,.db-tip__btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.db-tip__btn{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;margin-top:2px;padding:0;border:0;background:none;font-family:var(--font-caption);font-size:var(--fs-14,14px);font-weight:600;letter-spacing:.04em;color:var(--gold);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.db-tip__btn:hover{color:var(--gold-light)}
.db-plan-link{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;font-family:var(--font-caption);font-size:var(--fs-14,14px);font-weight:600;letter-spacing:.04em;color:var(--gold);text-decoration:underline;text-underline-offset:4px;cursor:pointer;align-self:flex-start}
.db-plan-link:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.db-plan-link[hidden],.db-plan-nema[hidden]{display:none}
.db-plan-nema{margin:0;font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-3)}
.db-units .db-plan-link{min-height:36px;margin-right:12px;font-size:var(--fs-12)}
@media (max-width:760px){.db-units .db-plan-link{min-height:44px;margin:0 0 6px}}

.db-plan{width:min(1100px,calc(100vw - 48px));max-width:none;max-height:calc(100vh - 48px);margin:auto;padding:0;border:1px solid var(--navy-line-strong);border-radius:var(--radius-lg);background:var(--navy-deep);color:var(--fg);box-shadow:var(--shadow-lg,0 24px 64px rgba(0,0,0,.45));overflow:hidden}
.db-plan[open]{display:flex;flex-direction:column}
.db-plan::backdrop{background:rgba(22,28,51,.82)}
.db-plan__top{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 20px;border-bottom:1px solid var(--navy-line)}
.db-plan__t{flex:1;min-width:0;margin:0;font-family:var(--font-body);font-weight:700;font-size:var(--fs-18,18px);line-height:1.3;color:var(--cream);overflow-wrap:anywhere}
.db-plan__x{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--navy-line-strong);border-radius:50%;background:transparent;color:var(--cream);cursor:pointer}
.db-plan__x:hover{border-color:var(--gold);color:var(--gold)}
.db-plan__x:focus-visible,.db-plan__nav button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.db-plan__body{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:#fff}
.db-plan__img{display:block;width:100%;height:auto;max-width:none;margin:0 auto}
/* Компютър: целият план в кадъра (височината на прозореца минус лентите); на телефон остава на цялата ширина. */
@media (min-width:761px){.db-plan__body{display:flex;align-items:center;justify-content:center}.db-plan__img{width:auto;max-width:100%;max-height:calc(100vh - 290px)}}
.db-plan__foot{display:flex;flex-direction:column;gap:10px;padding:12px 20px 16px;border-top:1px solid var(--navy-line)}
.db-plan__podpis{margin:0;font-family:var(--font-caption);font-size:var(--fs-14,14px);line-height:1.45;color:var(--fg-2)}
.db-plan__podpis small{display:block;font-size:var(--fs-12);color:var(--fg-3)}
.db-plan__nav{display:flex;align-items:center;gap:10px}
.db-plan__nav[hidden]{display:none}
.db-plan__nav button{min-height:44px;padding:0 16px;border:1px solid var(--navy-line-strong);border-radius:999px;background:transparent;color:var(--cream);font-family:var(--font-caption);font-size:var(--fs-14,14px);cursor:pointer}
.db-plan__nav button:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}
.db-plan__nav button:disabled{opacity:.4;cursor:default}
.db-plan__broi{font-family:var(--font-body);font-weight:700;font-size:var(--fs-14,14px);color:var(--fg-2)}
.db-plan__dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px 16px;margin:0}
.db-plan__dl[hidden]{display:none}
.db-plan__dl dt{font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.db-plan__dl dd{margin:0;font-family:var(--font-body);font-weight:700;font-size:var(--fs-16);color:var(--cream)}
.db-plan__cta{display:flex;flex-wrap:wrap;gap:10px}
.db-plan__cta[hidden]{display:none}
/* Телефон: цял екран, чертежът на цялата ширина и със собствен скрол; zoom с пръсти по страницата не е блокиран. */
@media (max-width:760px){
  .db-plan{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
  .db-plan__foot{padding:10px 16px calc(12px + env(safe-area-inset-bottom))}
  .db-plan__cta .bg-btn{flex:1 1 100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.db-plan::backdrop{transition:none}}

/* РЕДАКЦИЯ т. 14 (16.09.2026): разгъването на ескроу текста на сградите; т. 4: „Защо през нас“ е махнато, остава само лицето. */
.db-eskrou__vazh summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-family:var(--font-caption);font-size:var(--fs-14,14px);font-weight:600;letter-spacing:.04em;color:var(--gold-ink,#7d6a33);text-decoration:underline;text-underline-offset:4px}
.db-eskrou__vazh summary:focus-visible{outline:2px solid var(--gold-ink,#7d6a33);outline-offset:2px;border-radius:4px}
.db-eskrou__vazh[open] summary{margin-bottom:6px}
.db-zashto .db-lice{padding-top:0;border-top:0}

/* ── v16 (15.09.2026, § 5ф-2 и 5ф-9): панелът и за етажа, редът в „Списък“ се разпада, диалогът и без план ─────────
   Числата през --font-body 700 (ПРАВИЛА.md § 1). Разпадането е един <tr class="db-det">, който скриптът мести. */
#db-we-kodove{overflow-wrap:anywhere}
/* Докосването по време на пулса (v16): pointerdown падаше върху прозореца, а click върху <svg>, защото анимацията мени
   боята и SVG проверява попадението по боядисаното. С pointer-events:all попадението е по формата, независимо от боята.
   Приглушеният прозорец (.is-dim) остава с pointer-events:none: правилото там е по-специфично. */
.db-win,.db-rfl[tabindex] polygon{pointer-events:all}
.db-win.is-dim{pointer-events:none}
.db-row{display:inline-flex;align-items:center;gap:10px;min-height:36px;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.db-row__i{flex:none;width:7px;height:7px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:translateY(-2px) rotate(45deg);transition:transform var(--dur-fast,160ms) var(--ease-out)}
.db-row[aria-expanded="true"] .db-row__i{transform:translateY(2px) rotate(-135deg)}
.db-row:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.db-units tbody tr[data-kod]{cursor:pointer}
.db-units tbody tr[data-kod]:hover td,.db-units tbody tr.is-open td{background:rgba(255,255,255,.05)}
.db-units tr.db-det[hidden]{display:none}
.db-units tbody tr.db-det td{padding:16px 16px 22px;background:rgba(255,255,255,.05);cursor:default}
.db-det__in{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:20px 32px;align-items:start}
.db-det__plan{display:flex;flex-direction:column;width:100%;margin:0;padding:0;border:1px solid rgba(203,178,106,.45);border-radius:var(--radius-sm,8px);background:#fff;overflow:hidden;cursor:zoom-in;font:inherit}
.db-det__plan img{display:block;width:100%;height:220px;object-fit:contain;background:#fff}
.db-det__plan-t{display:block;padding:10px 12px;background:var(--navy-deep);font-family:var(--font-caption);font-size:var(--fs-12);font-weight:600;letter-spacing:.06em;color:var(--gold);text-align:left}
.db-det__plan:hover .db-det__plan-t{color:var(--gold-light)}
.db-det__plan:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.db-det__nema{margin:0;padding:28px 16px;border:1px dashed var(--navy-line-strong);border-radius:var(--radius-sm,8px);font-family:var(--font-caption);font-size:var(--fs-14);color:var(--fg-2);text-align:center}
.db-det__info{display:flex;flex-direction:column;gap:14px;min-width:0}
.db-det__cena{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.db-det__cena strong{font-family:var(--font-body);font-weight:700;font-size:26px;line-height:1.1;color:var(--gold)}
.db-det__cena small{font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-3)}
.db-det dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px 16px;margin:0}
.db-det dt{font-family:var(--font-caption);font-size:var(--fs-12);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.db-det dd{margin:0;color:var(--fg);font-size:var(--fs-14)}
.db-det__cta{display:flex;flex-wrap:wrap;gap:10px}
.db-plan__dl dd small{display:block;font-family:var(--font-caption);font-weight:400;font-size:var(--fs-12);color:var(--fg-3)}
.db-plan__nema{margin:auto;padding:56px 24px;font-family:var(--font-body);font-size:18px;line-height:1.5;color:var(--ink);text-align:center}
.db-plan__podpis[hidden]{display:none}
@media (max-width:760px){
  .db-units td.db-kod .db-row{width:100%;min-height:44px;justify-content:space-between;font-size:16px}
  .db-units tr.db-det{display:block;margin-top:-6px;padding:0;background:none;border:0}
  .db-units tbody tr.db-det td{display:block;padding:16px;border:1px solid var(--navy-line-strong)!important;border-radius:12px}
  .db-units tr.db-det td::before{content:none}
  .db-det__in{grid-template-columns:minmax(0,1fr)}
  .db-det__cta .bg-btn{flex:1 1 100%;justify-content:center;min-height:44px}
}
@media (prefers-reduced-motion:reduce){.db-row__i{transition:none}}

/* ── v17 (15.09.2026, § 5ф-12): поправките след проверката на Раффи в Safari ─────────────────────────────────────────
   1) Диалогът: .db-plan няма височина (само max-height), а тялото беше flex:1 (основа 0%). WebKit смята колоната по
      основата и тялото излизаше 0 px висок: планът се зареждаше (naturalWidth 1200), но оставаше изрязан. Мерено в
      WKWebView: тяло 1098×0, диалог 242 px. С основа auto тялото взима височината на плана и се свива до max-height.
   2) Заглавният ред на „Списък“: системният sticky th с top 90px вътре в .bh-tw (overflow-x:auto, тоест свой скрол
      контейнер) стоеше 47 px под мястото си, върху първия ред. Филтър с един ред (кула B, етаж 16) изглеждаше празен, а
      кликът по първия ред падаше върху заглавието. Тук заглавието не е лепкаво.
   3) Панелът вдясно носи плана на апартамента и малките планове на етажа, с явни височини. */
.db-plan__body{flex:1 1 auto}
.db-units thead th{position:static}
.db-wincard__in{display:flex;flex-direction:column;gap:10px}
.db-wincard__in[hidden],.db-wc-plan[hidden],.db-wc-plan__nema[hidden],.db-wincard__nazad[hidden]{display:none}
.db-wincard__kod{font-size:14px}
.db-wincard__sub{font-family:var(--font-caption);font-size:var(--fs-14);line-height:1.4;color:var(--fg-2)}
.db-wincard__nazad{align-self:flex-start;min-height:36px;margin:-6px 0 0;padding:0;border:0;background:none;font-family:var(--font-caption);font-size:var(--fs-14,14px);font-weight:600;color:var(--gold);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.db-wincard__nazad:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.db-wc-plan{display:flex;flex-direction:column;width:100%;margin:4px 0 0;padding:0;border:1px solid rgba(203,178,106,.45);border-radius:var(--radius-sm,8px);background:#fff;overflow:hidden;cursor:zoom-in;font:inherit;text-align:left}
.db-wc-plan img{display:block;flex:none;width:100%;height:340px;object-fit:contain;background:#fff}
.db-wc-plan__t{display:block;padding:8px 12px;background:var(--navy-deep);font-family:var(--font-caption);font-size:var(--fs-12);font-weight:600;letter-spacing:.06em;color:var(--gold)}
.db-wc-plan:hover .db-wc-plan__t{color:var(--gold-light)}
.db-wc-plan:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.db-wc-plan__nema{margin:4px 0 0;padding:28px 16px;border:1px dashed var(--navy-line-strong);border-radius:var(--radius-sm,8px);font-family:var(--font-caption);font-size:var(--fs-14);color:var(--fg-2);text-align:center}
.db-we-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}
.db-mini{display:flex;flex-direction:column;min-width:0;margin:0;padding:0;border:1px solid rgba(203,178,106,.45);border-radius:var(--radius-sm,8px);background:var(--navy-deep);overflow:hidden;cursor:pointer;font:inherit;color:inherit;text-align:left}
.db-mini img{display:block;flex:none;width:100%;height:118px;object-fit:contain;background:#fff}
.db-mini__nema{display:flex;align-items:center;justify-content:center;height:118px;padding:0 8px;background:rgba(255,255,255,.06);font-family:var(--font-caption);font-size:var(--fs-12);color:var(--fg-2);text-align:center}
.db-mini__kod{padding:6px 8px 0;font-family:var(--font-caption);font-size:var(--fs-12);font-weight:600;letter-spacing:.04em;color:var(--cream)}
.db-mini__cena{padding:0 8px 8px;font-family:var(--font-body);font-weight:700;font-size:var(--fs-14);color:var(--gold)}
.db-mini:hover{border-color:var(--gold)}
.db-mini:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.db-det__in{grid-template-columns:minmax(0,440px) minmax(0,1fr)}
.db-det__plan img{height:420px}
@media (max-width:900px){.db-wc-plan img{height:min(460px,110vw)}}
@media (max-width:760px){.db-det__in{grid-template-columns:minmax(0,1fr)}.db-det__plan img{height:min(460px,110vw)}}
