/* Вся коммерция в стиле референса Степана (страница инвесторов SWN): рамки секций, плитки на 8 px, заголовки
   капсом Manrope 500, крупные цифры тонкие, подписи мелким капсом, без теней.
   Разметка коммерции — снимки исходных страниц с inline-стилями, поэтому слой ложится поверх по атрибутам style.
   Включается классом pxs на <html> (каталог, подборки, «Собственникам», «Сетям», объекты, 404); Тильда его не видит.
   Числа в разметке помечает сборка классом pxn (pages/ui.py mark_numbers).

   Скругления — одна система:
     рамка секции 28 px (первый экран 40) · плитка, карточка, вопрос 18 · фото и чертёж внутри плитки 12–14
     · кнопки, метки, меню — капсулы · значки со стрелкой — круги
     · без скругления: линии списков, таблицы, фото во всю ширину карточки и видео первого экрана (их обрезает рамка).
   Тема одна, светлая: тёмную убрали 30.10.2026 (переключатель скрыт, стили тёмной темы не включаются). */

html.pxs{--bg:#E6E6E3;--card:#F7F7F6;--soft:#FFFFFF;--pill:#FFFFFF;--r-tile:18px;--r-media:12px}

/* одна тема: переключатели старых страниц не показываем */
html.pxs :is([data-theme-toggle],.com-tgl,button.theme){display:none!important}

/* заголовки */
html.pxs h1,html.pxs h1[style]{font-weight:500!important;text-transform:uppercase;letter-spacing:-.05em!important;line-height:.9!important;overflow-wrap:break-word}
html.pxs h2,html.pxs h2[style]{font-weight:500!important;text-transform:uppercase;letter-spacing:-.035em!important;line-height:.98!important;overflow-wrap:break-word}
html.pxs h3,html.pxs h3[style]{font-weight:600!important;letter-spacing:-.02em!important}

/* жирный 800 исходника — до полужирного; числа — тонкие, крупные ещё тоньше */
html.pxs [style*="font-weight: 800"],html.pxs [style*="font-weight:800"]{font-weight:600!important}
html.pxs .pxn,html.pxs .pxn[style]{font-weight:300!important;letter-spacing:-.04em!important}
html.pxs .pxn[style*="clamp("]{font-weight:200!important;letter-spacing:-.055em!important}

/* подписи разделов «[фото]» — мелким капсом */
html.pxs span[style*="font-size: 15px; color: var(--mute); font-weight: 500"],
html.pxs span[style*="font-size:15px; color:var(--mute); font-weight:500"]{font-size:12px!important;font-weight:600!important;letter-spacing:.08em;text-transform:uppercase}

/* плитки и карточки внутри рамок — 18 px (в исходниках было вразнобой 14–28); капсулы и круги остаются как были */
html.pxs :not(section):is(
  [style*="border-radius: 14px"],[style*="border-radius: 16px"],[style*="border-radius: 18px"],[style*="border-radius: 20px"],
  [style*="border-radius: 22px"],[style*="border-radius: 24px"],[style*="border-radius: 28px"],
  [style*="border-radius:14px"],[style*="border-radius:18px"],[style*="border-radius:22px"],[style*="border-radius:28px"]){border-radius:var(--r-tile)!important}
html.pxs details{border-radius:var(--r-tile)!important}

/* без теней внутри секций и у карточек */
html.pxs section[style*="box-shadow"],html.pxs section [style*="box-shadow"],html.pxs .com-obj,html.pxs .com-obj:hover{box-shadow:none!important}

/* меню разделов коммерции и меню страницы объекта — мелким капсом */
html.pxs nav:not(#sv-bar) a{text-transform:uppercase;font-size:12px!important;letter-spacing:.06em;font-weight:600}

/* карточки объектов: фото с отступом 4 px внутри карточки, вместо тени — смена фона */
html.pxs .com-obj{background:var(--soft)!important;transform:none!important}
html.pxs .com-obj img[style]{border-radius:14px!important}
html.pxs .com-obj:hover{background:var(--card)!important;outline:1px solid var(--line2)}
html.pxs .com-obj [style*="justify-content: space-between"][style*="background: var(--ink)"]{text-transform:uppercase;font-size:13px!important;letter-spacing:.06em}

/* сетка карточек в каталоге и подборках — внутри своей рамки, карточки через 8 px */
html.pxs .px-cards{border-radius:28px;background:var(--card);padding:clamp(8px,1.6vw,20px);gap:8px!important}

/* страницы объектов второго генератора (стили на классах, не в разметке) */
html.pxs .hero h1{font-size:clamp(30px,5.4vw,88px)!important}
html.pxs :is(.visual,.where,.map,.mini,.who,.white){border-radius:var(--r-tile)!important}
html.pxs :is(.white img,.white svg,.crop,.gallery img,.gal img){border-radius:var(--r-media)!important}
html.pxs .nav a,html.pxs .phone{box-shadow:none!important}
html.pxs .nav a{text-transform:uppercase;font-size:12px!important;letter-spacing:.06em;font-weight:600!important}
html.pxs :is(.stat b,.mini b){font-weight:300!important;letter-spacing:-.04em!important}
html.pxs :is(.where b,.who h3,tr.sum td,.btn,.call){font-weight:600!important}
html.pxs .btn{text-transform:uppercase;font-size:13px!important;letter-spacing:.06em}

/* один телефон наверху: если в шапке страницы свой номер (он липкий и не уезжает), в плашке разделов его не повторяем.
   Шапка коммерции показывает номер только на телефоне (на компьютере там меню), шапка объекта — всегда */
@media (max-width:760px){html.pxs:has(.com-call) #sv-bar .tel{display:none}}
html.pxs:has(.top > .phone) #sv-bar .tel{display:none}

/* видео первого экрана «Собственникам» и «Сетям» */
html.pxs .com-hv{border-radius:0!important}   /* видео во всю высоту экрана, углы обрезает сам экран */

/* пометка на 3D-обложках (каталог, подборки, «Собственникам», страницы объектов) — как у старых 3D в theme.css */
html.pxs :is(div,a):has(> img.is-3d){position:relative}
html.pxs :is(div,a):has(> img.is-3d)::after{content:"3D-иллюстрация не является планировкой";position:absolute;right:12px;top:12px;max-width:calc(100% - 24px);padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);font:600 11px/1.3 Manrope,system-ui,sans-serif;color:#3A4250;pointer-events:none}
