/* Единая типографика, ритм и движение. Макет и реальные изображения сохранены. */
body.fg-preview{
 --text-xs:clamp(12px,.833333vw,16px);--text-sm:clamp(14px,.972222vw,18px);
 --text-body:clamp(16px,1.111111vw,21px);--text-lead:clamp(18px,1.388889vw,26px);
 --title-xl:clamp(32px,3.888889vw,74.667px);--title-lg:clamp(28px,3.055556vw,58.667px);
 --title-md:clamp(24px,2.222222vw,42.667px);--title-card:clamp(22px,1.666667vw,32px);
 --space-section:clamp(64px,8.333333vw,160px);--space-content:clamp(40px,4.444444vw,85.333px);
 --space-small:clamp(16px,1.666667vw,32px);--motion-ease:cubic-bezier(.16,1,.3,1);
}
.fg-preview :is(h1,h2,h3,h4){font-weight:600}
.fg-block h1,.fg-block h2,.fg-catalog .page-head h1,.fg-project-page .page-head h1{font-size:var(--title-xl)}
.fg-block h3{font-size:var(--title-lg)}
.fg-catalog .card h2,.fg-project-page .pcard h2{font-size:var(--title-card);line-height:1.25;margin-bottom:var(--space-small)}
.fg-preview :is(.c-desc,.pcard p,.ph-lead,.tp-body){font-size:var(--text-body);line-height:1.55}
.fg-catalog .ph-lead,.fg-project-page .ph-lead{font-size:var(--text-body);line-height:1.5}
.fg-preview :is(.c-spec li,.c-tag,.tags span,.ph-facts,.crumbs,.foot-col .ttl,.foot-col .sm,.foot-bot,.foot-req){font-size:var(--text-xs);line-height:1.5;letter-spacing:0}
.fg-catalog .chip{font-size:var(--text-xs);min-height:40px;padding:10px 14px}.fg-catalog .chip i{font-size:var(--text-xs)}
.fg-preview :is(.fg-button,.c-actions .link-arrow,.fg-projects-link,.foot-col>a,.foot-col .addr,.foot-msgr a){font-size:var(--text-sm)}
.fg-preview .foot-brand p{font-size:var(--text-sm)}
.fg-site{gap:var(--space-section)}
.fg-catalog .ph-row,.fg-project-page .ph-row{margin-top:var(--space-content)}
.fg-catalog .cat{padding-top:var(--space-content)}
.fg-catalog .cat-grid{row-gap:var(--space-content)}
.fg-project-page .prj{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.fg-project-row{margin-bottom:var(--space-content)}.fg-project-row:last-child{margin-bottom:0}
.fg-preview .cta-band{height:auto;min-height:200px;padding-block:var(--space-content)}
.fg-preview .cta-band h2{font-size:var(--title-md)}
.fg-preview footer.site{margin-top:var(--space-section)}.fg-catalog footer.site,.fg-project-page footer.site{margin-top:0}
.fg-preview :is(.fg-hero-note,.fg-collection-note,.fg-statement>p,.fg-final>p){font-size:var(--text-lead)}
.fg-preview .fg-project-caption p{opacity:.8}
.fg-preview :is(.fg-fact span,.fg-factory-facts span){font:400 var(--text-xs)/1.4 'IBM Plex Mono',sans-serif}
.fg-preview :is(.fg-final small,.fg-interlude-note,.fg-number){font-size:var(--text-xs)}
.fg-preview .nav-links a,.fg-preview .nav-tel{font-size:var(--text-xs)}
.fg-preview :is(a,button,input,textarea,select):focus-visible{outline:2px solid #bd7b28;outline-offset:5px}
.fg-preview :is(.fg-button,.btn,.chip){transition:background-color .3s,border-color .3s,color .3s,box-shadow .4s}
.fg-preview :is(.fg-button,.btn){min-height:44px}
.fg-preview .btn:hover{transform:none;box-shadow:0 8px 28px #53391a14}
.fg-preview .vm-pending{opacity:0}
/* Нейтрализация старых масок: контент открыт даже при сбое нового скрипта. */
.fg-preview :is(.rv,.rv-img,.lines){opacity:1;transform:none}
.fg-preview .rv-img::after{display:none}
.fg-preview .lines>span>span{transform:none}
.fg-preview .vm-arrow{--arrow-size:1.2em;--arrow-gap:14px;display:inline-flex;align-items:center;gap:0!important;overflow:hidden;isolation:isolate}
.fg-preview .vm-arrow::after{display:none!important}
.fg-preview .vm-label{display:inline-block;translate:0 0;transition:translate .65s var(--motion-ease);min-width:0}
.fg-preview .vm-arrow-left,.fg-preview .vm-arrow-right{display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--arrow-size);width:var(--arrow-size);font-style:normal;transition:translate .65s var(--motion-ease),opacity .4s}
.fg-preview .vm-arrow-left{margin-left:calc(-1 * var(--arrow-size));opacity:0;translate:-16px 0}
.fg-preview .vm-arrow-right{margin-left:var(--arrow-gap);opacity:1;translate:0 0}
.fg-preview .vm-arrow :is(i,span,img){font-style:normal}
.fg-preview .vm-arrow img{width:var(--arrow-size);height:var(--arrow-size);object-fit:contain}
.fg-preview .vm-arrow:hover i{transform:none}
.fg-preview .vm-arrow:focus-visible .vm-arrow-left{opacity:1;translate:var(--arrow-size) 0}
.fg-preview .vm-arrow:focus-visible .vm-label{translate:calc(var(--arrow-size) + var(--arrow-gap)) 0}
.fg-preview .vm-arrow:focus-visible .vm-arrow-right{opacity:0;translate:24px 0}
@media(hover:hover) and (pointer:fine){
 .fg-preview .vm-arrow:hover .vm-arrow-left{opacity:1;translate:var(--arrow-size) 0}
 .fg-preview .vm-arrow:hover .vm-label{translate:calc(var(--arrow-size) + var(--arrow-gap)) 0}
 .fg-preview .vm-arrow:hover .vm-arrow-right{opacity:0;translate:24px 0}
 .fg-preview :is(.fg-door,.c-cover,.pcard .ph){transition:box-shadow .65s var(--motion-ease)}
 .fg-preview :is(.fg-door,.c-cover,.pcard .ph):hover{box-shadow:0 18px 42px #0c0d101c}
 .fg-preview :is(.fg-door img,.c-plate img,.pcard .ph img){transition:scale 1.2s var(--motion-ease);transform:none}
 .fg-preview :is(.fg-door,.c-cover,.pcard .ph):hover img{scale:1.035;transform:none}
 .fg-preview .foot-col>a{transition:color .25s,translate .4s var(--motion-ease)}
 .fg-preview .foot-col>a:hover{color:#ba9137;translate:4px 0}
}
@media(max-width:900px){
 body.fg-preview{--text-body:16px;--text-lead:18px;--title-xl:clamp(32px,6vw,48px);--title-lg:32px;--title-md:30px;--space-section:64px;--space-content:40px}
 .fg-catalog .ph-facts,.fg-project-page .ph-facts{position:static;margin-top:24px}
 .fg-preview .chip{min-height:44px}.fg-preview .fg-button{max-width:100%}
 .fg-preview .cta-band .cb-act{flex-wrap:wrap}
 .fg-preview .foot-bot{letter-spacing:0}.fg-preview .foot-req{letter-spacing:0}
}
/* Между планшетом и desktop текст не помещаем в фиксированные координаты Figma. */
@media(min-width:901px) and (max-width:1199px){
 .fg-hero{height:auto;min-height:calc(800 * var(--u));padding:calc(536 * var(--u)) calc(60 * var(--u)) 40px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
 .fg-hero h1,.fg-hero-note,.fg-hero-cta{position:relative;inset:auto;width:auto;margin:0}
 .fg-hero-note{align-self:end}.fg-hero-cta{grid-column:1;justify-self:start}
 .fg-statement{height:auto;padding:calc(100 * var(--u)) calc(100 * var(--u)) calc(60 * var(--u))}
 .fg-statement .fg-star{top:calc(40 * var(--u))}
 .fg-statement h2{position:relative;inset:auto;max-width:calc(860 * var(--u));margin:20px auto 0}
 .fg-statement hr{position:relative;inset:auto;width:70%;margin:40px auto}
 .fg-statement>p{position:relative;inset:auto;width:100%;max-width:557px;margin:0 auto}
 .fg-statement .fg-statement-base{top:0;height:100%}
 .fg-geography{padding-bottom:0}
 .fg-live-map{position:relative;inset:auto;width:calc(100% + 200 * var(--u));margin:40px calc(-100 * var(--u)) 0}
 .fg-collection-note{font-size:var(--text-body)}
 .fg-engineering h2{top:auto;bottom:32px}
}
@media(prefers-reduced-motion:reduce){
 .fg-preview .vm-pending{opacity:1!important}
 .fg-preview .vm-arrow *{transition:none!important}
}
/* QHD: та же композиция 16:9, без прежнего ограничения шириной 1920 px.
   Ниже 1921 px правила не действуют; выше 2560 рост останавливается. */
@media(min-width:1921px){
 html:has(body.fg-preview){font-size:min(.833333333vw,21.333333px)}
 body.fg-preview{
  --u:min(.0694444444vw,1.777777778px);
  --max:min(75vw,1920px);
  --text-xs:min(.833333333vw,21.333333px);--text-sm:min(.9375vw,24px);
  --text-body:min(1.09375vw,28px);--text-lead:min(1.354166667vw,34.666667px);
  --title-xl:min(3.888889vw,99.555556px);--title-lg:min(3.055556vw,78.222222px);
  --title-md:min(2.222222vw,56.888889px);--title-card:min(1.666667vw,42.666667px);
  --space-section:min(8.333333333vw,213.333333px);--space-content:min(4.444444444vw,113.777778px);
  --space-small:min(1.666666667vw,42.666667px);
 }
 .fg-preview .nav{width:100%;max-width:2560px}
 .fg-site,.fg-preview footer.site,.fg-preview .page-head,.fg-preview .cat,.fg-preview .prj,.fg-preview .cta-band,.fg-catalog .filters{max-width:2560px}
 .fg-preview.quiz-page .qz-main{max-width:min(64.583333333vw,1653.333333px)}
 .fg-preview:not(.fg-catalog):not(.fg-project-page) .page-head{max-width:var(--max)}
 .fg-preview:not(.fg-catalog):not(.fg-project-page) .page-head .wrap{padding-inline:var(--pad)}
 .fg-preview .vm-arrow{--arrow-gap:min(.729166667vw,18.666667px)}
 /* Карточка двери содержит локальные px-правила: масштабируем и их. */
 .fg-preview .door-grid{grid-template-columns:minmax(0,27.5rem) minmax(0,1fr);gap:3rem}
 .fg-preview .door-info h1{font-size:2rem}
 .fg-preview .door-price{font-size:1.5rem}
 .fg-preview .door-lede{font-size:1rem;margin-bottom:1.25rem}
 .fg-preview .door-params__list li{font-size:.875rem;padding:.4375rem .875rem}
 .fg-preview .door-chars li,.fg-preview .door-feat li{font-size:.9375rem}
 .fg-preview .door-section{margin-top:2.5rem;padding-top:1.75rem}
 .fg-preview .door-gallery__thumbs button{width:4rem}
 .fg-preview .door-facts{grid-template-columns:repeat(auto-fit,minmax(17.5rem,1fr));gap:.5rem 3rem}
 .fg-preview .door-cities{font-size:.8125rem;margin-top:2.75rem}
 .fg-preview .door-lead{max-width:40rem!important}
}
@media print{.fg-preview .vm-pending{opacity:1!important;translate:none!important}.fg-preview .nav{position:static}}
