Skip to Content

HTML Document

URL: https://komodmsk.ru/constructor
HTTP Status: 200 OK
MIME Type: text/html
Last Modified: Mon, 01 Jan 1601 00:00:00 GMT
Download Time: 1 seconds
Cookies: None
Size: 104 KB
Depth: 1 clicks from home page
Charset: windows-1251
Forms: 2 forms containing 7 controls
HTTP Headers:  8 headers
Links In:  0 pages
Links Out:  48 links
Images:  90 images
CSS:  8 files
JavaScript:  0 files
Issue Issues: 18 issue(s) found in 211 location(s)

1<!DOCTYPE html>

2<html lang="ru">

3<head>

4<link rel="preconnect" href="https://mc.yandex.ru">

5<link rel="preconnect" href="https://vk.com">

6<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

7<meta http-equiv="Content-Language" content="ru">

8<meta name="viewport" content="width=device-width, initial-scale=1.0">

9<meta name="theme-color" content="#ffffff">

10<link rel="preload" href="/assets/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin="anonymous">

11<style>

12 @font-face { font-family: 'FontAwesome'; font-display: swap; }

13 body { font-display: swap; }

14 .prod .labels-block { z-index: 20 !important; }

15

16 body.modal-open {

17 overflow: auto !important;

18 overflow-y: scroll !important;

19 padding-right: 0 !important;

20 }

21

22 @keyframes shimmer {

23 0% { background-position: -1000px 0; }

24 100% { background-position: 1000px 0; }

25 }

26

27 .cat-item-card-cover {

28 /* Светло-серый фон с градиентным бликом */

29 background: #f6f7f8;

30 background-image: linear-gradient(to right, #f6f7f8 0%, #edeef1 20%, #f6f7f8 40%, #f6f7f8 100%);

31 background-repeat: no-repeat;

32 background-size: 1000px 100%;

33 animation: shimmer 1.5s infinite linear forwards;

34

35 overflow: hidden;

36 position: relative;

37 display: block;

38 }

39

40 .cat-item-cover-img {

41 opacity: 0;

42 transform: scale(1.03); /* Легкий зум */

43 filter: blur(5px); /* Легкое размытие в начале */

44 transition: opacity 0.5s ease-out, transform 0.7s ease-out, filter 0.5s ease-out;

45

46 width: 100%;

47 height: auto;

48 object-fit: contain;

49 display: block;

50 will-change: opacity, transform;

51 }

52

53 .cat-item-cover-img.loaded {

54 opacity: 1;

55 transform: scale(1);

56 filter: blur(0);

57 }

58

59 .cat-item-card-cover.img-loaded {

60 animation: none;

61 background: none;

62 }

63 .topm, .feedback-link br{

64 display:none;

65 }

66 @media all and (min-width:1340px){

67 body a[aria-label="Позвонить нам"]{

68 padding:0 !important;

69 padding-top:15px !important;

70 }

71 .nav .dropdown{

72 display:none;

73 }

74 .feedback-link br{

75 display:block;

76 }

77 .topm{

78 display: flex;

79 flex-flow: wrap;

80 list-style: unset;

81 gap: 5px;

82 margin: 0;

83 padding: 0 12px;

84 float: left;

85 }

86 .topm li {

87 list-style: none;

88 }

89 .topm a {

90 display: flex;

91 flex-flow: column;

92 font-size: 10px;

93 gap: 5px;

94 align-items: center;

95 }

96 .topm .menu-icon{

97 margin-right:0;

98 }

99 .navbar-form.navbar-left{

100 padding:0;

101 }

102 .navbar-form .form-control{

103 max-width:100px;

104 }

105 .navbar-default .navbar-nav>li>a.feedback-link{

106 padding: 0;

107 padding-top: 5px;

108 font-size:12px;

109 text-align:center;

110 }

111 }

112 @media all and (min-width:1510px){

113 .topm{

114 width: 50%;

115 gap:10px;

116 justify-content: space-between;

117 padding: 0 5px;

118 }

119 .topm a {

120 font-size: 10px;

121 }

122 }

123 @media all and (min-width:1610px){

124 .navbar-form .form-control{

125 max-width:none;

126 }

127 }

128 @media all and (min-width:1890px){

129 .topm{

130 width: 54%;

131 gap:10px;

132 justify-content: space-between;

133 }

134 .topm a {

135 font-size: 14px;

136 gap:0;

137 }

138 .topm .menu-icon {

139 width: 31px;

140 }

141 body .navbar-form .form-control {

142 width: 220px;

143 }

144 }

145 @media all and (min-width:1950px){

146 .topm{

147 width: 55%;

148 }

149 }

150 @media all and (min-width:2000px){

151 .topm{

152 width: 56%;

153 }

154 }

155 @media all and (min-width:2100px){

156 .topm{

157 width: 58%;

158 }

159 }

160 </style>

161<title>Конструктор мебели — онлайн, бесплатно и в 3D</title>

162<meta name="description" content="Бесплатный онлайн-конструктор мебели. Спроектируйте мебель, которая идеально подойдёт к интерьеру именно вашей кухни, гостиной, спальни, детской или кабинета. Быстро и удобно. Ваш проект — наше воплощение!">

163<meta name="keywords" content="онлайн-конструктор мебели, конструктор мебели онлайн, бесплатный конструктор мебели, онлайн конструктор мебели бесплатно, проектирование мебели онлайн, моделирование мебели онлайн, проектирование мебели на заказ, мебель на заказ">

164<link rel="icon" href="/favicon.ico" type="image/x-icon">

165<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

166<link rel="apple-touch-icon" sizes="180x180" href="/favicon-180x180.png">

167<link rel="icon" sizes="192x192" href="/favicon-192x192.png" type="image/png">

168<link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">

169<link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">

170<link rel="manifest" href="/manifest.json">

171<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><link rel="canonical" href="https://komodmsk.ru/constructor"/><meta property="og:locale" content="ru_RU">

172<meta property="og:site_name" content="КомодМск — производство и продажа мебели">

173<meta property="og:type" content="website">

174<meta property="og:title" content="Конструктор мебели — онлайн, бесплатно и в 3D">

175<meta property="og:description" content="Бесплатный онлайн-конструктор мебели. Спроектируйте мебель, которая идеально подойдёт к интерьеру именно вашей кухни, гостиной, спальни, детской или кабинета. Быстро и удобно. Ваш проект — наше воплощение!">

176<meta property="og:image" content="https://komodmsk.ru/pages/about/img/hight-quality.jpg">

177<meta property="og:image:alt" content="Бесплатный онлайн-конструктор мебели. Спроектируйте мебель, которая идеально подойдёт к интерьеру именно вашей кухни, гостиной, спальни, детской или кабинета. Быстро и удобно. Ваш проект — наше воплощение!">

178<style>

179 .slider-top { min-height: 290px; background: #fff; }

180 @media(max-width:600px){ .slider-top { min-height: 180px; } }

181

182 /* Ссылки в тексте - синие и подчеркнутые */

183 .main-article a, .main-intro a { text-decoration: underline !important; color: #0056b3; }

184 .main-article a:hover, .main-intro a:hover { text-decoration: none !important; }

185

186 /* Стрелки навигации - черные */

187 #btn-nav-previous svg, #btn-nav-next svg { fill: #000; }

188

189 /* === ПРАВКИ ДЛЯ ПРОХОЖДЕНИЯ ТЕСТА (Accessibility) === */

190

191 /* 1. Боковое меню: больше отступы */

192 .cat-menu li a {

193 padding-top: 12px !important;

194 padding-bottom: 12px !important;

195 display: block;

196 }

197

198 /* 2. ТЕЛЕФОНЫ: Делаем абсолютно черными и жирными */

199 .navbar-default .navbar-nav > li > a {

200 color: #000000 !important;

201 font-weight: 600 !important;

202 }

203

204 /* 3. ЗАКАЗАТЬ ЗВОНОК: Темно-бордовый цвет (проходит все тесты) */

205 .navbar-nav > li > a.feedback-link {

206 color: #b30000 !important;

207 text-decoration: underline;

208 font-weight: 600 !important;

209 }

210</style>

211<link rel="stylesheet" href="/assets/libs/bootstrap-3.3.7.min.css">

212<link rel="stylesheet" href="/assets/build/build.css?v24442">

213<link rel="stylesheet" href="/assets/css/styles2.css?v422">

214<link rel="stylesheet" href="/assets/libs/fontawesome-4.7.0.min.css" media="print" onload="this.media='all'">

215<noscript><link rel="stylesheet" href="/assets/libs/fontawesome-4.7.0.min.css"></noscript>

216<link rel="stylesheet" href="/assets/libs/select2.min.css" media="print" onload="this.media='all'">

217<noscript><link rel="stylesheet" href="/assets/libs/select2.min.css"></noscript>

218<link rel="stylesheet" href="/assets/libs/owl.carousel.min.css" media="print" onload="this.media='all'">

219<noscript><link rel="stylesheet" href="/assets/libs/owl.carousel.min.css"></noscript>

220<script>

221setTimeout(function() {

222 (function(m,e,t,r,i,k,a){

223 m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};

224 m[i].l=1*new Date();

225 k=e.createElement(t),a=e.getElementsByTagName(t)[0];

226 k.async=1;

227 k.src=r;

228 a.parentNode.insertBefore(k,a)

229 })(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");

230

231 ym(31590058, "init", {

232 clickmap:false,

233 trackLinks:false,

234 accurateTrackBounce:false,

235 webvisor:false,

236 ecommerce:"dataLayer"

237 });

238}, 1500);

239</script><link rel="preload" href="/assets/libs/jquery-2.2.4.min.js" as="script">

240<script src="/assets/libs/jquery-2.2.4.min.js" fetchpriority="high"></script><script>

241 $(function() {

242 $('#btn-nav-previous').click(function(){

243 $(".menu-inner-box").animate({scrollLeft: "-=100px"});

244 });

245 $('#btn-nav-next').click(function(){

246 $(".menu-inner-box").animate({scrollLeft: "+=100px"});

247 });

248 });

249 </script><script>

250 // Ждем полной загрузки страницы (картинки, стили)

251 window.addEventListener("load", function(){

252 // Ждем еще 2.5 секунды, чтобы браузер "отдохнул"

253 setTimeout(function() {

254 var t=document.createElement("script");

255 t.type="text/javascript";

256 t.async=true;

257 t.src="https://vk.com/js/api/openapi.js?169";

258 t.onload=function(){

259 // Проверка на существование VK, чтобы избежать ошибок

260 if (typeof VK !== 'undefined' && VK.Retargeting) {

261 VK.Retargeting.Init("VK-RTRG-1753336-4SKta");

262 VK.Retargeting.Hit();

263 }

264 };

265 document.head.appendChild(t);

266 }, 2500);

267 });

268 </script>

269</head>

270<body id="body">

271<noscript><img src="https://vk.com/rtrg?p=VK-RTRG-1753336-4SKta" style="position:fixed; left:-999px;" alt="vk"></noscript>

<noindex></noindex><nav class="navbar navbar-default navbar-fixed-top"><div class="container-fluid">

272<div class="navbar-header">

273<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-main-navbar-collapse" aria-expanded="false"><span class="sr-only">Toggle</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="https://komodmsk.ru"><img src="/img/logo-n.png" class="no-lazy" loading="eager" width="160" height="23" decoding="async" alt="KomodMsk.ru — мебельная фабрика и интернет-магазин с доставкой по всей России"></a>

274</div>

275<div class="collapse navbar-collapse" id="bs-main-navbar-collapse">

276<ul class="nav navbar-nav" style="vertical-align:middle;">

277<li><a href="#" class="city-chooser" rel="nofollow"><i class="fas fa-map-marker-alt"></i> 

<span class="city-chooser__city js-link">Москва</span></a></li>

278<li class="dropdown">

279<a href="#" class="dropdown-toggle nav-catalog" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Каталог мебели<span class="caret"></span></a><ul class="dropdown-menu">

280<li itemprop="name">

<a href="/cat/sale" itemprop="url" style="color:#cc0000"><img src="/images/cat/1799.svg" width="24" height="24" alt="Распродажа" class="menu-icon">Распродажа</a></li>

281<li itemprop="name"><a href="/cat/../constructor" itemprop="url"><img src="/images/cat/2051.jpg" width="24" height="24" alt="Конструктор" class="menu-icon">Конструктор</a></li>

282<li itemprop="name"><a href="/cat/komody" itemprop="url"><img src="/images/cat/1680.svg" width="24" height="24" alt="Комоды" class="menu-icon">Комоды</a></li>

283<li itemprop="name"><a href="/cat/kuhny" itemprop="url"><img src="/images/cat/2012.svg" width="24" height="24" alt="Кухни" class="menu-icon">Кухни</a></li>

284<li itemprop="name"><a href="/cat/tumby" itemprop="url"><img src="/images/cat/1725.svg" width="24" height="24" alt="Тумбы" class="menu-icon">Тумбы</a></li>

285<li itemprop="name"><a href="/cat/obuvnicy" itemprop="url"><img src="/images/cat/1700.svg" width="24" height="24" alt="Обувницы" class="menu-icon">Обувницы</a></li>

286<li itemprop="name"><a href="/cat/prihozhie" itemprop="url"><img src="/images/cat/1731.svg" width="24" height="24" alt="Прихожие" class="menu-icon">Прихожие</a></li>

287<li itemprop="name"><a href="/cat/stoly" itemprop="url"><img src="/images/cat/1701.svg" width="24" height="24" alt="Столы" class="menu-icon">Столы</a></li>

288<li itemprop="name"><a href="/cat/chairs" itemprop="url"><img src="/images/cat/2042.svg" width="24" height="24" alt="Стулья" class="menu-icon">Стулья</a></li>

289<li itemprop="name"><a href="/cat/shkafy" itemprop="url"><img src="/images/cat/1722.svg" width="24" height="24" alt="Шкафы" class="menu-icon">Шкафы</a></li>

290<li itemprop="name"><a href="/cat/stellazhi" itemprop="url"><img src="/images/cat/1703.svg" width="24" height="24" alt="Стеллажи" class="menu-icon">Стеллажи</a></li>

291<li itemprop="name"><a href="/cat/stenki" itemprop="url"><img src="/images/cat/1743.svg" width="24" height="24" alt="Стенки" class="menu-icon">Стенки</a></li>

292<li itemprop="name"><a href="/cat/mebel-dlya-spalni" itemprop="url"><img src="/images/cat/1749.svg" width="24" height="24" alt="Спальни" class="menu-icon">Спальни</a></li>

293</ul>

294</li>

295</ul>

296<form class="navbar-form navbar-left" name="form1" action="/search.php">

297<div class="form-group"><input type="text" name="q" class="form-control input-sm" placeholder="Поиск по названию или артикулу"></div>

298<button class="btn btn-default btn-sm">Найти</button>

299</form>

300<ul class="topm">

301<li itemprop="name"><a href="/cat/../constructor" itemprop="url"><img src="/images/cat/const.png" width="24" height="24" alt="Конструктор" class="menu-icon">Конструктор</a></li>

302<li itemprop="name"><a href="/cat/komody" itemprop="url"><img src="/images/cat/1680.svg" width="24" height="24" alt="Комоды" class="menu-icon">Комоды</a></li>

303<li itemprop="name"><a href="/cat/tumby" itemprop="url"><img src="/images/cat/1725.svg" width="24" height="24" alt="Тумбы" class="menu-icon">Тумбы</a></li>

304<li itemprop="name"><a href="/cat/stellazhi" itemprop="url"><img src="/images/cat/1703.svg" width="24" height="24" alt="Стеллажи" class="menu-icon">Стеллажи</a></li>

305<li itemprop="name"><a href="/cat/shkafy" itemprop="url"><img src="/images/cat/1722.svg" width="24" height="24" alt="Шкафы" class="menu-icon">Шкафы</a></li>

306<li itemprop="name"><a href="/cat/stenki" itemprop="url"><img src="/images/cat/1743.svg" width="24" height="24" alt="Стенки" class="menu-icon">Стенки</a></li>

307<li itemprop="name"><a href="/cat/prihozhie" itemprop="url"><img src="/images/cat/1731.svg" width="24" height="24" alt="Прихожие" class="menu-icon">Прихожие</a></li>

308<li itemprop="name"><a href="/cat/obuvnicy" itemprop="url"><img src="/images/cat/1700.svg" width="24" height="24" alt="Обувницы" class="menu-icon">Обувницы</a></li>

309<li itemprop="name"><a href="/cat/stoly" itemprop="url"><img src="/images/cat/1701.svg" width="24" height="24" alt="Столы" class="menu-icon">Столы</a></li>

310<li itemprop="name"><a href="/cat/chairs" itemprop="url"><img src="/images/cat/2042.svg" width="24" height="24" alt="Стулья" class="menu-icon">Стулья</a></li>

311<li itemprop="name"><a href="/cat/kuhny" itemprop="url"><img src="/images/cat/2012.svg" width="24" height="24" alt="Кухни" class="menu-icon">Кухни</a></li>

312<li itemprop="name"><a href="/cat/mebel-dlya-spalni" itemprop="url"><img src="/images/cat/1749.svg" width="24" height="24" alt="Спальни" class="menu-icon">Спальни</a></li>

313<li itemprop="name"><a href="/cat/sale" itemprop="url" style="color:#cc0000"><img src="/images/cat/1799.svg" width="24" height="24" alt="Распродажа" class="menu-icon">Распродажа</a></li>

314</ul>

315<ul class="nav navbar-nav navbar-right">

316<li>

<a rel="nofollow" class="feedback-link" href="/feedback/form" target="_blank">Заказать<br> звонок</a></li>

317<li><a href="https://t.me/+79915674335" rel="nofollow" aria-label="Написать нам в Telegram">

<i class="fa fa-telegram nav-msg-img" target="_blank" aria-hidden="true"></i></a></li>

318<li>

<a href="tel:88002002327" class="" rel="nofollow" aria-label="Позвонить нам">

<i class="fa fa-phone nav-msg-img" target="_blank" aria-hidden="true"></i>8 800 200–23–27</a></li>

319<li>

<noindex><div class="main-basket">

320<div class="main-basket-row">

321<a href="/basket/list" rel="nofollow" aria-label="Перейти в корзину" style="display:block;width:100%;height:100%;cursor:pointer;"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" class="svg-shop" viewBox="0 484 516 516" enable-background="new 0 484 516 516" xml:space="preserve">

322

323 <polyline fill="none" stroke-width="30" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 26.9,577.6 114,621.8 201.9,886.7 "></polyline>

324

325 <circle fill="none" stroke-width="30" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="218" cy="933.2" r="44.8"></circle>

326

327 <line fill="none" stroke-width="30" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="262.1" y1="918.1" x2="486.9" y2="844.2"></line>

328 <path fill="none" stroke-width="30" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d=" M462.3,790.1l-206,67.2c-0.5,0.2-1-0.1-1.2-0.6l-67.2-206c-0.2-0.5,0.1-1,0.6-1.2l206-67.2c0.5-0.2,1,0.1,1.2,0.6l67.2,206 C463,789.4,462.8,789.9,462.3,790.1z"></path>

329

330 <line fill="none" stroke-width="30" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="312.3" y1="680.1" x2="291.8" y2="618.4"></line>

331 </svg></a><a id="basket_items_title"><span class="no-products-text"></span><span id="basket_items_txt" style="display:none;">товаров: 0</span></a>

332</div>

333<div class="main-basket-list">

334<div class="js-basket-list-container-top"></div>

335<center class="to-basket" style="display:none;"><a rel="/basket/list" href="/basket/list" class="btn btn-yellow-inline btn-lg" style="margin-right:0!important;">

336 Перейти в корзину

337 </a></center>

338</div>

339</div></noindex></li>

340</ul>

341</div>

342</div></nav><div class="main-block container-fluid"><div class="row" style="margin-right: unset;margin-left: unset;"><div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" style="padding-right:0px;padding-left:0px;background: white;box-shadow: 0 3px 1px rgba(0, 0, 0, .05), 0 2px 0 rgba(0, 0, 0, .05), 0 1px 0 rgba(0, 0, 0, .05);"><div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" style="padding-left: 0px;padding-right: 0px;"><div class="main-content">

343<nav id="menu-container" class="arrow"><div id="btn-nav-previous"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></div>

344<div id="btn-nav-next"><svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></div>

345<div class="menu-inner-box"><div class="menu">

346<a href="/cat/sale" class="menu-item" itemprop="url" style="color:#cc0000">Распродажа</a>

<a href="/cat/../constructor" class="menu-item" itemprop="url">Конструктор</a>

<a href="/cat/komody" class="menu-item" itemprop="url">Комоды</a>

<a href="/cat/kuhny" class="menu-item" itemprop="url">Кухни</a>

<a href="/cat/tumby" class="menu-item" itemprop="url">Тумбы</a>

<a href="/cat/obuvnicy" class="menu-item" itemprop="url">Обувницы</a>

<a href="/cat/prihozhie" class="menu-item" itemprop="url">Прихожие</a>

<a href="/cat/stoly" class="menu-item" itemprop="url">Столы</a>

<a href="/cat/chairs" class="menu-item" itemprop="url">Стулья</a>

<a href="/cat/shkafy" class="menu-item" itemprop="url">Шкафы</a>

<a href="/cat/stellazhi" class="menu-item" itemprop="url">Стеллажи</a>

<a href="/cat/stenki" class="menu-item" itemprop="url">Стенки</a>

<a href="/cat/mebel-dlya-spalni" class="menu-item last-item" itemprop="url">Спальни</a>

347</div></div></nav><link rel="stylesheet" href="/css/nouislider.min.css">

348<link rel="stylesheet" href="/css/style.min.css">

349<style>

350 /* === 1. ГЛОБАЛЬНЫЙ СБРОС === */

351 html, body, .main-block, .main-content, .row, .col-md-12, .container-fluid {

352 height: auto !important;

353 min-height: 0 !important;

354 }

355

356 /* === 2. КОНСТРУКТОР (Обертка) === */

357 .constructor-bx {

358 display: flex;

359 flex-wrap: nowrap;

360 align-items: flex-start;

361 justify-content: space-between;

362 width: 100%;

363 position: relative;

364 opacity: 1;

365 z-index: 5;

366 margin-bottom: 30px;

367 }

368

369 .constructor-bx.hidden-start {

370 display: none !important;

371 }

372

373 /* === 3. 3D СЦЕНА === */

374 .canvas-wrapper {

375 flex-grow: 1;

376 width: auto;

377 min-width: 50%;

378 height: 650px;

379 position: relative;

380 background: #f9f9f9;

381 border: 1px solid #eee;

382 z-index: 1;

383 touch-action: pan-y !important;

384 -webkit-tap-highlight-color: transparent;

385 cursor: pointer;

386 }

387

388 .canvas-wrapper canvas {

389 width: 100% !important;

390 height: 100% !important;

391 display: block;

392 outline: none;

393 }

394

395 /* === 4. ПАНЕЛЬ НАСТРОЕК === */

396 .panel {

397 width: 480px;

398 min-width: 450px;

399 flex-shrink: 0;

400 margin-left: 30px;

401 background: #fff;

402 padding-bottom: 20px;

403 position: relative;

404 z-index: 50 !important;

405 display: block !important;

406 height: auto !important;

407 }

408

409 .set-panel {

410 display: flex;

411 flex-direction: column;

412 position: relative;

413 overflow: visible !important;

414 }

415

416 /* === 5. ОКНО НАСТРОЕК (ОРИГИНАЛЬНЫЙ ДИЗАЙН) === */

417 .constructor-set-dialog {

418 width: 100%;

419 position: relative !important;

420 background: #fff;

421 border: 1px solid #eee;

422 box-shadow: 0 2px 10px rgba(0,0,0,0.05);

423 height: 0;

424 padding: 0;

425 overflow: hidden;

426 transition: all 0.3s ease-in;

427 margin-bottom: 20px;

428 display: block !important;

429 box-sizing: border-box;

430 }

431

432 .constructor-set-dialog.active,

433 .constructor-set-dialog[style*="display: block"] {

434 height: auto !important;

435 padding: 15px 15px 70px 15px !important; /* Место под кнопку */

436 overflow: visible !important;

437 border: 1px solid #ddd;

438 }

439

440 .constructor-set-dialog__container {

441 opacity: 0;

442 transition: opacity 0.5s ease;

443 }

444

445 .constructor-set-dialog.active .constructor-set-dialog__container {

446 opacity: 1;

447 }

448

449 .constructor-set-dialog__title {

450 font-size: 18px;

451 font-weight: 700;

452 margin-bottom: 15px;

453 color: #000;

454 border-bottom: 1px solid #eee;

455 padding-bottom: 10px;

456 }

457

458 .constructor-set-dialog__close-btn {

459 position: absolute;

460 top: 10px;

461 right: 10px;

462 background: none;

463 border: none;

464 font-size: 20px;

465 color: #999;

466 cursor: pointer;

467 padding: 5px;

468 line-height: 1;

469 z-index: 10;

470 }

471

472 /* Поля ввода */

473 .constructor-set-dialog__width,

474 .constructor-set-dialog__doors {

475 display: flex; /* Flex для выравнивания */

476 align-items: center;

477 justify-content: space-between;

478 margin-bottom: 15px;

479 width: 100%;

480 }

481

482 .constructor-set-dialog__width span,

483 .constructor-set-dialog__doors span {

484 font-size: 15px;

485 color: #333;

486 font-weight: 400;

487 }

488

489 .constructor-set-dialog__width-input {

490 width: 100px !important;

491 height: 34px;

492 padding: 6px 12px;

493 font-size: 14px;

494 border: 1px solid #ccc;

495 border-radius: 4px;

496 background-color: #fff;

497 }

498

499 /* === ЧЕКБОКСЫ === */

500 .constructor-set-dialog__overhead,

501 .constructor-set-dialog__overhead-all {

502 display: flex !important;

503 justify-content: flex-end !important; /* Справа */

504 align-items: center !important;

505 margin-top: 10px;

506 opacity: 1 !important;

507 visibility: visible !important;

508 }

509

510 /* Скрываем, если JS добавил класс hide (но не для overhead-all, там мы управляем сами) */

511 .constructor-set-dialog__overhead.hide {

512 display: none !important;

513 }

514

515 .constructor-set-dialog__overhead input,

516 .constructor-set-dialog__overhead-all input {

517 width: 18px !important;

518 height: 18px !important;

519 margin-left: 10px !important;

520 margin-right: 0 !important;

521 opacity: 1 !important;

522 appearance: checkbox !important;

523 -webkit-appearance: checkbox !important;

524 position: static !important;

525 cursor: pointer;

526 }

527

528 .constructor-set-dialog__overhead label,

529 .constructor-set-dialog__overhead-all label {

530 font-size: 14px;

531 font-weight: 400;

532 margin: 0;

533 color: #000;

534 opacity: 1 !important;

535 cursor: pointer;

536 }

537

538 /* === КНОПКА СОХРАНИТЬ (СЛЕВА ВНИЗУ) === */

539 .constructor-set-dialog__save-btn {

540 position: absolute !important;

541 bottom: 15px !important;

542 left: 20px !important;

543 background: #ffdb4d !important;

544 border: none !important;

545 padding: 10px 25px !important;

546 font-size: 14px;

547 font-weight: 600;

548 text-align: center;

549 cursor: pointer;

550 border-radius: 4px;

551 color: #000 !important;

552 text-transform: uppercase;

553 width: auto !important;

554 }

555

556 .constructor-set-dialog__save-btn:hover {

557 background-color: #ffe019 !important;

558 }

559

560 /* === ВЫПАДАЮЩИЕ СПИСКИ === */

561 .itc-select__dropdown,

562 .select__dropdown,

563 .constructor-set-dialog__select .itc-select__dropdown {

564 z-index: 9999999 !important;

565 position: absolute !important;

566 background: #fff;

567 border: 1px solid #ccc;

568 box-shadow: 0 5px 15px rgba(0,0,0,0.15);

569 max-height: 200px;

570 overflow-y: auto;

571 margin-top: 2px;

572 }

573

574 /* === АДАПТИВ === */

575 @media (max-width: 1200px) {

576 .panel { width: 380px !important; min-width: 380px; margin-left: 15px; }

577 }

578

579 @media (max-width: 991px) {

580 .constructor-bx { flex-wrap: wrap !important; display: block; }

581 .canvas-wrapper { width: 100% !important; height: 450px !important; }

582

583 .panel {

584 width: 100% !important;

585 margin-left: 0;

586 margin-top: 15px;

587 min-width: 0;

588 padding-bottom: 40px;

589 }

590

591 .constructor { padding-bottom: 40px !important; }

592

593 .constructor-set-dialog__save-btn {

594 left: 15px !important;

595 bottom: 15px !important;

596 }

597 }

598

599 .construct-link-wrapper {

600 position: absolute;

601 top: 0; left: 0; width: 100%; height: 100%; z-index: 10;

602 cursor: pointer;

603 }

604

605 .visually-hidden-start {

606 display: none !important;

607 }

608

609 .field-fill__item.active {

610 outline: 3px solid #ffda44;

611 z-index: 2;

612 position: relative;

613 }

614

615</style>

616<div class="breadcrumbs">

<span itemscope="itemscope" itemtype="//schema.org/BreadcrumbList"><span itemprop="itemListElement" itemscope="itemscope" itemtype="http://schema.org/ListItem"><meta itemprop="position" content="1">

617<a href="/" itemprop="item">

<span itemprop="name" class="breadcrumb-item">Главная</span></a></span>

618  &gt; 

619 <span itemprop="itemListElement" itemscope="itemscope" itemtype="http://schema.org/ListItem"><meta itemprop="position" content="2">

620<a class="breadcrumb-item" itemprop="item" href="/constructor">

<span itemprop="name">Конструктор мебели</span></a></span></span></div>

621<div class="constructor">

622<h1 class="constructor-title">Конструктор мебели онлайн, бесплатно и в 3D</h1>

623<div class="constructor-selection">

624<div class="constructor-selection__item">

625<div class="constructor-selection__img-bx" data-selection="wardrobe" style="position:relative;">

626<a href="/constructor/wardrobe" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_1.jpg" alt="Шкафы для одежды" class="constructor-selection__img" loading="lazy">

627</div>

628<div class="constructor-selection__title">Конструктор гардеробных шкафов</div>

629</div>

630<div class="constructor-selection__item">

631<div class="constructor-selection__img-bx" data-selection="square_shelves" style="position:relative;">

632<a href="/constructor/square_shelves" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_2.jpg" alt="Стеллажи квадратные" class="constructor-selection__img" loading="lazy">

633</div>

634<div class="constructor-selection__title">Конструктор стеллажей с квадратными полками</div>

635</div>

636<div class="constructor-selection__item">

637<div class="constructor-selection__img-bx" data-selection="closet" style="position:relative;">

638<a href="/constructor/closet" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_3.jpg" alt="Шкафы-купе" class="constructor-selection__img" loading="lazy">

639</div>

640<div class="constructor-selection__title">Конструктор шкафов-купе</div>

641</div>

642<div class="constructor-selection__item">

643<div class="constructor-selection__img-bx" data-selection="rectangular_shelves" style="position:relative;">

644<a href="/constructor/rectangular_shelves" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_4.jpg" alt="Стеллажи прямоугольные" class="constructor-selection__img" loading="lazy">

645</div>

646<div class="constructor-selection__title">Конструктор стеллажей с прямоугольными полками</div>

647</div>

648<div class="constructor-selection__item">

649<div class="constructor-selection__img-bx" data-selection="dressers" style="position:relative;">

650<a href="/constructor/dressers" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_5.jpg" alt="Комоды" class="constructor-selection__img" loading="lazy">

651</div>

652<div class="constructor-selection__title">Конструктор комодов</div>

653</div>

654<div class="constructor-selection__item">

655<div class="constructor-selection__img-bx" data-selection="tv_tumbs" style="position:relative;">

656<a href="/constructor/tv_tumbs" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_6.jpg" alt="Тумбы ТВ" class="constructor-selection__img" loading="lazy">

657</div>

658<div class="constructor-selection__title">Конструктор тумб под телевизор</div>

659</div>

660<div class="constructor-selection__item">

661<div class="constructor-selection__img-bx" data-selection="tumbs" style="position:relative;">

662<a href="/constructor/tumbs" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_7.jpg" alt="Тумбочки" class="constructor-selection__img" loading="lazy">

663</div>

664<div class="constructor-selection__title">Конструктор тумбочек</div>

665</div>

666<div class="constructor-selection__item">

667<div class="constructor-selection__img-bx" data-selection="long_bookshelves" style="position:relative;">

668<a href="/constructor/long_bookshelves" class="construct-link-wrapper"></a>

<img src="assets/images/selections/constructor_8.jpg" alt="Полки" class="constructor-selection__img" loading="lazy">

669</div>

670<div class="constructor-selection__title">Конструктор длинных книжных полок</div>

671</div>

672</div>

673<div class="container constructor-steps"><div class="row">

674<div class="col-md-1"></div>

675<div class="col-md-2 constructor-steps-frame">

676<span class="constructor-steps-helper"></span>

<img src="assets/images/selections/step_1.jpg" alt="Сделайте замеры" class="constructor-steps-img" loading="lazy">

<div class="constructor-steps-text">Сделайте необходимые замеры</div>

677</div>

678<div class="col-md-2 constructor-steps-frame">

679<span class="constructor-steps-helper"></span>

<img src="assets/images/selections/step_2.jpg" alt="Укажите размеры" class="constructor-steps-img" loading="lazy">

<div class="constructor-steps-text">Укажите ваши размеры в конструкторе на сайте</div>

680</div>

681<div class="col-md-2 constructor-steps-frame">

682<span class="constructor-steps-helper"></span>

<img src="assets/images/selections/step_3.jpg" alt="Заказ" class="constructor-steps-img" loading="lazy">

<div class="constructor-steps-text">Оформите заказ мебели онлайн</div>

683</div>

684<div class="col-md-2 constructor-steps-frame">

685<span class="constructor-steps-helper"></span>

<img src="assets/images/selections/step_4.jpg" alt="Получение" class="constructor-steps-img" loading="lazy">

<div class="constructor-steps-text">Ожидайте получения заказа</div>

686</div>

687<div class="col-md-2 constructor-steps-frame">

688<span class="constructor-steps-helper"></span>

<img src="assets/images/selections/step_5.jpg" alt="Сборка" class="constructor-steps-img" loading="lazy">

<div class="constructor-steps-text">Соберите мебель по инструкции</div>

689</div>

690<div class="col-md-1"></div>

691</div></div>

692<div class="container constructor-text-container"><div class="row"><div class="col-md-12"><div class="constructor-steps-memo">

693<h2 class="constructor-steps-h">Что делать, если вам не подходит типовая мебель?</h2>

694<p>

695 Не вписывается в ваш интерьер, не имеет нужной полки или дверцы, не подходит по размерам?</p>

696<p>На нашем сайте вы можете спроектировать свою мебель сами — бесплатно и быстро!</p>

697<p>Мы создали очень удобный онлайн-инструмент, который поможет вам не только сконструировать уникальный предмет мебели под ваши требования и предпочтения, не только покажет вам в 3D, как будет выглядеть эта мебель, но и сформирует автоматически ваш заказ для нас. Сразу со всеми габаритами, деталями и цветами, так что вам не придётся бесконечно уточнять по телефону или электронной почте, чего вы, собственно, хотите, — мы увидим ваш проект так же, как и вы, в 3D, со всеми вашими пожеланиями.</p>

698<p>Шкаф для одежды или шкаф-купе, стеллажи с квадратными или с прямоугольными полками, тумбочки или тумбы для телевизора, комоды, книжные полки — всё это доступно онлайн.</p>

699<p>Создайте свой уникальный вариант, который идеально подойдёт к интерьеру именно вашей кухни, гостиной, спальни, детской, кабинета и любых других помещений.</p>

700<p>Свободно меняйте размер, форму и цвет, как вам захочется в нашем 3D-конструкторе. Воплощайте с нами самые смелые дизайнерские решения, а мы позаботимся о качестве. Что может быть лучше оригинальной мебели из выбранных вами высококачественных материалов, которая прослужит вам многие годы?</p>

701<p>Итак: ваш проект — наше воплощение!</p>

702<p>Есть вопросы по работе конструтора или по оформлению заявки?

<a href="tel:+74994033617">Звоните</a>,

<a href="mailto:zakaz@komodmsk.ru" title="zakaz@komodmsk.ru">пишите</a> нам! Наши сотрудники помогут!</p>

703</div></div></div></div>

704<div class="constructor-bx hidden-start">

705<button class="constructor-checkout-btn">

706 Оформить заказ

707 <svg xmlns="http://www.w3.org/2000/svg" width="15.593" height="11.977" viewBox="0 0 15.593 11.977"><g id="Group_373" data-name="Group 373" transform="translate(1)"><g id="Ellipse_43" data-name="Ellipse 43" transform="translate(2.851)" fill="#ed7a65" stroke="#fff" stroke-width="2"><circle cx="4.116" cy="4.116" r="4.116" stroke="none"></circle><circle cx="4.116" cy="4.116" r="3.116" fill="none"></circle></g><path id="Path_917" data-name="Path 917" d="M537.585,40.5l2.712,6.8h8.371l2.51-6.8Z" transform="translate(-537.585 -36.319)" fill="#ed7a65" stroke="#fff" stroke-linejoin="round" stroke-width="2"></path></g></svg></button><div class="canvas-wrapper"></div>

708<div class="panel">

709<div class="set-panel">

710<div class="constructor-set-dialog"><div class="constructor-set-dialog__container">

711<button class="constructor-set-dialog__close-btn">&#10005;</button><div class="constructor-set-dialog__title">Настройки ячейки</div>

712<div class="constructor-set-dialog__width">

713<span>Ширина ячейки</span><input type="text" class="constructor-set-dialog__width-input">

714</div>

715<div class="constructor-set-dialog__doors">

716<span>Выбор дверей</span><div class="constructor-set-dialog__select itc-select" id="selectDoors">

717<button type="button" class="itc-select__toggle" name="doors" value="Выбрать двери" data-select="toggle" data-index="-1">Выберите из списка</button><div class="itc-select__dropdown"><ul class="itc-select__options">

718<li class="itc-select__option" data-select="option" data-value="single-left" data-index="0">Одинарная справа</li>

719<li class="itc-select__option" data-select="option" data-value="single-right" data-index="1">Одинарная слева</li>

720<li class="itc-select__option select__option_selected" data-select="option" data-value="double" data-index="2">Двойные</li>

721<li class="itc-select__option select__option_selected" data-select="option" data-value="drawer" data-index="3">Выдвижной ящик</li>

722<li class="itc-select__option select__option_selected" data-select="option" data-value="drawers" data-index="3">Выдвижные ящики</li>

723<li class="itc-select__option" data-select="option" data-value="seporator-1" data-index="4">Разделитель вертикальный</li>

724<li class="itc-select__option" data-select="option" data-value="seporator-2" data-index="5">Разделитель горизонтальный</li>

725<li class="itc-select__option" data-select="option" data-value="seporator-none" data-index="6">Без разделителя</li>

726<li class="itc-select__option" data-select="option" data-value="none" data-index="7">Нет</li>

727</ul></div>

728</div>

729</div>

730<div class="constructor-set-dialog__overhead hide">

731<label for="overheadCheckBox">Накладная</label><input id="overheadCheckBox" type="checkbox" class="constructor-set-dialog__overhead-checkbox">

732</div>

733<div class="constructor-set-dialog__overhead-all">

734<label for="overheadAllCheckBox">Все накладные</label><input id="overheadAllCheckBox" type="checkbox" class="constructor-set-dialog__overhead-checkbox">

735</div>

736<button class="constructor-set-dialog__save-btn">Сохранить</button>

737</div></div>

738<div class="field">

739<div class="field__title">Ширина<span class="unit">, мм</span>

740</div>

741<div class="field__rSlider" id="w-rSlider"></div>

742</div>

743<div class="field">

744<div class="field__title">Высота<span class="unit">, мм</span>

745</div>

746<div class="field__rSlider" id="h-rSlider"></div>

747</div>

748<div class="field">

749<div class="field__title">Глубина<span class="unit">, мм</span>

750</div>

751<div class="field__rSlider" id="d-rSlider"></div>

752</div>

753<div class="field">

754<div class="field__title">Ячейки</div>

755<div class="field__rSlider" id="cols-rSlider"></div>

756<span class="by">X</span><div class="field__rSlider no-margin" id="rows-rSlider"></div>

757</div>

758<div class="field-style">

759<div class="field-style__title">Стиль</div>

760<div class="field-style__items" data-material-type="general">

761<div class="field-style__item" title="Просто белый, ЛДСП"><a href="#" class="field-style__item-link cnst-texture-link active" data-depth="16"><img src="assets/textures/white-sleek.jpg" alt="image" class="field-style__item-img" loading="lazy"></a></div>

762<div class="field-style__item" title="Просто серый, ЛДСП"><a href="#" class="field-style__item-link cnst-texture-link" data-depth="16"><img src="assets/textures/grey.jpg" alt="image" class="field-style__item-img" loading="lazy"></a></div>

763<div class="field-style__item" title="Просто бежевый, ЛДСП"><a href="#" class="field-style__item-link cnst-texture-link" data-depth="16"><img src="assets/textures/beige.jpg" alt="image" class="field-style__item-img" loading="lazy"></a></div>

764<div class="field-style__item" title="Просто чёрный, ЛДСП"><a href="#" class="field-style__item-link cnst-texture-link" data-depth="16"><img src="assets/textures/black.jpg" alt="image" class="field-style__item-img" loading="lazy"></a></div>

765</div>

766</div>

767<div class="field-fill">

768<div class="field-fill__title">Варианты наполнения</div>

769<div class="field-fill__items">

770<div class="field-fill__item active" data-fill-type="1"><img src="assets/images/fill-options/1.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

771<div class="field-fill__item" data-fill-type="2"><img src="assets/images/fill-options/2.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

772<div class="field-fill__item" data-fill-type="3"><img src="assets/images/fill-options/3.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

773<div class="field-fill__item" data-fill-type="4"><img src="assets/images/fill-options/4.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

774<div class="field-fill__item" data-fill-type="5"><img src="assets/images/fill-options/5.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

775<div class="field-fill__item" data-fill-type="6"><img src="assets/images/fill-options/6.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

776<div class="field-fill__item" data-fill-type="7"><img src="assets/images/fill-options/7.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

777<div class="field-fill__item" data-fill-type="8"><img src="assets/images/fill-options/8.png" alt="image" class="field-fill__item-img" title="Полки с одинаковыми нишами" loading="lazy"></div>

778<div class="field-fill__item" data-fill-type="9"><img src="assets/images/fill-options/9.png" alt="image" class="field-fill__item-img" title="Полки с разными нишами" loading="lazy"></div>

779<div class="field-fill__item" data-fill-type="10"><img src="assets/images/fill-options/10.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

780<div class="field-fill__item" data-fill-type="11"><img src="assets/images/fill-options/11.png" alt="image" class="field-fill__item-img" loading="lazy"></div>

781</div>

782</div>

783<button class="extra-settings-btn"><svg viewBox="0 0 24 24"><g><path d="M18,9l-6,6L6,9H18z"></path></g></svg>

784 Расширенные настройки

785 </button>

786</div>

787<div class="extra-set-panel"><div class="extra-set-panel__inner">

788<div class="field-material">

789<div class="field-material__title">Материал корпуса</div>

790<div class="field-material__items" data-material-type="skeleton">

791<div class="field-material__item"><a href="#" class="field-material__item-link cnst-texture-link active" title="Белый гладкий, ЛДСП 16мм" data-depth="16"><img src="assets/textures/white-sleek.jpg" alt="image" loading="lazy"></a></div>

792<div class="field-material__item"><a href="#" class="field-material__item-link cnst-texture-link" title="Серый, ЛДСП 16мм" data-depth="16"><img src="assets/textures/grey.jpg" alt="image" loading="lazy"></a></div>

793<div class="field-material__item"><a href="#" class="field-material__item-link cnst-texture-link" title="Чёрный, ЛДСП 16мм" data-depth="16"><img src="assets/textures/black.jpg" alt="image" loading="lazy"></a></div>

794<div class="field-material__item"><a href="#" class="field-material__item-link cnst-texture-link" title="Бежевый, ЛДСП 16мм" data-depth="16"><img src="assets/textures/beige.jpg" alt="image" loading="lazy"></a></div>

795<div class="field-material__item"><a href="#" class="field-material__item-link cnst-texture-link" title="Дуб Сонома светлый, ЛДСП 16мм" data-depth="16"><img src="assets/textures/sonoma-oak-light.jpg" alt="image" loading="lazy"></a></div>

796<button class="field-material__btn show-materials">Ещё</button>

797</div>

798<p class="field-material__selected-name">Белый гладкий. ЛДСП 16мм</p>

799</div>

800<div class="field-backwall">

801<div class="field-backwall__title">Задняя стенка</div>

802<button class="field-backwall__link cnst-help-link" data-help-link-id="0">Нужна ли задняя стенка и зачем?</button><div class="field-backwall__items" data-material-type="backwall">

803<div class="field-backwall__item"><a href="#" class="field-backwall__item-link cnst-texture-link active" title="Белый, ХДФ 3мм" data-depth="3"><img src="assets/textures/white-sleek.jpg" alt="image" loading="lazy"></a></div>

804<div class="field-backwall__item"><a href="#" class="field-backwall__item-link cnst-texture-link" title="не выбрано" data-depth="0"><img src="assets/textures/material-no-icon.png" alt="image" loading="lazy"></a></div>

805<div class="field-backwall__item"><a href="#" class="field-backwall__item-link cnst-texture-link" title="Серый, ХДФ 3мм" data-depth="3"><img src="assets/textures/grey.jpg" alt="image" loading="lazy"></a></div>

806<div class="field-backwall__item"><a href="#" class="field-backwall__item-link cnst-texture-link" title="Бежевый, ХДФ 3мм" data-depth="3"><img src="assets/textures/beige.jpg" alt="image" loading="lazy"></a></div>

807<div class="field-backwall__item"><a href="#" class="field-backwall__item-link cnst-texture-link" title="Клен, ХДФ 3мм" data-depth="3"><img src="assets/textures/maple.jpg" alt="image" loading="lazy"></a></div>

808<div class="field-backwall__item"><a href="#" class="field-backwall__item-link cnst-texture-link" title="Венге, ХДФ 3мм" data-depth="3"><img src="assets/textures/wenge.jpg" alt="image" loading="lazy"></a></div>

809</div>

810<p class="field-backwall__selected-name">Белый, ХДФ 3мм</p>

811</div>

812<div class="field-base">

813<div class="field-base__title">Основание</div>

814<button class="field-base__link cnst-help-link" data-help-link-id="1">Как выбрать цоколь?</button><div class="field">

815<div class="field__title">Высота, <span>мм</span>

816</div>

817<div class="field__rSlider" id="baseH-rSlider"></div>

818</div>

819<div class="field-base__items">

820<div class="field-base__item active cnst-base-link" data-type="none"><img src="assets/images/base/1.jpg" alt="image" class="field-base__item-img" loading="lazy"></div>

821<div class="field-base__item cnst-base-link" data-type="type1"><img src="assets/images/base/2.jpg" alt="image" class="field-base__item-img" loading="lazy"></div>

822<div class="field-base__item cnst-base-link" data-type="type2"><img src="assets/images/base/3.jpg" alt="image" class="field-base__item-img" loading="lazy"></div>

823<div class="field-base__item cnst-base-link" data-type="type3"><img src="assets/images/base/4.jpg" alt="image" class="field-base__item-img" loading="lazy"></div>

824<div class="field-base__item cnst-base-link" data-type="type4"><img src="assets/images/base/5.jpg" alt="image" class="field-base__item-img" loading="lazy"></div>

825<div class="field-base__item cnst-base-link" data-type="type5"><img src="assets/images/base/6.jpg" alt="image" class="field-base__item-img" loading="lazy"></div>

826</div>

827</div>

828<div class="field-edge">

829<div class="field-edge__title">Кромка для защиты торцов</div>

830<div class="field-edge__items">

831<div class="field-edge__item">

832<div class="field-edge__item-label">Тонкая кромка (дешевле)</div>

833<div class="field-edge__item-link"><img src="assets/images/edge-tiny.jpg" alt="edge" loading="lazy"></div>

834</div>

835<div class="field-edge__item">

836<div class="field-edge__item-label">Толстая кромка (лучше)</div>

837<div class="field-edge__item-link"><img src="assets/images/edge-fat.jpg" alt="edge" loading="lazy"></div>

838</div>

839</div>

840<div class="field-edge__descr">

841<div class="field-edge__select itc-select" id="select-1">

842<button type="button" class="itc-select__toggle" name="edge" value="Тонкая 0,4 мм, в цвет" data-select="toggle" data-index="1">Тонкая 0,4 мм, в цвет</button><div class="itc-select__dropdown"><ul class="itc-select__options">

843<li class="itc-select__option" data-select="option" data-value="Тонкая 0,4 мм, в цвет" data-index="0" data-color="">Тонкая 0,4 мм, в цвет</li>

844<li class="itc-select__option select__option_selected" data-select="option" data-value="Толстая 2мм, в цвет" data-index="1" data-color="">Толстая 2мм, в цвет</li>

845<li class="itc-select__option" data-select="option" data-value="Толстая 2мм, кромка серая для ДСП" data-index="2" data-color="gray">Толстая 2мм, кромка серая для ДСП</li>

846<li class="itc-select__option" data-select="option" data-value="Толстая 2мм, кромка черная для ДСП" data-index="3" data-color="black">Толстая 2мм, кромка черная для ДСП</li>

847<li class="itc-select__option" data-select="option" data-value="Толстая 2мм, кромка белая для ДСП" data-index="4" data-color="white">Толстая 2мм, кромка белая для ДСП</li>

848</ul></div>

849</div>

850<div class="field-edge__label">Если в качестве каркаса шкафа выбрана не ДСП, то пропустите этот пункт</div>

851</div>

852<button class="field-edge__link cnst-help-link" data-help-link-id="2">Как выбрать кромку и зачем она нужна?</button>

853</div>

854<div class="field-feedback">

855<div class="field-feedback__title">Особые пожелания</div>

856<div class="field-feedback__subtitle">Мы можем внести любые изменения в ваш заказ. Если вы хотите добавить какой-то комментарий к схеме или задать вопрос, то можете заполнить это поле в свободной форме.</div>

857<div class="field-feedback__list-title">Если одна из этих ситуаций относится к вашему заказу, то желательно указать об этом. Так мы сможем дать вам свои рекомендации по выбору материалов или учесть особенности при проектировании.</div>

858<ul class="field-feedback__list">

859<li class="field-feedback__list-item">1. Будет использоваться на улице.</li>

860<li class="field-feedback__list-item">2. Шкаф без зазора под потолком.</li>

861<li class="field-feedback__list-item">3. Будет использоваться на балконе.</li>

862<li class="field-feedback__list-item">4. Шкаф впритык к стене слева и справа.</li>

863<li class="field-feedback__list-item">5. Будет использоваться в ванной комнате или влажном помещении.</li>

864<li class="field-feedback__list-item">6. Будет подвешен, а не стоять на полу.</li>

865</ul>

866<textarea name="constructor-feedback" id="constructorFeedback" rows="6" class="field-feedback__textarea" placeholder="Ваш комментарий"></textarea>

867</div>

868</div></div>

869</div>

870</div>

871</div>

872<div class="popup-materials"><div class="popup-materials__content">

873<div class="popup-materials__title">

874 Материалы <button class="popup-materials__btn cnst-help-link">(подробнее)</button>

875</div>

876<button class="popup-materials__close hide-materials"></button><div class="popup-materials__box">

877<div class="popup-materials__box-title">

878 ЛДСП. Основные цвета

879 </div>

880<div class="popup-materials__items" data-material-type="skeleton">

881<div class="popup-materials__item">

882<a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый гладкий, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/white-sleek.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый гладкий, ЛДСП 16мм" data-depth="16">

<span>

883 Белый гладкий, ЛДСП 16мм

884 </span></a>

885</div>

886<div class="popup-materials__item">

887<a href="#" class="popup-materials__item-link cnst-texture-link" title="Серый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/grey.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Серый, ЛДСП 16мм" data-depth="16">

<span>

888 Серый, ЛДСП 16мм

889 </span></a>

890</div>

891<div class="popup-materials__item">

892<a href="#" class="popup-materials__item-link cnst-texture-link" title="Черный, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/black.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Черный, ЛДСП 16мм" data-depth="16">

<span>

893 Черный, ЛДСП 16мм

894 </span></a>

895</div>

896<div class="popup-materials__item">

897<a href="#" class="popup-materials__item-link cnst-texture-link" title="Бежевый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/beige.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Бежевый, ЛДСП 16мм" data-depth="16">

<span>

898 Бежевый, ЛДСП 16мм

899 </span></a>

900</div>

901<div class="popup-materials__item">

902<a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб Сонома светлый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/sonoma-oak-light.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб Сонома светлый, ЛДСП 16мм" data-depth="16">

<span>

903 Дуб Сонома светлый, ЛДСП 16мм

904 </span></a>

905</div>

906</div>

907</div>

908<div class="popup-materials__box">

909<div class="popup-materials__box-title">

910 ЛДСП. Дополнительные цвета

911 </div>

912<div class="popup-materials__items" data-material-type="skeleton">

913<div class="popup-materials__item">

914<a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый шагрень, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/white-shagreen.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый шагрень, ЛДСП 16мм" data-depth="16">

<span>

915 Белый шагрень, ЛДСП 16мм

916 </span></a>

917</div>

918<div class="popup-materials__item">

919<a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый, ЛДСП 22мм" data-depth="22">

<img src="assets/textures/white-sleek.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый, ЛДСП 22мм" data-depth="22">

<span>

920 Белый, ЛДСП 22мм

921 </span></a>

922</div>

923<div class="popup-materials__item">

924<a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый, ЛДСП 32мм, склееный" data-depth="32">

<img src="assets/textures/white-sleek.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый, ЛДСП 32мм, склееный" data-depth="32">

<span>

925 Белый, ЛДСП 32мм, склееный

926 </span></a>

927</div>

928<div class="popup-materials__item">

929<a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый, ЛДСП 38мм" data-depth="38">

<img src="assets/textures/white-sleek.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый, ЛДСП 38мм" data-depth="38">

<span>

930 Белый, ЛДСП 38мм

931 </span></a>

932</div>

933<div class="popup-materials__item">

934<a href="#" class="popup-materials__item-link cnst-texture-link" title="Другой цвет, ЛДСП 22мм" data-depth="22">

<img src="assets/textures/red.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Другой цвет, ЛДСП 22мм" data-depth="22">

<span>

935 Другой цвет, ЛДСП 22мм

936 </span></a>

937</div>

938<div class="popup-materials__item">

939<a href="#" class="popup-materials__item-link cnst-texture-link" title="Другой цвет, ЛДСП 32мм" data-depth="32">

<img src="assets/textures/red.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Другой цвет, ЛДСП 32мм" data-depth="32">

<span>

940 Другой цвет, ЛДСП 32мм

941 </span></a>

942</div>

943<div class="popup-materials__item">

944<a href="#" class="popup-materials__item-link cnst-texture-link" title="Аллюминий, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/aluminum.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Аллюминий, ЛДСП 16мм" data-depth="16">

<span>

945 Аллюминий, ЛДСП 16мм

946 </span></a>

947</div>

948<div class="popup-materials__item">

949<a href="#" class="popup-materials__item-link cnst-texture-link" title="Бодега светлый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/bodega-light.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Бодега светлый, ЛДСП 16мм" data-depth="16">

<span>

950 Бодега светлый, ЛДСП 16мм

951 </span></a>

952</div>

953<div class="popup-materials__item">

954<a href="#" class="popup-materials__item-link cnst-texture-link" title="Бодега темный, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/bodega-dark.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Бодега темный, ЛДСП 16мм" data-depth="16">

<span>

955 Бодега темный, ЛДСП 16мм

956 </span></a>

957</div>

958<div class="popup-materials__item">

959<a href="#" class="popup-materials__item-link cnst-texture-link" title="Бук, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/byk.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Бук, ЛДСП 16мм" data-depth="16">

<span>

960 Бук, ЛДСП 16мм

961 </span></a>

962</div>

963<div class="popup-materials__item">

964<a href="#" class="popup-materials__item-link cnst-texture-link" title="Венге, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/wenge.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Венге, ЛДСП 16мм" data-depth="16">

<span>

965 Венге, ЛДСП 16мм

966 </span></a>

967</div>

968<div class="popup-materials__item">

969<a href="#" class="popup-materials__item-link cnst-texture-link" title="Венге, ЛДСП 22мм" data-depth="22">

<img src="assets/textures/wenge.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Венге, ЛДСП 22мм" data-depth="22">

<span>

970 Венге, ЛДСП 22мм

971 </span></a>

972</div>

973<div class="popup-materials__item">

974<a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб молочный, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/oak-milk.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб молочный, ЛДСП 16мм" data-depth="16">

<span>

975 Дуб молочный, ЛДСП 16мм

976 </span></a>

977</div>

978<div class="popup-materials__item">

979<a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб молочный, ЛДСП 22мм" data-depth="22">

<img src="assets/textures/oak-milk.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб молочный, ЛДСП 22мм" data-depth="22">

<span>

980 Дуб молочный, ЛДСП 22мм

981 </span></a>

982</div>

983<div class="popup-materials__item">

984<a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб сонома светлый, ЛДСП 22мм" data-depth="22">

<img src="assets/textures/sonoma-oak-light.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб сонома светлый, ЛДСП 22мм" data-depth="22">

<span>

985 Дуб сонома светлый, ЛДСП 22мм

986 </span></a>

987</div>

988<div class="popup-materials__item">

989<a href="#" class="popup-materials__item-link cnst-texture-link" title="Клен, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/maple.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Клен, ЛДСП 16мм" data-depth="16">

<span>

990 Клен, ЛДСП 16мм

991 </span></a>

992</div>

993<div class="popup-materials__item">

994<a href="#" class="popup-materials__item-link cnst-texture-link" title="Орех экко, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/ecco-walnut.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Орех экко, ЛДСП 16мм" data-depth="16">

<span>

995 Орех экко, ЛДСП 16мм

996 </span></a>

997</div>

998<div class="popup-materials__item">

999<a href="#" class="popup-materials__item-link cnst-texture-link" title="Орех (гварнери), ЛДСП 16мм" data-depth="16">

<img src="assets/textures/gvarneri-walnut.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Орех (гварнери), ЛДСП 16мм" data-depth="16">

<span>

1000 Орех (гварнери), ЛДСП 16мм

1001 </span></a>

1002</div>

1003<div class="popup-materials__item">

1004<a href="#" class="popup-materials__item-link cnst-texture-link" title="Орех миланский, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/milan-walnut.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Орех миланский, ЛДСП 16мм" data-depth="16">

<span>

1005 Орех миланский, ЛДСП 16мм

1006 </span></a>

1007</div>

1008<div class="popup-materials__item">

1009<a href="#" class="popup-materials__item-link cnst-texture-link" title="Ясень Шимо темный, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/yasen-shimo-dark.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Ясень Шимо темный, ЛДСП 16мм" data-depth="16">

<span>

1010 Ясень Шимо темный, ЛДСП 16мм

1011 </span></a>

1012</div>

1013<div class="popup-materials__item">

1014<a href="#" class="popup-materials__item-link cnst-texture-link" title="Ясень Шимо светлый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/yasen-shimo-light.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Ясень Шимо светлый, ЛДСП 16мм" data-depth="16">

<span>

1015 Ясень Шимо светлый, ЛДСП 16мм

1016 </span></a>

1017</div>

1018<div class="popup-materials__item">

1019<a href="#" class="popup-materials__item-link cnst-texture-link" title="Выбеленное дерево, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/bleached-wood.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Выбеленное дерево, ЛДСП 16мм" data-depth="16">

<span>

1020 Выбеленное дерево, ЛДСП 16мм

1021 </span></a>

1022</div>

1023<div class="popup-materials__item">

1024<a href="#" class="popup-materials__item-link cnst-texture-link" title="Вишня оксфорд, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/cherry-oxford.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Вишня оксфорд, ЛДСП 16мм" data-depth="16">

<span>

1025 Вишня оксфорд, ЛДСП 16мм

1026 </span></a>

1027</div>

1028<div class="popup-materials__item">

1029<a href="#" class="popup-materials__item-link cnst-texture-link" title="Лайм, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/lime.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Лайм, ЛДСП 16мм" data-depth="16">

<span>

1030 Лайм, ЛДСП 16мм

1031 </span></a>

1032</div>

1033<div class="popup-materials__item">

1034<a href="#" class="popup-materials__item-link cnst-texture-link" title="Фисташковый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/pistachio.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Фисташковый, ЛДСП 16мм" data-depth="16">

<span>

1035 Фисташковый, ЛДСП 16мм

1036 </span></a>

1037</div>

1038<div class="popup-materials__item">

1039<a href="#" class="popup-materials__item-link cnst-texture-link" title="Красный, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/red.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Красный, ЛДСП 16мм" data-depth="16">

<span>

1040 Красный, ЛДСП 16мм

1041 </span></a>

1042</div>

1043<div class="popup-materials__item">

1044<a href="#" class="popup-materials__item-link cnst-texture-link" title="Фиолетовый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/purple.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Фиолетовый, ЛДСП 16мм" data-depth="16">

<span>

1045 Фиолетовый, ЛДСП 16мм

1046 </span></a>

1047</div>

1048<div class="popup-materials__item">

1049<a href="#" class="popup-materials__item-link cnst-texture-link" title="Желтый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/yellow.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Желтый, ЛДСП 16мм" data-depth="16">

<span>

1050 Желтый, ЛДСП 16мм

1051 </span></a>

1052</div>

1053<div class="popup-materials__item">

1054<a href="#" class="popup-materials__item-link cnst-texture-link" title="Синий, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/blue.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Синий, ЛДСП 16мм" data-depth="16">

<span>

1055 Синий, ЛДСП 16мм

1056 </span></a>

1057</div>

1058<div class="popup-materials__item">

1059<a href="#" class="popup-materials__item-link cnst-texture-link" title="Оранжевый, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/orange.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Оранжевый, ЛДСП 16мм" data-depth="16">

<span>

1060 Оранжевый, ЛДСП 16мм

1061 </span></a>

1062</div>

1063<div class="popup-materials__item">

1064<a href="#" class="popup-materials__item-link cnst-texture-link" title="ЛДСП 16мм, другой цвет (срок уточним)" data-depth="16">

<img src="assets/textures/red.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="ЛДСП 16мм, другой цвет (срок уточним)" data-depth="16">

<span>

1065 ЛДСП 16мм, другой цвет (срок уточним)

1066 </span></a>

1067</div>

1068<div class="popup-materials__item">

1069<a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый влагостойкий, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/white-sleek.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Белый влагостойкий, ЛДСП 16мм" data-depth="16">

<span>

1070 Белый влагостойкий, ЛДСП 16мм

1071 </span></a>

1072</div>

1073<div class="popup-materials__item">

1074<a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб Вотан, ЛДСП 16мм" data-depth="16">

<img src="assets/textures/oak-wotan.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Дуб Вотан, ЛДСП 16мм" data-depth="16">

<span>

1075 Дуб Вотан, ЛДСП 16мм

1076 </span></a>

1077</div>

1078</div>

1079</div>

1080<div class="popup-materials__box">

1081<div class="popup-materials__box-title">

1082 МДФ

1083 </div>

1084<div class="popup-materials__items" data-material-type="skeleton">

1085<div class="popup-materials__item">

1086<a href="#" class="popup-materials__item-link cnst-texture-link" title="покрыт плёнкой на выбор, МДФ 16мм" data-depth="16">

<img src="assets/textures/red.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="покрыт плёнкой на выбор, МДФ 16мм" data-depth="16">

<span>

1087 покрыт плёнкой на выбор, МДФ 16мм

1088 </span></a>

1089</div>

1090<div class="popup-materials__item">

1091<a href="#" class="popup-materials__item-link cnst-texture-link" title="Натуральный без покрытия, МДФ 16мм" data-depth="16">

<img src="assets/textures/mdf-nature.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Натуральный без покрытия, МДФ 16мм" data-depth="16">

<span>

1092 Натуральный без покрытия, МДФ 16мм

1093 </span></a>

1094</div>

1095<div class="popup-materials__item">

1096<a href="#" class="popup-materials__item-link cnst-texture-link" title="Покрашенный, МДФ 16мм" data-depth="16">

<img src="assets/textures/red.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Покрашенный, МДФ 16мм" data-depth="16">

<span>

1097 Покрашенный, МДФ 16мм

1098 </span></a>

1099</div>

1100</div>

1101</div>

1102<div class="popup-materials__box">

1103<div class="popup-materials__box-title">

1104 Массив дерева натуральный

1105 </div>

1106<div class="popup-materials__items" data-material-type="skeleton">

1107<div class="popup-materials__item">

1108<a href="#" class="popup-materials__item-link cnst-texture-link" title="массив сосны 22мм сращенный, двухсторонний, без покраски" data-depth="22">

<img src="assets/textures/solid-pine-without-painting.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="массив сосны 22мм сращенный, двухсторонний, без покраски" data-depth="22">

<span>

1109 массив сосны 22мм сращенный, двухсторонний, без покраски

1110 </span></a>

1111</div>

1112<div class="popup-materials__item">

1113<a href="#" class="popup-materials__item-link cnst-texture-link" title="массив сосны 30мм сращенный, двухсторонний, без покраски" data-depth="30">

<img src="assets/textures/solid-pine-without-painting.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="массив сосны 30мм сращенный, двухсторонний, без покраски" data-depth="30">

<span>

1114 массив сосны 30мм сращенный, двухсторонний, без покраски

1115 </span></a>

1116</div>

1117<div class="popup-materials__item">

1118<a href="#" class="popup-materials__item-link cnst-texture-link" title="массив сосны 40мм сращенный, двухсторонний, без покраски" data-depth="40">

<img src="assets/textures/solid-pine-without-painting.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="массив сосны 40мм сращенный, двухсторонний, без покраски" data-depth="40">

<span>

1119 массив сосны 40мм сращенный, двухсторонний, без покраски

1120 </span></a>

1121</div>

1122</div>

1123</div>

1124<div class="popup-materials__box">

1125<div class="popup-materials__box-title">

1126 Фанера

1127 </div>

1128<div class="popup-materials__items" data-material-type="skeleton">

1129<div class="popup-materials__item">

1130<a href="#" class="popup-materials__item-link cnst-texture-link" title="Фанера 15мм, без лака (до 1500мм)" data-depth="15">

<img src="assets/textures/fanera-without-lak.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Фанера 15мм, без лака (до 1500мм)" data-depth="15">

<span>

1131 Фанера 15мм, без лака (до 1500мм)

1132 </span></a>

1133</div>

1134<div class="popup-materials__item">

1135<a href="#" class="popup-materials__item-link cnst-texture-link" title="Фанера 20мм, без лака (до 1500мм)" data-depth="20">

<img src="assets/textures/fanera-without-lak.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Фанера 20мм, без лака (до 1500мм)" data-depth="20">

<span>

1136 Фанера 20мм, без лака (до 1500мм)

1137 </span></a>

1138</div>

1139<div class="popup-materials__item">

1140<a href="#" class="popup-materials__item-link cnst-texture-link" title="Фанера 15мм, бесцветный лак/масло" data-depth="15">

<img src="assets/textures/fanera-transparent-lak-maslo.jpg" alt="image" class="field-base__item-img" loading="lazy"></a><a href="#" class="popup-materials__item-link cnst-texture-link" title="Фанера 15мм, бесцветный лак/масло" data-depth="15">

<span>

1141 Фанера 15мм, бесцветный лак/масло

1142 </span></a>

1143</div>

1144</div>

1145</div>

1146</div></div>

1147<div class="help-popup__wrapper"><div class="help-popup">

1148<button class="help-popup__btn">&#10005;</button><div class="help-popup__title"></div>

1149<div class="help-popup__text"></div>

1150</div></div>

1151<div class="popup-submit__wrapper"><div class="popup-submit">

1152<button class="popup-submit__close-btn">&#10005;</button>

<div class="popup-submit__title">Ваши контакты</div>

1153<p class="popup-submit__text">

1154 Мы свяжемся с вами в ближайшее время, чтобы уточнить детали или выслать ссылку на оплату!

1155 </p>

1156<div id="popup-submit-form"><form action="#" class="popup-submit__form">

1157<input name="name" class="popup-submit__input popup-submit__name" placeholder="введите имя" required="true">

<input name="tel" class="popup-submit__input popup-submit__tel" placeholder="введите телефон" required="true"><button type="submit" class="popup-submit__send-btn">Отправить</button>

1158</form></div>

1159</div></div>

1160<script src="./js/nouislider.min.js"></script><script src="./js/custom-select.js"></script><script src="./js/three2.js"></script><script src="./js/canvas.min.js"></script><script src="./js/main.min.js"></script><script src="./js/calculate-cost.js"></script>

<script type="text/javascript">

1161 $(window).on('load', function() {

1162 var startMode = '';

1163 $('a.construct-link-wrapper').on('click', function(e){

1164 e.stopPropagation();

1165 });

1166

1167 if(startMode && startMode !== '') {

1168 var $targetDiv = $('.constructor-selection__img-bx[data-selection="' + startMode + '"]');

1169 if($targetDiv.length) {

1170 $targetDiv.find('a').on('click', function(e){ e.preventDefault(); });

1171 $targetDiv.trigger('click');

1172 $('.constructor-selection').addClass('hidden-force');

1173 $('.constructor-steps').addClass('hidden-force');

1174 $('.constructor-text-container').addClass('hidden-force');

1175 window.dispatchEvent(new Event('resize'));

1176 }

1177 }

1178 });

1179</script><script>

1180/* === ЗАЩИТА H1 ОТ ПЕРЕЗАПИСИ (SEO FIX) - ЗАПУСКАЕМ СРАЗУ === */

1181(function() {

1182 var targetH1 = null;

1183 var originalText = "";

1184

1185 // Функция охраны

1186 function protectH1() {

1187 if (!targetH1) {

1188 targetH1 = document.querySelector('.constructor-title');

1189 if (targetH1) originalText = targetH1.innerText;

1190 }

1191

1192 if (targetH1 && targetH1.innerText !== originalText) {

1193 targetH1.innerText = originalText;

1194 }

1195

1196 requestAnimationFrame(protectH1);

1197 }

1198

1199 // Запускаем цикл проверки сразу

1200 requestAnimationFrame(protectH1);

1201})();

1202

1203/* === ФИНАЛЬНЫЙ ПАТЧ V24: ALL FIXED === */

1204document.addEventListener("DOMContentLoaded", function() {

1205

1206 // 1. НАСТРОЙКА ГРАФИКИ

1207 setTimeout(function() {

1208 if (typeof renderer !== 'undefined') {

1209 var pixelRatio = window.devicePixelRatio || 1;

1210 renderer.setPixelRatio(Math.min(pixelRatio, 2));

1211 if(renderer.shadowMap) renderer.shadowMap.enabled = false;

1212

1213 var width = document.querySelector('.canvas-wrapper').clientWidth;

1214 var height = document.querySelector('.canvas-wrapper').clientHeight;

1215 renderer.setSize(width, height);

1216 }

1217

1218 // 2. ОПТИМИЗАЦИЯ С ФЛАГОМ

1219 if (typeof THREE !== 'undefined' && THREE.Raycaster) {

1220 var originalIntersect = THREE.Raycaster.prototype.intersectObjects;

1221 var lastCall = 0;

1222 var cachedResult = [];

1223 window.forceRaycast = false;

1224

1225 THREE.Raycaster.prototype.intersectObjects = function(objects, recursive) {

1226 var now = Date.now();

1227 if (window.forceRaycast || now - lastCall > 40) {

1228 lastCall = now;

1229 cachedResult = originalIntersect.call(this, objects, recursive);

1230 window.forceRaycast = false;

1231 return cachedResult;

1232 }

1233 return cachedResult;

1234 };

1235 }

1236

1237 // 3. ФИКС ТЕКСТУРЫ

1238 var activeMaterial = document.querySelector('.field-style__item-link.active');

1239 if(activeMaterial) {

1240 setTimeout(function(){ activeMaterial.click(); }, 500);

1241 }

1242

1243 }, 1000);

1244

1245 // 4. UI: ФИКС ВЫДЕЛЕНИЯ ИКОНОК

1246 $(document).on('click', '.field-fill__item', function() {

1247 $(this).siblings().removeClass('active');

1248 $(this).addClass('active');

1249 });

1250

1251 // 5. МОБИЛЬНЫЙ КЛИК

1252 var canvasWrapper = document.querySelector('.canvas-wrapper');

1253 if (canvasWrapper) {

1254 var touchStartTime, startX, startY;

1255

1256 canvasWrapper.addEventListener('touchstart', function(e) {

1257 touchStartTime = Date.now();

1258 startX = e.touches[0].clientX;

1259 startY = e.touches[0].clientY;

1260 }, {passive: true});

1261

1262 canvasWrapper.addEventListener('touchend', function(e) {

1263 var diffTime = Date.now() - touchStartTime;

1264 var diffX = Math.abs(e.changedTouches[0].clientX - startX);

1265 var diffY = Math.abs(e.changedTouches[0].clientY - startY);

1266

1267 if (e.target.tagName !== 'CANVAS') return;

1268

1269 if (diffTime < 400 && diffX < 10 && diffY < 10) {

1270 e.preventDefault();

1271

1272 if (typeof intersectObjects !== 'undefined') {

1273 intersectObjects.forEach(function(obj) {

1274 if(obj.material && obj.material.opacity > 0) {

1275 obj.material.opacity = 0;

1276 }

1277 });

1278 }

1279

1280 if (typeof onPointerMove === 'function') {

1281 onPointerMove({

1282 clientX: e.changedTouches[0].clientX,

1283 clientY: e.changedTouches[0].clientY

1284 });

1285 }

1286

1287 window.forceRaycast = true;

1288 if (window.intersections) window.intersections();

1289

1290 setTimeout(function(){

1291 var clickEvent = new MouseEvent('click', {

1292 view: window,

1293 bubbles: true,

1294 cancelable: true,

1295 clientX: e.changedTouches[0].clientX,

1296 clientY: e.changedTouches[0].clientY

1297 });

1298 canvasWrapper.dispatchEvent(clickEvent);

1299 window.forceRaycast = true;

1300 }, 40);

1301 }

1302 }, {passive: false});

1303 }

1304

1305 // 6. ФИКС ПУТЕЙ КАРТИНОК

1306 if (typeof THREE !== 'undefined' && THREE.TextureLoader) {

1307 var originalLoad = THREE.TextureLoader.prototype.load;

1308 THREE.TextureLoader.prototype.load = function(url, onLoad, onProgress, onError) {

1309 if (typeof url === 'string' && url.indexOf('assets/') > -1) {

1310 var cleanPath = url.replace(/^(\.\/|\/)+/, '');

1311 url = '/' + cleanPath;

1312 }

1313 return originalLoad.call(this, url, onLoad, onProgress, onError);

1314 };

1315 }

1316

1317 // 7. ФИКС ЗАКРЫВАЮЩИХСЯ ДВЕРЕЙ (АГРЕССИВНЫЙ)

1318 if (typeof CFurnitureDesigner !== 'undefined') {

1319 var originalUpdate = CFurnitureDesigner.prototype.update;

1320 CFurnitureDesigner.prototype.update = function() {

1321 var wasOpened = this.doorsIsOpened;

1322

1323 originalUpdate.apply(this, arguments);

1324

1325 if (wasOpened) {

1326 this.doorsIsOpened = true;

1327 var self = this;

1328 setTimeout(function(){

1329 if((self.type === 'closet' || self.type === 'wardrobe' || self.type === 'dressers') && !self.doorsMoving) {

1330 self.doorsIsOpened = false;

1331 self.toggleOpenDoors(self);

1332 }

1333 }, 150);

1334 }

1335 };

1336 }

1337});

1338</script>

1339</div></div></div></div></div>

1340<footer class="footer-m"><div class="x_menu_list">

1341<div class="x_menu_col footer-logo-col">

1342<div itemscope="" itemtype="https://schema.org/ImageObject" class="footer-logo-cell">

1343<meta itemprop="url" content="/assets/img/logo-w.png">

1344<a href="https://komodmsk.ru"><img src="/assets/img/logo-w.png" alt="КомодМск" title="КомодМск" width="120" height="17" itemprop="url" loading="lazy" class="footer-logo"></a>

1345</div>

1346<div class="footer-time">10:00 — 20:00</div>

1347<div class="copy" itemscope="" itemtype="https://schema.org/CreativeWork">

1348© <span itemprop="copyrightHolder"> КомодМск</span> <span itemprop="copyrightYear">2002–2026</span>

1349</div>

1350</div>

1351<div class="x_menu_col">

1352<div class="footer-phone">

1353<img src="/assets/img/phone.svg" width="18" height="16" alt="Телефон" loading="lazy"><a href="tel:88002002327" title="Бесплатно по России">8 800 200–23–27</a>

1354</div>

1355<div class="footer-phone">

1356<img src="/assets/img/phone.svg" width="18" height="16" alt="Телефон" loading="lazy"><a href="tel:+74994033617" title="Москва">+7 (499) 403–36–17</a>

1357</div>

1358<div class="footer-phone">

1359<img src="/assets/img/phone.svg" width="18" height="16" alt="Телефон" loading="lazy"><a href="tel:+78122411743" title="Санкт-Петербург">+7 (812) 241–17–43</a>

1360</div>

1361<div class="footer-email">

1362<img src="/assets/img/email.svg" width="18" height="16" alt="Email" loading="lazy"><a href="mailto:">zakaz@komodmsk.ru</a>

1363</div>

1364<div class="footer-phone">

1365<img src="/assets/img/wa.svg" width="18" height="16" alt="WhatsApp" loading="lazy"><a href="https://api.whatsapp.com/send?phone=79915674335" rel="nofollow">Написать в WhatsApp</a>

1366</div>

1367<div class="footer-phone">

1368<img src="/assets/img/tg.svg" width="18" height="16" alt="Telegram" loading="lazy"><a href="https://t.me/+79915674335" rel="nofollow">Написать в Telegram</a>

1369</div>

1370</div>

1371<ul class="x_menu_col" itemscope="" itemtype="https://schema.org/SiteNavigationElement">

1372<li class="x_menu_title" itemprop="name">Каталог</li>

1373<li class="x_menu_item" itemprop="name">

<a href="/cat/sale" rel="nofollow">Распродажа</a></li>

1374<li class="x_menu_item" itemprop="name">

<a href="/cat/kuhny" rel="nofollow">Кухни</a></li>

1375<li class="x_menu_item" itemprop="name">

<a href="/cat/komody" rel="nofollow">Комоды</a></li>

1376<li class="x_menu_item" itemprop="name">

<a href="/cat/tumby" rel="nofollow">Тумбы</a></li>

1377<li class="x_menu_item" itemprop="name">

<a href="/cat/obuvnicy" rel="nofollow">Обувницы</a></li>

1378<li class="x_menu_item" itemprop="name">

<a href="/cat/prihozhie" rel="nofollow">Прихожие</a></li>

1379<li class="x_menu_item" itemprop="name">

<a href="/cat/stoly" rel="nofollow">Столы</a></li>

1380<li class="x_menu_item" itemprop="name">

<a href="/cat/chairs" rel="nofollow">Стулья</a></li>

1381<li class="x_menu_item" itemprop="name">

<a href="/cat/shkafy" rel="nofollow">Шкафы</a></li>

1382<li class="x_menu_item" itemprop="name">

<a href="/cat/stellazhi" rel="nofollow">Стеллажи</a></li>

1383<li class="x_menu_item" itemprop="name">

<a href="/cat/stenki" rel="nofollow">Стенки</a></li>

1384<li class="x_menu_item" itemprop="name">

<a href="/cat/mebel-dlya-spalni" rel="nofollow">Спальни</a></li>

1385</ul>

1386<ul class="x_menu_col" itemscope="" itemtype="https://schema.org/SiteNavigationElement">

1387<li class="x_menu_title" itemprop="name">Информация</li>

1388<li class="x_menu_item" itemprop="name"><a href="/doc/about" itemprop="url">О компании</a></li>

1389<li class="x_menu_item" itemprop="name"><a href="/faq" itemprop="url">Вопросы и ответы</a></li>

1390<li class="x_menu_item" itemprop="name"><a href="/doc/vozvrat-obmen" itemprop="url">Возврат / обмен / гарантия</a></li>

1391<li class="x_menu_item" itemprop="name"><a href="/doc/oplata" itemprop="url">Как оплатить?</a></li>

1392<li class="x_menu_item" itemprop="name"><a href="/doc/dostavka/moskva-i-oblast" itemprop="url">Условия доставки и сборки</a></li>

1393<li class="x_menu_item" itemprop="name"><a href="/doc/contacts" itemprop="url">Контакты</a></li>

1394<li class="x_menu_item" itemprop="name"><a href="/oferta" itemprop="url">Публичная оферта</a></li>

1395</ul>

1396<ul class="x_menu_col" itemscope="" itemtype="https://schema.org/SiteNavigationElement">

1397<li class="x_menu_title" itemprop="name">Полезное</li>

1398<li class="x_menu_item" itemprop="name"><a href="/articles">Статьи</a></li>

1399<li class="x_menu_item" itemprop="name"><a href="/materials">Материалы</a></li>

1400<li class="x_menu_item" itemprop="name"><a href="/textures">Текстуры</a></li>

1401<li class="x_menu_item" itemprop="name"><a href="/series">Серии мебели</a></li>

1402<li class="x_menu_item" itemprop="name"><a href="/lacobel">Стекло Lacobel</a></li>

1403</ul>

1404<div class="x_menu_col"><div class="x-sn">

1405<a href="https://vk.com/komodmsk_ru" target="_blank" rel="nofollow noreferrer noopener"><img src="/assets/img/vk.svg" width="36" height="36" alt="КомодМск Вконтакте" title="КомодМск Вконтакте" loading="lazy" class="sn-img"></a>

<a href="https://ok.ru/komodmsk" target="_blank" rel="nofollow noreferrer noopener"><img src="/assets/img/ok.svg" width="36" height="36" alt="КомодМск в Одноклассниках" title="КомодМск в Одноклассниках" loading="lazy" class="sn-img"></a>

<a href="https://www.youtube.com/@komodmsk" target="_blank" rel="nofollow noreferrer noopener"><img src="/assets/img/yt.svg" width="36" height="36" alt="КомодМск на Ютубе" title="КомодМск на Ютубе" loading="lazy" class="sn-img"></a>

<a href="https://www.instagram.com/komodmsk.ru/" target="_blank" rel="nofollow noreferrer noopener"><img src="/assets/img/insta.svg" width="36" height="36" alt="КомодМск в Инстаграме" title="КомодМск в Инстаграме" loading="lazy" class="sn-img"></a>

<a href="https://dzen.ru/komodmsk.ru" target="_blank" rel="nofollow noreferrer noopener"><img src="/assets/img/zn.svg" width="36" height="36" alt="КомодМск в Дзене" title="КомодМск в Дзене" loading="lazy" class="sn-img"></a>

1406</div></div>

1407</div></footer><div id="helper"></div>

1408<div id="message" style="display: none; text-align: center;"><div id="messageText"></div></div>

1409<div id="after-order" class="after-order" style="display:none;width:300px">

1410<a href="/basket/list" rel="nofollow">

1411 Перейти в корзину

1412 </a><br><a href="#" class="simplemodal-close" rel="nofollow">

1413 Продолжить покупки

1414 </a>

1415</div>

1416<div style="display:none;" class="item-colors-select-modal">

1417<div class="item-colors-select-modal-content">

<center style="font-weight: 500;margin-top: 20px;font-size: 20px;">Товар добавлен в корзину!</center></div>

1418<div class="error"></div>

1419<br><br><div class="modal-close-btn" onclick="Basket.hideActionsForm();return false;"></div>

1420<noindex><div class="f-l-h">

1421<button type="button" onclick="Basket.addAndOpenCart();return false;" class="btn btn-yellow-inline btn-lg">

1422 Оформить заказ

1423 </button><button type="button" onclick="Basket.addAndHideActionsForm();return false;" class="btn btn-grey btn-lg">

1424 Продолжить покупки

1425 </button>

1426</div></noindex>

1427</div>

1428<div id="msgBox" onclick="$(this).hide();">...</div>

1429<div style="display:none;" id="js-popup-container"></div>

1430<div href="#" class="scrollToTop" title="В начало"></div>

1431<div id="note-content"></div>

1432<div class="modal fade out" id="modal-main" tabindex="-1" role="dialog"><div class="modal-dialog" role="document"><div class="modal-content"></div></div></div>

1433<script src="/assets/libs/owl.carousel.min.js"></script><script src="/assets/libs/select2.min.js"></script><script>

1434 if (typeof ymaps === 'undefined') {

1435 var ymaps = {

1436 ready: function(callback) {

1437 }

1438 };

1439 }

1440 </script><script src="/assets/build/build.js?28648"></script><script>

1441 (function() {

1442 function init() {

1443 var images = document.getElementsByTagName('img');

1444

1445 function loadVisible() {

1446 for (var i = 0; i < images.length; i++) {

1447 var img = images[i];

1448 var dataSrc = img.getAttribute('data-src');

1449

1450 if (!dataSrc) continue;

1451 var rect = img.getBoundingClientRect();

1452 if (rect.top >= 0 && rect.left >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight)) {

1453 img.src = dataSrc;

1454 img.removeAttribute('data-src');

1455 }

1456 }

1457 }

1458

1459 if (window.addEventListener) {

1460 window.addEventListener('scroll', loadVisible);

1461 window.addEventListener('resize', loadVisible);

1462 window.addEventListener('load', loadVisible);

1463 } else {

1464 window.attachEvent('onscroll', loadVisible);

1465 window.attachEvent('onload', loadVisible);

1466 }

1467

1468 loadVisible();

1469 }

1470 init();

1471 })();

1472 </script><script src="/assets/js/shop.js"></script><script src="/assets/js/cardColors.min.js"></script><script src="/assets/js/modules/basket.js"></script><script src="/assets/build/newkm.js"></script><script>

1473 (function ($) {

1474 var GEO = {

1475 init: function () {

1476 GEO.$modal = window.Modal && new Modal(

1477 '.modal-container',

1478 { small: true }

1479 );

1480

1481 GEO.openCityPopupClickHandler = function (e) {

1482 e.preventDefault();

1483 e.stopPropagation();

1484 requestAnimationFrame(GEO.openCityPopup);

1485 return false;

1486 };

1487

1488 GEO.collectElements();

1489

1490 GEO.$input = null;

1491 GEO.region = "Москва";

1492 GEO.city = "Москва";

1493 GEO.data = {

1494 "utm_param_name": "utm_label",

1495 "phones": {

1496 "default": "+7 (499) 403-36-17",

1497 "region": {

1498 "Санкт-Петербург и Ленинградская область": "+7 (812) 241-17-43",

1499 "Санкт-Петербург": "+7 (812) 241-17-43",

1500 "Ленинградская область": "+7 (499) 403-36-17",

1501 "Москва и Московская область": "+7 (499) 403-36-17",

1502 "Москва": "+7 (499) 403-36-17",

1503 "Московская область": "+7 (499) 403-36-17"

1504 },

1505 "utm": {

1506 "test_test_1": "+7 (495) 777-77-77",

1507 "test_test_2": "+7 (812) 777-77-77"

1508 }

1509 }

1510};

1511 GEO.utm = "";

1512 GEO.needsClientSetup = "yes";

1513 GEO.updateDOM();

1514

1515 if (GEO.data && GEO.region) {

1516 GEO.updateDOM();

1517 }

1518 /** if (GEO.needsClientSetup == 'yes') { */

1519 if (false) {

1520 ymaps.ready(function () {

1521 if (!ymaps.geolocation) {

1522 console.error('Не подключен ymaps.geolocation');

1523 return;

1524 }

1525 GEO.getYandex();

1526 setTimeout(GEO.getAuto.bind(GEO), 2000);

1527 });

1528 }

1529 },

1530

1531 getAuto: function () {

1532 ymaps.geolocation.get({

1533 provider: 'auto',

1534 }).then(function (res) {

1535 return ymaps.geocode(res.geoObjects.get(0).geometry.getCoordinates());

1536 })

1537 .then(function (res) {

1538 var aa = res.geoObjects.get(0).getAdministrativeAreas();

1539 var l = res.geoObjects.get(0).getLocalities();

1540 return {

1541 region: aa && aa[ 0 ] ? aa[ 0 ] : null,

1542 city: l && l[ 0 ] ? l[ 0 ] : false

1543 };

1544 })

1545 .then(function (data) {

1546 var region = data.region;

1547 var city = data.city;

1548 if (city && typeof region != 'undefined') {

1549 if (GEO.region !== region || GEO.city !== city) {

1550 GEO.region = region;

1551 GEO.city = city;

1552 GEO.updateDOM();

1553 var reload = false;

1554 GEO.updateGeo(GEO.region, GEO.city, reload);

1555 }

1556 }

1557 });

1558 },

1559

1560 getYandex: function () {

1561 ymaps.geolocation.get({

1562 provider: 'yandex',

1563 autoReverseGeocode: false

1564 })

1565 .then(function (res) {

1566 return ymaps.geocode(res.geoObjects.get(0).geometry.getCoordinates());

1567 })

1568 .then(function (res) {

1569 var aa = res.geoObjects.get(0).getAdministrativeAreas();

1570 var l = res.geoObjects.get(0).getLocalities();

1571 return {

1572 region: aa && aa[ 0 ] ? aa[ 0 ] : null,

1573 city: l && l[ 0 ] ? l[ 0 ] : false

1574 };

1575 })

1576 .then(function (data) {

1577 var region = data.region;

1578 var city = data.city;

1579 if (city && typeof region != 'undefined') {

1580 GEO.region = region;

1581 GEO.city = city;

1582 GEO.updateDOM();

1583 var reload = false;

1584 GEO.updateGeo(GEO.region, GEO.city, reload);

1585 }

1586 })

1587 .catch(function (err) {

1588 if(err)console.error(err);

1589 });

1590 },

1591

1592 collectElements: function () {

1593 GEO.$el = $('.city-chooser');

1594 GEO.$el.off('click', GEO.openCityPopupClickHandler);

1595 GEO.$el.on('click', GEO.openCityPopupClickHandler);

1596 GEO.$city = $('.city-chooser__city');

1597 GEO.$region = $('.js-region');

1598 GEO.$phone = $('.js-phone');

1599 },

1600

1601 openCityPopup: function () {

1602 $.get('/ajax.handler.php?location', function (data) {

1603 requestAnimationFrame(function () {

1604

1605 $('#modal-main .modal-content').html(data);

1606 $('#modal-main').modal('show');

1607

1608 GEO.$input = $('#cityChooserInput');

1609 GEO.$input.focus();

1610 requestAnimationFrame(function () {

1611 GEO.$input.focus();

1612 });

1613 });

1614 });

1615 },

1616

1617 setCity: function (city) {

1618 GEO.city = city;

1619 GEO.updateCity();

1620 },

1621

1622 saveCity: function (city) {

1623 $.post('/ajax.handler.php', {

1624 action: 'setCity',

1625 city: city

1626 }, function (data) {

1627 if (data == 'success') {

1628 GEO.setCity(city);

1629 GEO.$modal.close();

1630 } else {

1631 alert('Что-то пошло не так. Попробуйте другой город.');

1632 }

1633 });

1634 },

1635

1636 /**

1637 * Обновить DOM согласно текущим данным.

1638 */

1639 updateDOM: function () {

1640 GEO.setPhone(GEO.data, GEO.region, GEO.utm);

1641 GEO.updateCity();

1642 },

1643

1644 /**

1645 * Отобразить город в DOM.

1646 */

1647 updateCity: function () {

1648 GEO.$city.html(GEO.city);// + ' (' + GEO.region + ')');

1649 if (GEO.region) {

1650 GEO.$city.attr('title', GEO.region);

1651 }

1652 },

1653

1654 selectGeo: function (region, city) {

1655 GEO._region = region;

1656 GEO._city = city;

1657 },

1658

1659 updateGeo: function (region, city) {

1660 region = region || GEO._region;

1661 city = city || GEO._city;

1662 if (!city) {

1663 return;

1664 }

1665 $.post('/ajax.handler.php', {

1666 action: 'setGeo',

1667 region: region,

1668 city: city,

1669 }, function (data) {

1670 if (data == 'success') {

1671 GEO.setRegion(region);

1672 GEO.setCity(city);

1673 GEO.updateInfoFromServer();

1674 GEO.closePopup();

1675

1676 var catid = $('.catid').text();

1677 if (catid && catid != 0) {

1678 $.ajax({

1679 url: '/location/index.php',

1680 data: {itemId : catid, quant: Number($('.quant').text())},

1681 success: function(data){

1682 //var deliveryrespons = data != "" ? $.parseJSON(data) : {};

1683 var deliveryrespons = $.parseJSON(data);

1684 if (deliveryrespons.nopek != 'Y') {

1685 $('.topdelivery').empty().append(deliveryrespons.delivery_varchar_nopek);

1686 $('.middelivery').empty().append(deliveryrespons.delivery_text_nopek);

1687 }

1688 }

1689 });

1690 }

1691

1692 } else {

1693 console.error('Что-то пошло не так.');

1694 }

1695 });

1696 },

1697

1698 /**

1699 * Получает с сервера текущую информацию

1700 * по городу, региону и т.д.

1701 *

1702 * Нужно вызывать после установки на клиенте местоположния, т.к.

1703 * сгенерированная на сервере информация не может быть обновлена

1704 * только на клиенте и требует дополнительного запроса.

1705 */

1706 updateInfoFromServer: function (section, data) {

1707 $.post('/ajax.handler.php', {

1708 action: 'getGeoInfo',

1709 section: section || 'main',

1710 data: data || {},

1711 }, function (data) {

1712 });

1713

1714 var url = window.location.href;

1715 $.post(url, {}, function (data) {

1716 $.each([

1717 'deliveryBlock',

1718 'payments',

1719 'ratingSmall',

1720 'services',

1721 ], function (index, type) {

1722 var $container = $('.js-' + type + '-container');

1723 if (data[ type ] && $container.length) {

1724 $container.replaceWith(data[ type ]);

1725 }

1726 });

1727

1728 /**

1729 * После обновления DOM

1730 * надо заново собрать элементы

1731 */

1732 GEO.collectElements();

1733 GEO.updateDOM();

1734 if (window.CheckOnScrollElements) {

1735 /**

1736 * После обновления сразу проверем, есть ли

1737 * зависимые от скролла элементы.

1738 */

1739 CheckOnScrollElements();

1740 }

1741

1742 /**

1743 * Шлем event о необходимости поменять

1744 * состояние все зависимых компонентов.

1745 */

1746 $('body').trigger('geo-changed');

1747 })

1748 },

1749

1750 closePopup: function () {

1751 GEO.$input = null;

1752 $('#modal-main').modal('hide');

1753 },

1754

1755 setPhone: function (data, region, utm) {

1756 var phone = data.phones.default;

1757 if (utm && data.phones && data.phones.utm) {

1758 for (var i in data.phones.utm) {

1759 if (i == utm) {

1760 phone = data.phones.utm[ i ];

1761 GEO.$phone.attr('href', 'tel:' + phone)

1762 .text(phone);

1763 return;

1764 }

1765 }

1766 }

1767 if (region && data.phones && data.phones.region) {

1768 for (var i in data.phones.region) {

1769 var r = i.toLowerCase();

1770 if (r == region.toLowerCase()) {

1771 phone = data.phones.region[ i ];

1772 GEO.$phone.attr('href', 'tel:' + phone)

1773 .text(phone);

1774 return;

1775 }

1776 }

1777 }

1778 GEO.$phone.attr('href', 'tel:' + phone)

1779 .text(phone);

1780 },

1781

1782 setRegion: function (region) {

1783 GEO.region = region;

1784 GEO.$region.text(region);

1785 },

1786

1787 };

1788

1789 window.GEO = GEO;

1790 })(jQuery);

1791

1792 jQuery(function () {

1793 requestAnimationFrame(GEO.init.bind(GEO));

1794 });

1795</script><script>

1796 document.addEventListener("DOMContentLoaded", function() {

1797 let envyboxLoaded = false;

1798

1799 // Функция загрузки (запустится только от действий человека)

1800 function loadEnvybox() {

1801 if (envyboxLoaded) return;

1802 envyboxLoaded = true;

1803

1804 // 1. Грузим стили

1805 var style = document.createElement('link');

1806 style.rel = 'stylesheet';

1807 style.href = "https://cdn.envybox.io/widget/cbk.css";

1808

1809 // 2. Внутренняя функция запуска JS

1810 function runWidgetScript() {

1811 // Ждем 500 мс, чтобы стили успели примениться

1812 setTimeout(function() {

1813 var script = document.createElement('script');

1814 script.src = "https://cdn.envybox.io/widget/cbk.js?wcb_code=d1b2985288776e9024eb86254eae9201";

1815 script.async = true;

1816 document.body.appendChild(script);

1817 }, 500);

1818 }

1819

1820 style.onload = runWidgetScript;

1821 style.onerror = runWidgetScript;

1822 document.head.appendChild(style);

1823

1824 // Убираем слушатели

1825 ['mousemove', 'touchstart', 'scroll', 'click'].forEach(function(e) {

1826 window.removeEventListener(e, loadEnvybox);

1827 });

1828 }

1829

1830 // Загрузка ТОЛЬКО по физическому взаимодействию.

1831 ['mousemove', 'touchstart', 'scroll', 'click'].forEach(function(e) {

1832 window.addEventListener(e, loadEnvybox, { passive: true, once: true });

1833 });

1834 });

1835 </script>

1836</body>

1837</html>