PageSourceSearch

https://podshipnikon.ru/contacts/

html podshipnikon.ru collected 2026-10-08 16:20:58 UTC 57,544 bytes, 966 lines download raw bytes

1<!DOCTYPE html>
2<!--[if IE]><![endif]-->
3<!--[if IE 8 ]><html dir="ltr" lang="ru" class="ie8"><![endif]-->
4<!--[if IE 9 ]><html dir="ltr" lang="ru" class="ie9"><![endif]-->
5<!--[if (gt IE 9)|!(IE)]><!-->
6<html dir="ltr" lang="ru">
7<!--<![endif]-->
8<head>
9<meta charset="UTF-8" />
10<meta name="viewport" content="width=device-width, initial-scale=1">
11<meta http-equiv="X-UA-Compatible" content="IE=edge">
12<title>Связаться с нами</title>
13<base href="https://podshipnikon.ru/" />
14<meta name="description" content="Контакты, реквизиты и адрес офиса и склада. Официальные дилеры. Огромный ассортимент продукции складе в наличии и под заказ. Доставка по Москве и другим городам России." />
15<script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 15
15
16<script src="catalog/view/javascript/ui/ion.rangeSlider.min.js" type="text/javascript"></script>
16
17<link href="catalog/view/theme/default/stylesheet/filter_vier/other/ion.rangeSlider.css" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
18<link rel="icon" href="https://podshipnikon.ru/favicon.svg" type=" image/svg+xml">
19<meta name="yandex-verification" content="d0b73fa940c6a00e" />
20<meta name="google-site-verification" content="FRo8bqqksVtWDh3QdpGx_v5MDks4peJi_fuuDvAIHbw" />
21<meta name="google-site-verification" content="BD28PjOGXLiQn6tUecsm_k_J5L6PynybofxamtCOavA" />
22<meta name="yandex-verification" content="a68a88d64fcff0b8" />
23<script defer src="catalog/view/javascript/smart-cookies.js" type="text/javascript"></script>
23 
24<script type="application/ld+json">
25  {
26  "@context": "http://www.schema.org",
27  "@type": "LocalBusiness",
28  "name": "Интернет-магазин подшипников",
29  "telephone": "8-800-222-60-22",
30  "email": "[email protected]",
31  "logo": "https://podshipnikon.ru/[email protected]",
32  "image": "https://podshipnikon.ru/[email protected]",
33  "description": "Подшипники INA и FAG. Официальный дилер.",
34  "url": "https://podshipnikon.ru",
35  "address": {
36    "@type": "PostalAddress",
37    "streetAddress": "ул. Выборгская, д.16 с.1, офис 709а",
38    "addressLocality": "Москва",
39    "addressRegion": "Москва",
40    "postalCode": "125212",
41    "addressCountry": "Россия"
42  },
43  "geo": {
44    "@type": "GeoCoordinates",
45    "latitude": "55.834234",
46    "longitude": "37.494851"
47  },
48  "hasMap": "https://goo.gl/maps/8X6FN3H4DoMr4wTT8",
49  "openingHours": "Пн-Чт 9:00-18:00, Пт 9:00-17:00"
50  }
51</script>
51
52  <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
53  <link href="catalog/view/javascript/font-awesome/css/font-awesome.min.css" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
54  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="preload" as="style" onload="this.rel='stylesheet'" media="all">
55  <link href="//fonts.googleapis.com/css?family=Open+Sans:400,400i,300,700" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
56  <link href="catalog/view/theme/default/stylesheet/stylesheet.css?v=1740221385" rel="stylesheet">
57  <link href="catalog/view/theme/default/stylesheet/medias.css?v=2" rel="stylesheet">
58    
58<script defer src="catalog/view/javascript/progroman/jquery.progroman.autocomplete.js?v=8.3-0" type="text/javascript"></script>
58
59    
59<script defer src="catalog/view/javascript/progroman/jquery.progroman.citymanager.js?v=8.3-0" type="text/javascript"></script>
59
60    
60<script defer src="catalog/view/javascript/jquery/ui/jquery-ui.js" type="text/javascript"></script>
60
61    
61<script defer src="//api-maps.yandex.ru/2.1/?lang=ru_RU&ns=cdekymap" type="text/javascript"></script>
61
62    
62<script defer src="catalog/view/javascript/sdek.js" type="text/javascript"></script>
62
63      <link href="https://podshipnikon.ru/image/catalog/imp-m-ico.jpg" rel="icon" />
64      <link href="catalog/view/javascript/progroman/progroman.citymanager.css?v=8.3-0" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
65    <link href="catalog/view/javascript/jquery/ui/jquery-ui.css" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
66    <link href="catalog/view/theme/default/stylesheet/sdek.css" rel="preload" as="style" onload="this.rel='stylesheet'" media="all" />
67    
67<script async src="catalog/view/javascript/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
67
68  
68<script defer src="catalog/view/javascript/common.js" type="text/javascript"></script>
68
69  <link href="catalog/view/theme/default/stylesheet/smart-cookies.css" rel="stylesheet">  
70
71<!-- AutoSearch -->
72<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/jquery.mCustomScrollbar.min.css" />
73<script src="catalog/view/javascript/jquery/jquery.mCustomScrollbar.min.js"></script>
73
74<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/autosearch.css" />
75<script src="catalog/view/javascript/jquery/autosearch.js"></script>
75
76<!-- AutoSearch END-->
77			
78
79                
79<script>
80if (!localStorage.getItem('display')) {
81localStorage.setItem('display', 'grid');
82}
83</script>
83              
84</head>
85<body class="information-contact">
86<style>.suggestions-suggestions{text-align:left}#cart{margin:0;padding:0;display:unset}#cart .cart{position:relative}#cart .cart .badge{position:absolute;top:3px;right:-5px;font-size:10px;padding:3px 6px;background-color:#333}#cart .dropdown-menu{top:unset;background-color:#fff;padding:0;border:none}#search-panel{background-color:#f6f6f7;box-shadow:inset 0 -9px 7px -10px #00000030;max-height:calc(100vh - 50px);box-sizing:border-box;overflow:auto;display:none;position:fixed;left:0;right:0;top:50px;z-index:1020}.tab-content{overflow:auto}.breadcrumb{margin-top:10px}.header-container{font-family:"Open Sans",sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff;box-shadow:0 -9px 7px 10px #00000030;height:50px;position:fixed;top:0;right:0;left:0;z-index:1030}.main-nav{margin-top:50px;background-color:var(--importm-primary-color);background-image:linear-gradient(to bottom,var(--importm-pirple-color),var(--importm-primary-color));background-repeat:repeat-x;box-shadow:inset 0 -9px 7px -10px #00000030}.menu-container{display:none;flex-direction:column;max-width:1150px;min-width:185px;margin:0 auto;padding:10px}.menu-container a{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);padding:6px 10px;min-height:15px;background-color:transparent}.menu-container a:hover{background-color:rgba(0,0,0,.1)}.menu-container.in{display:flex}.header{position:relative;max-width:1140px;min-width:185px;margin:0 auto;padding:10px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.header .contacts,.header .icons,.header .logo{min-height:30px}.header .logo{min-width:30px;margin-top:-5px;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURf///36Ewf39/pOWy/////39/tHS6f////////////b2+vj4+8XH4+7u9u3t9uHi8JaazPv7/X2CwY6Syv7+/+jp87m83mlwuMHD4YWJxXd9vqyu1/Lz+W91u2Nqtmlut42RyM/Q6JKVyn+Ewvr6/Xt/wOTl8rCz2f///yUumCYvmBskkxcgkRokkxYgkRojkyIrlx4olRgikiQtlyMtmCIslxIcjx0mlBslk/v7/RQekBkjkiAplSAplvn5/BwmlCErlhkikv7+/x8plRUfkMLD4o+TynyBwf39/hMdkCMtlzE6nh0nlefn8xUekFthsREbjxwllCEqlre53R8mlCUvmACg5QCg5gCe47Cz2YOHxCAqlurq9TE5ndzc7srM5evs9VhfsCQumKir1ioym8PF4tna7Ozt9tzd7gkTiz1FozU8oJOWyxsllEhOp9/g8NjZ7JSYzPLz+W91uzdAoBchkf7+/vb3+9HS6aSn0wsVjNvc7YCFw8PE4jpCopiczrq73Q0XjVFXrNrb7Vu35/j4+yw0m4+TyQCg5ACh5ACd4wih5ACa4pWYzKSo1Onq9Pr6/V5lstHT6URLpuDh8KSo0x8nlNPU6Q8ZjpmdzzI4nvf3+zxDovPz+XF2uiYumG1yue/w96qs1qyv1ycvmJyg0DY+oPr7/evr9Rkcjhghke7v9x0llFZcr1dcrjc/oVVbrlRbrjtDo2RqtlJZrejn83R5vUtSqaCi0bW323N4vPX1+rDG5WxyuUpIo1hcrR8pllpjsVhdr5GVymFotMC83UhPqe3u909TqYmJwx0cjeLi8Vm15Ti67Hay31NSqGGW0Ei97Kao1GlvuD9HpB0nlHyBwHp/vwSq6QCm6EVFot/f7+r4/Rmv6iwrllq76E676uP2/BMajR8kkl1ksuTl8mBqtdXS6Hyu3d71/L/B4AGn6QCf4xep5nnB6FO/7VC/7Nzy+ze26/j9/rvm+E296xGl5ef2/JrZ9Em7647X8yOt5xKj5C2u6Pz+//X7/l7A+MMAAAAodFJOU+377/nd7/bu8dzw8Pby8PP57/v68PT3/Pf6/Pjy/Pz8+fb5/PH79PhbnBqNAAACuUlEQVQoz02TZVhVQRCGj1cfwO7u3lO3u+mSFiQkpaREuqW5hGJid3d3d7dgYHd39+459wLza559Z2e/mZ3BWlpgjPXp3atf357d2rdr1ZqDGc2iBYYBxrzUXHpEPE2tC18RW7hUyx4CcxZblUn5OGsSPl+gDIxuihX7s0i9J0nTh9gQQkAFNWLtpqyceheXs/lHQy3lbIDAebIJK7a5b7aC/t4j9hlF9pSAQPeltia8g0shf2UCT04vioyMSUVcNsWIc6V47VroLqAInCjwAoo6FeJUBIM5KRqnZYsB8HOEhx5u6JXrJKqgJgphM1fCKTwEjCbFOB5m+QSlLOIidfINaRB3FuIifTpwi4d6uGUQfgLPHnojdY5eEHeX4TjpMtMVptaXloBvPyo/vn36CHF9qdYc6y/DvS1t3axhuPIl+FD1/fPvUe8fj0TXlbvNsaE0Ltq4XAYv1xZagT9fAPhZ9er5XRHqzc4u2HAurtuTrEOl1IMXvr/+/X1X4XPvllyC1HXFhgkJ2YQUGEwnA/Cg0vfrG99yn+KLiTHwj7g9MM41Qd4EHcxNVkPZ9ysMr8sNNy4dB0tgdR4DMOxKwdUc2AeePyr59h0fg+Fm8ek0MF8twnmDMSzdNe6YAOauZr5w37nzly+c2g69rTpcBTHIj9gCdZB+iPqvPnD44JldyB1D4eQg9N9R1rChuM0keCRdyK8RJjggnJFKKAcinKhGPQ5TTgxWobg145hnsoWezkMQnq5mR4TkiVHj7dg5i6bcc5lhUgSa5hBawDQFQx3qxo43jmKcDdGArUOnhsxNCpoxD1IjLpnj0cCJAKGG78kTzprdOOerYh0FEpEpQuwkwqV2TdYAaDNPOEt4QoGYDdC4lzXdEiQl6WR25noNRap4NDcv2LQlphVkjNO2TfNmnTqYdTSt4H+NW/cLSV5urwAAAABJRU5ErkJggg==) no-repeat}.header .logo img{display:none}.header .city,.header .icons{text-align:right}.header .icons>button,button.cart{font-family:inherit;font-size:inherit;line-height:inherit;border:none;background:0 0;padding:0}.header .city{flex:100%;margin:-10px 0 3px 0;font-size:10px;overflow:hidden;max-height:1.5rem;z-index:1}.header .city a{text-decoration:underline}.header .material-icons{width:24px}.header .contacts::before{font-family:'Material Icons';font-size:10px;color:#02abd2;text-decoration:none;width:10px;vertical-align:middle}.header .contacts.phone::before{content:'\e0cd'}.header .contacts.email::before{content:'\e0be'}.header .contacts,.header .icons .material-icons{line-height:30px;vertical-align:middle;color:#252f98}.header .contacts{margin:0 auto;display:none;text-decoration:none}#cart-total{display:none}@media (min-width:320px){.header-container{height:60px}#search-panel{max-height:calc(100vh - 60px);top:60px}.main-nav{margin-top:60px}.header .contacts,.header .icons,.header .logo{height:40px}.header .logo{min-width:40px;
86margin-top:-7px;background-image:none;overflow:hidden;max-width:40px}.header .logo img{display:unset}.header .contacts.phone{display:unset}.header .contacts,.header .icons .material-icons{line-height:40px}.header .icons .phone{display:none}}@media (min-width:450px){.header .contacts.email{display:unset}.header .icons .email{display:none}}@media (min-width:675px){.header .logo{margin-right:10px;min-width:268px}}@media (min-width:768px){.header .icons>button,button.cart{padding:0 8px}.header .city{font-size:12px}.header .contacts{font-size:16px}.header .contacts::before{font-size:1em}.header .contacts.phone .material-icons{display:unset}#cart .cart .badge{top:2px;right:3px}}@media (min-width:1024px){.header-container{height:64px}.header .contacts{font-size:18px}.header .contacts::before{line-height:40px;font-size:18px}#search-panel{max-height:calc(100vh - 64px);top:64px}.main-nav{margin-top:64px}#cart-total{display:unset}#cart .cart .badge{display:none}.header .logo img{height:44px;width:295px}.header .logo{max-width:295px;min-height:44px;margin-top:-10px}.header .icons>button,button.cart{border-radius:4px;border:1px solid #00000020;margin:2px 0 0 4px}.header .icons>button:hover,button.cart:hover{border-color:#252F98a1;background-color:#252f9815}.header .icons .material-icons{line-height:34px}}@media only screen and (min-width:1140px){.menu-container{display:flex;flex-direction:row}.menu-container a{padding:0 10px}.header .icons .menu{display:none}}</style>
87<style>.header-container{border-top: 1px solid #252f98;box-shadow: 0 -9px 7px 10px #252f98}.messengers{position:absolute;top:-.1px;left:50px;width:117px;z-index:2}.messengers div a{padding:0 2px;height:24px}.messengers div{display:inline-block;padding:0 5px;position:relative;height:24px;background:#252f98;border-bottom-right-radius:16px;border-bottom-left-radius:16px}.messengers div:after{content:"";position:absolute;top:0;color:#fff;right:-24px;height:24px;width:24px;border-top-left-radius:50%;box-shadow:0 -10px 0 0 #252f98}.messengers div:before{content:"";position:absolute;top:0;color:#fff;left:-24px;height:24px;width:24px;border-top-right-radius:50%;box-shadow:0 -10px 0 0 #252f98}@media (min-width:450px){.messengers{left:0;right:0;width:127px;margin:auto}.messengers div{padding:0 10px}}</style>
88  <div class="header-container">
89    <div class="header">
90      <div class="messengers">
91        <div>
92          <a href="tg://resolve?domain=importmekhanika"><img src="image/[email protected]" alt="telegram link" width="21px"></a>
93        </div>
94      </div>
95      <div class="city prmn-cmngr"><div class="prmn-cmngr__content">
96  <div class="prmn-cmngr__title">
97    <span class="prmn-cmngr__title-text"></span>
98    <a class="prmn-cmngr__city">
99      <span class="glyphicon glyphicon-map-marker fa fa-map-marker"></span>
100      <span class="prmn-cmngr__city-name">Торонто</span>
101    </a>
102  </div>
103  <div class="prmn-cmngr__confirm">
104    Ваш город &mdash; <span class="prmn-cmngr__confirm-city">Торонто</span>?
105    <div class="prmn-cmngr__confirm-btns">
106        <input class="prmn-cmngr__confirm-btn btn btn-primary" value="Да" type="button" data-value="yes"
107               data-redirect="">
108        <input class="prmn-cmngr__confirm-btn btn" value="Нет" type="button" data-value="no">
109    </div>
110</div></div></div>
111      <a href="/" class="logo"><img src="/[email protected]" height="40px" alt="logo"></a>
112      <a class="contacts phone callibri_phone" href="tel:+78002226022"> 8 (800) 222-60-22</a>
113      <a class="contacts email" href="mailto:[email protected]"> [email protected]</a>
114      <div class="icons">
115        <a class="phone callibri_phone" href="tel:+74956452503"><span class="material-icons">&#xe0cd;</span></a>
116        <a class="email" href="mailto:[email protected]"><span class="material-icons">&#xe0be;</span></a>
117        <div id="cart">
118  <button type="button" data-toggle="dropdown" data-loading-text="Загрузка..." class="cart dropdown-toggle">
119    <span class="material-icons">&#xe8cc;</span>
120    <span class="badge"> 0 </span>
121    <span id="cart-total">Товаров: 0 (0.00 руб.)</span>
122  </button>
123  <ul class="dropdown-menu pull-right">
124        <li>
125      <p class="text-center">Ваша корзина пуста!</p>
126    </li>
127      </ul>
128</div>
129                <button type="button" id="fast-search-toggle" class="search"><span class="material-icons">&#xe8b6;</span></button>
130                <button type="button" class="menu" data-target=".menu-container"><span class="material-icons">&#xe5d2;</span></button>
131      </div>
132    </div>
133  </div>
134
135  <section id="search-panel"><style>
136  .breadcrumb{
137    margin-top:1em;
138  }
139  #search-panel.open{
140    /* max-height:100%; */
141    /* transition: max-height 0.7s ease-in */
142    display:block;
143  }
144  #search-panel .container{
145    margin:1em auto;
146  }
147  .fast-search .button-group,
148  .ranges{
149    margin-top:1em;
150  }
151  .ranges .form-control{
152    width:7em;
153    display:inline-block;
154  }
155  .ranges .title {
156    padding: 2px 3px;
157    font-weight:bold;
158  }
159  .border-info{
160    background-color: #B7BABE23;
161    border-radius: 5px;
162    box-shadow: 0px 0px 2px 0px #00000045;
163  }
164</style>
165<div class="container">
166  <div class="row fast-search">
167    <div class="col-xs-12">
168      <input type="search" name="search" value="" placeholder="Название или модель" id="search-name" class="form-control" />
169      <img id="load_search" src="/catalog/view/image/loading_search.gif" class="hidden">
170    </div>
171  </div>
172  <div class="row fast-search form-inline">
173                <div class="ranges col-sm-4 text-center" data-index="2">
174              <div class="border-info">
175                <div class="text-left title">d</div>
176                <label>От</label>
177                <input type="number" min="0" class="form-control" value=""/>
178                &nbsp;
179                <label>До</label>
180                <input type="number" min="0" class="form-control" value=""/>          
181              </div>
182            </div>
183                <div class="ranges col-sm-4 text-center" data-index="3">
184              <div class="border-info">
185                <div class="text-left title">D</div>
186                <label>От</label>
187                <input type="number" min="0" class="form-control" value=""/>
188                &nbsp;
189                <label>До</label>
190                <input type="number" min="0" class="form-control" value=""/>          
191              </div>
192            </div>
193                <div class="ranges col-sm-4 text-center" data-index="4">
194              <div class="border-info">
195                <div class="text-left title">B</div>
196                <label>От</label>
197                <input type="number" min="0" class="form-control" value=""/>
198                &nbsp;
199                <label>До</label>
200                <input type="number" min="0" class="form-control" value=""/>          
201              </div>
202            </div>
203        <div class="col-xs-12 text-center button-group">
204      <button type="button" id="button-reset" class="btn btn-secondary">&nbsp;Сбросить&nbsp;</button>
205      <button type="button" id="button-search" class="btn btn-success">&nbsp;Найти&nbsp;</button>
206    </div>
207  </div>
208</div>
209<script>
210  const formatRange = (range,ind,f) => f === 'str' ? range.map(i=>`range-${ind}[]=${i}`).join('&') : ({ind, range});
211
212  function getRanges(format = 'str') {
213    let r = [];
214    document.querySelectorAll('.ranges').forEach(el => {
215      const range = [...el.querySelectorAll('input')].map(i => Math.abs(parseFloat(i.value)) || 0);
216      if(range.some(i => i > 0)){
217        if(range[1] === 0) range.pop();
218        r.push(formatRange(range.sort((a,b) => a-b), parseInt(el.dataset.index), format));
219      }
220    });
221    return r;
222  }
223
224  document.addEventListener('DOMContentLoaded', () => { 
225    function offsetDocument(){
226      const search = document.getElementById('search-panel');
227      const nav = document.querySelector('.main-nav');
228      const header = document.querySelector('.header-container');
229
230      nav.style.marginTop = (header.offsetHeight + search.offsetHeight) + "px";
231    }
232    
233    document.getElementById('fast-search-toggle').addEventListener('click', e => {
234      const search = document.getElementById('search-panel');
235      // search.className.search(/open/) === -1 ? document.getElementById('search-name').focus() : null;
236      search.classList.toggle('open');
237      offsetDocument()
238    });
239
240    window.addEventListener('resize', offsetDocument);
241
242    const btn = document.getElementById('button-search');
243    const search = document.getElementById('search-name');
244    const url = 'index.php?route=product/fast_search';
245
246    const updateBtn = d => btn.innerHTML = btn.innerHTML.replace(/\d*?$/, d && parseInt(d) ? parseInt(d) : '');
247
248    function inputHandler(e) {
249      const s = search.value;
250      const r = getRanges('obj');
251      
252      const fd = new FormData();
253      fd.append('s', s);
254      fd.append('r', JSON.stringify(r));
255      (s.length > 2 || r.length) && fetch(`${url}/count`, {
256        method: 'POST',
257        body: fd
258      }).then(res => res.json())
259        .then(updateBtn)
260        .catch(e => console.log(e));
261      updateBtn();
262    }
263
264    function clickHandler(e){
265      e.preventDefault();
266      const s = search.value;
267      location = url + (s ? '&search=' + encodeURIComponent(s) : '') + '&' + getRanges('str').join('&');
268    }
269
270    btn.addEventListener('click', clickHandler);
271    document.getElementById('button-reset').addEventListener('click', e => document.querySelectorAll('.fast-search input').forEach(el => (el.value = "",updateBtn())));
272    document.querySelectorAll('.fast-search input').forEach(el => el.addEventListener('input', inputHandler));
273    document.querySelectorAll('.fast-search input').forEach(el => el.addEventListener('keydown', e => {
274      if (e.keyCode == 13) btn.click();  
275    }));
276  });
277  </script>
277
278</section>
279
280  <style>
281  .main-nav .dropdown-menu {
282    margin-left: 0 !important;
283    padding-bottom: 10px;
284    position: static;
285    float: none;
286    width: auto;
287    margin-top: 0;
288    background-color: transparent;
289    border: 0;
290    box-shadow: none;
291  }
292  .main-nav .open .dropdown-backdrop{
293    display:none
294  }
295  .main-nav .dropdown-menu ul{
296    margin-bottom:0;
297  }
298  .dropdown-inner a, .dropdown-menu .see-all {
299    min-width: 160px;
300    display: block;
301    padding: 3px 20px;
302    clear: both;
303    line-height: 20px;
304    font-size: 12px;
305  }
306  .main-nav .dropdown > a{
307    display:block
308  }
309  .main-nav .menu-container a:hover {
310    background-color: rgba(0,0,0,.2);
311  }
312  .dropdown-menu li > a:hover{
313    background-image:none;
314  }
315  @media (min-width:1140px){
316    .main-nav .dropdown-menu {
317      position:absolute;
318      float:left;
319      background-color: var(--importm-primary-color);
320      background-clip: padding-box;
321      border: 1px solid #ccc;
322      border: 1px solid rgba(0,0,0,.15);
323      border-radius: 4px;
324      box-shadow: 0 6px 12px rgb(0 0 0 / 18%);
325      padding-bottom:0;
326    }
327    .menu-container .dropdown:hover .dropdown-menu{
328      display:block;
329    }
330    .dropdown-menu .see-all{
331      margin-top:10px;
332      border-top: 1px solid #DDD;
333    }
334    .main-nav .open .dropdown-backdrop{
335      display:unset
336    }
337  }
338  </style>
339    <nav class="main-nav" >
340          <div class="menu-container">
341                              <div class="dropdown">
342              <a href="https://podshipnikon.ru/podshipniki-kacheniya/" class="dropdown-toggle" data-toggle="dropdown">
343                Подшипники              </a>
344              <div class="dropdown-menu">
345                <div class="dropdown-inner">
346                                    <ul class="list-unstyled">
347                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/radialnye-sharikovye-podshipniki/">
348                        Шариковые подшипники                      </a></li>
349                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/radialnye-rolikovye-podshipniki/">
350                        Роликовые подшипники                      </a></li>
351                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/radialnye-rolikovye-podshipniki/igolchatye-rolikopodshipniki/">
352                        Игольчатые подшипники                      </a></li>
353                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/korpusnye-podshipniki/">
354                        Корпусные подшипники                      </a></li>
355                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/radialnye-rolikovye-podshipniki/konicheskie-rolikovye-podshipniki/">
356                        Конические (конусные)                      </a></li>
357                                        <li><a href="https://podshipnikon.ru/linejnye-napravlyayushie/">
358                        Линейные направляющие                      </a></li>
359                                        <li><a href="https://podshipnikon.ru/podshipniki-skolzheniya/">
360                        Подшипники скольжения                      </a></li>
361                                        <li><a href="https://podshipnikon.ru/podshipniki-skolzheniya/sharnirnye-golovki/">
362                        Шарнирные головки                      </a></li>
363                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/gibridnye-podshipniki/">
364                        Гибридные подшипники                      </a></li>
365                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/vysokotemperaturnye-podshipniki-i-podshipnikovye-uzly/">
366                        Высокотемпературные подшипники                      </a></li>
367                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/korpusa-dlya-podshipnikov/">
368                        Корпуса для подшипников                      </a></li>
369                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/detali-podshipnikov-kacheniya-i-prinadlezhnosti/">
370                        Детали подшипников                      </a></li>
371                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/podshipnikovye-uzly-s-korpusami/">
372                        Подшипниковые узлы с корпусами                      </a></li>
373                                        <li><a href="https://podshipnikon.ru/podshipniki-kacheniya/oporno-povorotnye-ustrojstva/">
374                        Опорно-поворотные устройства                      </a></li>
375                                      </ul>
376                                  </div>
377                <a href="https://podshipnikon.ru/podshipniki-kacheniya/" class="see-all">
378                  Смотреть Все                  Подшипники                </a>
379              </div>
380            </div>
381                                        <div class="dropdown">
382              <a href="https://podshipnikon.ru/#rti" class="dropdown-toggle" data-toggle="dropdown">
383                РТИ              </a>
384              <div class="dropdown-menu">
385                <div class="dropdown-inner">
386                                    <ul class="list-unstyled">
387                                        <li><a href="https://podshipnikon.ru/index.php?route=product/category&amp;path=https://podshipnikon.ru/#rti_295">
388                        Уплотнения                      </a></li>
389                                        <li><a href="https://podshipnikon.ru/index.php?route=product/category&amp;path=https://podshipnikon.ru/#rti_862">
390                        Ремни                      </a></li>
391                                      </ul>
392                                  </div>
393                <a href="https://podshipnikon.ru/#rti" class="see-all">
394                  Смотреть Все                  РТИ                </a>
395              </div>
396            </div>
397                                        <a href="https://podshipnikon.ru/pribory-i-instrumenty/sistemy-i-materialy-dlya-smazki/smazochnye-materialy/">Смазки</a>
398                                        <a href="https://podshipnikon.ru/pribory-i-instrumenty/">Приборы и инструменты</a>
399                                        <div class="dropdown">
400              <a href="https://podshipnikon.ru/brands/" class="dropdown-toggle" data-toggle="dropdown">
401                Производители              </a>
402              <div class="dropdown-menu">
403                <div class="dropdown-inner">
404                                    <ul class="list-unstyled">
405                                        <li><a href="https://podshipnikon.ru/ina">
406                        INA                      </a></li>
407                                        <li><a href="https://podshipnikon.ru/fag">
408                        FAG                      </a></li>
409                                        <li><a href="https://podshipnikon.ru/art">
410                        ART                      </a></li>
411                                        <li><a href="https://podshipnikon.ru/skf">
412                        SKF                      </a></li>
413                                        <li><a href="https://podshipnikon.ru/fst">
414                        FST                      </a></li>
415                                        <li><a href="https://podshipnikon.ru/camozzi">
416                        Camozzi                      </a></li>
417                                        <li><a href="https://podshipnikon.ru/ccvi">
418                        CCVI                      </a></li>
419                                        <li><a href="https://podshipnikon.ru/dichtomatic">
420                        Dichtomatik                      </a></li>
421                                        <li><a href="https://podshipnikon.ru/festo">
422                        Festo                      </a></li>
423                                        <li><a href="https://podshipnikon.ru/fluro">
424                        Fluro                      </a></li>
425                                        <li><a href="https://podshipnikon.ru/fluro-econom">
426                        Fluro Econom                      </a></li>
427                                        <li><a href="https://podshipnikon.ru/optibelt">
428                        Optibelt                      </a></li>
429                                        <li><a href="https://podshipnikon.ru/smc">
430                        SMC                      </a></li>
431                                      </ul>
432                                  </div>
433                <a href="https://podshipnikon.ru/brands/" class="see-all">
434                  Смотреть Все                  Производители                </a>
435              </div>
436            </div>
437                                        <a href="https://podshipnikon.ru/dostavka-i-oplata">
437Доставка и оплата</a>
438                                        <a href="https://podshipnikon.ru/contacts/">Контакты</a>
439                                        <a href="https://podshipnikon.ru/index.php?route="></a>
440                        </div>
441      </nav>
442
443  
443<script>
444    document.querySelector('.header .menu').addEventListener('click', e => {
445      document.querySelectorAll(e.currentTarget.dataset.target).forEach(nav => nav.classList.toggle('in'));
446      window.scrollTo({top: 0, behavior: "smooth"});
447    });
448  </script>
448
449<div class="container">
450   <ul itemscope itemtype="http://schema.org/BreadcrumbList" class="breadcrumb"> 
451        <li><a href="https://podshipnikon.ru/"><i class="fa fa-home"></i></a></li>
452        <li><a href="https://podshipnikon.ru/contacts/">Связаться с нами</a></li>
453      </ul>
454  <div class="row">                <div id="content" class="col-sm-12"><style type="text/css">
455
456.ui-autocomplete .ui-menu-item, 
457.ui-autocomplete .ui-menu-item div,
458.ui-autocomplete .ui-menu-item span {
459  margin: 0;	
460  padding: 0;
461  border: 0;
462  text-align:left;
463  overflow: hidden;
464}
465.ui-autocomplete .ui-menu-item span {
466  margin-right: 5px;	
467}
468.ui-autocomplete .ui-menu-item .label {
469  font-weight: bold;	
470  color: black;
471}
472.ui-autocomplete  .image img {
473  border: 1px solid #E7E7E7;
474}
475.ui-autocomplete  .price-old {
476  margin-right: 2px;
477  color: #F00;
478  text-decoration: line-through;
479}
480.ui-autocomplete  .price-new {
481  font-weight: bold;
482}
483.ui-autocomplete {
484  z-index: 99 !important;
485}.ui-autocomplete .image {
486float: left;
487margin: 0 5px 0 0;
488} 
489.ui-autocomplete .name {
490color: #38B0E3;
491font-weight: bold;
492text-decoration: none;
493height: 20px;
494} 
495</style>      <h1>Связаться с нами</h1>
496      <h3>Мы находимся по адресу:</h3>
497      <div class="panel panel-default">
498        <div class="panel-body">
499          <div class="row">
500                        <div class="col-sm-3"><strong>Интернет-магазин подшипников</strong><br />
501              <address>
502              Офис: Москва, ул. Выборгская, 16с1, офис 709а<br />
503Склад: МО, Зеленоград, пр-д 4801, 7с3, 1 эт, помещение 60, территория завода &quot;Квант&quot;<br />
504Внимание! О вашем визите в офис или на склад просьба предварительно уведомлять менеджеров по телефону или email.              </address>
505                            <a href="https://maps.google.com/maps?q=55.834309%2C+37.494703&hl=ru&t=m&z=15" target="_blank" class="btn btn-info"><i class="fa fa-map-marker"></i> Посмотреть карту</a>
506                          </div>
507            <div class="col-sm-3"><strong>Телефон</strong><br>
508              88002226022, +74957406022<br />
509              <br />
510                            <strong>Telegram, WhatsApp</strong><br>
511              +79269556022                          </div>
512            <div class="col-sm-3">
513                            <strong>Режим работы</strong><br />
514              Режим работы офиса:<br />
515Будние дни: 09:00 — 18:00 <br />
516Пятница:      09:00 — 17:00 <br />
517Суббота, Воскресенье - выходной<br />
518              <br />
519                                          <strong>Дополнительная информация</strong><br />
520              Подшипники INA и FAG для промышленного оборудования. Официальный дилер Schaeffler, SKF, Freudenberg, Boteco, Optibelt, Camozzi. Доставка в любой город России.                          </div>
521          </div>
522        </div>
523      </div>
524            <h2>Офис</h2>
525      
525<script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Ad893636b57dbfad4cec9f807c4a92a3b8730fc7906048faf43e12d9a8ee74235&amp;width=100%25&amp;height=430&amp;lang=ru_RU&amp;scroll=true"></script>
525
526      <h2>Склад</h2>
527      
527<script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aa222241f4940aa22bd087019b69a074f19e01007cb39ee990885a782986ed0a0&amp;width=100%25&amp;height=430&amp;lang=ru_RU&amp;scroll=true"></script>
527
528      <form action="https://podshipnikon.ru/contacts/" method="post" enctype="multipart/form-data" class="form-horizontal">
529        <fieldset>
530          <legend>Написать нам</legend>
531          <div class="form-group required">
532            <label class="col-sm-2 control-label" for="input-name">Ваше имя</label>
533            <div class="col-sm-10">
534              <input type="text" name="name" value="" id="input-name" class="form-control" />
535                          </div>
536          </div>
537          <div class="form-group required">
538            <label class="col-sm-2 control-label" for="input-email">E-Mail адрес</label>
539            <div class="col-sm-10">
540              <input type="text" name="email" value="" id="input-email" class="form-control" />
541                          </div>
542          </div>
543          <div class="form-group required">
544            <label class="col-sm-2 control-label" for="input-enquiry">Ваше сообщение</label>
545            <div class="col-sm-10">
546              <textarea name="enquiry" rows="10" id="input-enquiry" class="form-control"></textarea>
547                          </div>
548          </div>
549                  </fieldset>
550        <div class="buttons">
551          <div class="pull-right">
552            <input class="btn btn-primary" type="submit" value="Применить" />
553          </div>
554        </div>
555      </form>
556      </div>
557    </div>
558</div>
559<!--Product card Truncate -->
560<script>
561    const truncate = () => {
562        const nodes = [...document.querySelectorAll('#content .product-thumb .caption')];
563        const min = Math.min(...nodes.map(node => {
564            if (node.querySelector('p')) {
565                node.querySelector('p').style.height = 'initial';
566                return node.offsetHeight
567            }
568        }));
569        nodes.forEach(el => {
570            const height = min - el.querySelector('a').offsetHeight - (el.querySelector('.price-wrap') ? el.querySelector('.price-wrap').offsetHeight : el.querySelector('.price') ? el.querySelector('.price').offsetHeight : 0);
571            if (el.querySelector('p')) {
572                el.querySelector('p').style.height = `${height}px`;
573            }
574        });
575    };
576    document.addEventListener("DOMContentLoaded", e => {
577        $('#grid-view, #list-view').click(truncate);
578        truncate();
579    });
580    window.addEventListener('resize', truncate);
581</script>
581
582<!--Product card Truncate End-->
583
584                <!-- Modal -->
585                <div class="modal fade" id="reserve-modal" tabindex="-1" role="dialog" aria-labelledby="reserveModalLabel">
586                    <div class="modal-dialog" role="document">
587                        <div class="modal-content">
588                            <div class="modal-header">
589                                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
590                                <span class="modal-title" id="reserveModalLabel">Отправьте нам запрос:</span>
591                            </div>
592                            <div class="modal-body">
593                                <div id="msg-success" class="alert alert-success" style="display:none; text-align:center">
594                                    <div>Спасибо!</div>
595                                    <div>Ваш сообщение отправлено.</div>
596                                </div>
597                                <div id="msg-error" class="alert alert-danger" style="display:none; text-align:center">
598                                    <div>Ошибка!</div>
599                                    <div>Попробуйте отправить запрос позже.</div>
600                                </div>
601                                <form class="form-horizontal" id="reserve-form">
602                                    <div class="form-group">
603                                        <label class="col-sm-2 control-label">Товар:</label>
604                                        <div class="col-sm-10" id="product-name"></div>
605                                    </div>
606                                    <div class="form-group">
607                                        <label class="col-sm-2 control-label">Артикул:</label>
608                                        <div class="col-sm-10" id="product-model"></div>
609                                    </div>
610                                    <div class="form-group">
611                                        <label for="name" class="col-sm-2 control-label">ФИО*:</label>
612                                        <div class="col-sm-10">
613                                            <input type="text" class="form-control" id="reserve_name" name="name" placeholder="Ваши ФИО">
614                                        </div>
615                                    </div>
616                                    <div class="form-group">
617                                        <label for="phone" class="col-sm-2 control-label">Телефон*:</label>
618                                        <div class="col-sm-10">
619                                            <input type="text" class="form-control" id="reserve_phone" name="phone" placeholder="Ваш телефон">
620                                        </div>
621                                    </div>
622                                    <div class="form-group">
623                                        <label for="email" class="col-sm-2 control-label">Email*:</label>
624                                        <div class="col-sm-10">
625                                            <input type="text" class="form-control" id="reserve_email" name="email" placeholder="Ваш Email">
626                                        </div>
627                                    </div>
628                                    <div id="helpBlock" class="alert alert-danger" style="display:none; text-align:center">
629                                        Заполните все обязательные поля!
630                                    </div>
631                                    <input type="hidden" id="product_name" name="product_name">
632                                    <input type="hidden" id="product_model" name="product_model">
633                                    <input type="hidden" id="product_manufacturer" name="product_manufacturer">
634                                </form>
635                            </div>
636                            <div class="modal-footer">
637                                <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть окно</button>
638                                <button type="button" data-loading-text="Отправка" class="btn btn-primary" id="button-reserve" onclick="sendReserve(this);">Отправить запрос</button>
639                            </div>
640                        </div>
641                    </div>
642                </div>
643                <!-- Modal END -->
644
645                
645<script>
646                    // Reserve form
647                    function reserveProduct(name, model, manufacturer){
648                        $('#msg-success').hide();
649                        $('#msg-error').hide();
650                        $('#reserve-form').show();
651                        $('#button-reserve').show();
652
653                        $('#product-name').text(name);
654                        $('#product-model').text(model);
655                        $('#product_name').val(name);
656                        $('#product_model').val(model);
657
658                        manufacturer = manufacturer || model.replace(/.*\-(.*)$/, '$1');
659
660                        $('#product_manufacturer').val(manufacturer);
661                        $('#reserve-modal').modal();
662                    };
663
664                    function sendReserve(btn){
665                        const form = document.getElementById('reserve-form');
666                        const fd = new FormData(form);
667
668                        if(!fd.get('name') || !/^[^\@]+@.*\.[a-z]{2,15}$/.test(fd.get('email')) || fd.get('phone').length < 16 ){
669                            $('#helpBlock').show().delay(3600).fadeOut('slow');
670                            return;
671                        }
672
673                        $.ajax({
674                            url: 'index.php?route=checkout/cart/reserve',
675                            data: fd,
676                            processData: false,
677                            contentType: false,
678                            type: 'POST',
679                            beforeSend: function() {
680                                $(btn).button('loading');
681                            },
682                            complete: function() {
683                                $(btn).button('reset');
684                            },
685                            success: function(data){
686                                $('#reserve-form').hide();
687                                $('#button-reserve').hide();
688                                data ?  $('#msg-success').show() : $('#msg-error').show();
689                                console.log(data);
690                            },
691                            error: function(xhr, ajaxOptions, thrownError) {
692                                alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
693                            }
694                        });
695                    };
696                    // reserve form end
697                    window.addEventListener('DOMContentLoaded', () => {
698                        const phoneField = document.getElementById("reserve_phone");
699                        //phone field masking
700                        if(phoneField){
701                            phoneField.value = phoneField.value === '' ? '+7' : phoneField.value;
702                            phoneField.addEventListener('keydown', beforeInputHandler);
703                            phoneField.addEventListener('input', inputHandler);
704                        }
705
706                        let oldPos;
707                        let oldVal;
708                        let selected;
709
710                        function beforeInputHandler(e) {
711                            oldPos = e.target.selectionStart;
712                            oldVal = e.target.value;
713                            selected = e.target.selectionEnd - e.target.selectionStart;
714                        }
715
716                        function inputHandler(e) {
717                            const valClean = e.target.value.replace(/\D/g, '');
718                            const val = mask(valClean);
719
720                            const oldSepCount = oldVal.slice(0, oldPos).replace(/\d/g, '').length;
721                            const diffClean = valClean.length - oldVal.replace(/\D/g, '').length;
722
723                            const newPos = e.inputType === 'deleteContentBackward' ?
724                                selected ? oldPos : oldPos - 1 :
725                                e.inputType === 'deleteContentForward' ?
726                                    oldPos : mask(valClean.slice(0, oldPos - oldSepCount + diffClean)).length;
727
728                            e.target.value = val.slice(0, 16);
729                            e.target.setSelectionRange(newPos, newPos);
730                        }
731
732                        function mask(str) {
733                            return str.replace(/^8/, '7')
734                                .replace(/(^[^7])/, '7$1')
735                                .replace(/^7/, '+7')
736                                .replace(/^\+7(\d)/, '+7($1')
737                                .replace(/(\(\d{3})/, '$1)')
738                                .replace(/(\)\d{3})/, '$1-')
739                                .replace(/(-\d{2})/, '$1-');
740                        }
741                        //phone field masking end
742                    })
743                </script>
743
744                
745<footer>
746    <div class="container">
747        <div class="row_footer">
748                                    <a href="https://podshipnikon.ru/o-nas">О компании</a> |
749                        <a href="https://podshipnikon.ru/dostavka-i-oplata">Доставка и оплата</a> |
750                        <a href="https://podshipnikon.ru/vozvrat-i-obmen">Возврат и обмен</a> |
751                        <a href="https://podshipnikon.ru/soglasie-na-poluchenie-rassilki-reklamnogo-i-ili-informacionnogo-haraktera">Согласие на получение рассылки</a> |
752                        <a href="https://podshipnikon.ru/usloviya-soglasheniya">Согласие на обработку персональных данных</a> |
753                        <a href="https://podshipnikon.ru/polzovatelskoe-soglashenie">Пользовательское соглашение</a> |
754                        <a href="https://podshipnikon.ru/politika-obrabotki-personalnih-dannih">Политика конфиденциальности</a> |
755                        <a href="https://podshipnikon.ru/politika-bezopasnosti">Политика использования  COOKIE-файлов</a> |
756                                    <a href="https://podshipnikon.ru/index.php?route=information/interchange">Подбор аналогов подшипников</a> |
757            <a href="https://podshipnikon.ru/contacts/">Контакты</a>
758        </div>
759        <p>Внимание! На сайте указаны <b>ориентировочные</b> цены, количество товара доступное для заказа, и сроки поставки. Перед заказом необходимо уточнить информацию у менеджеров.</p>
760        <hr style="margin-left: -1.3%;margin-right: 1.3%;">
761        <p>&copy;2015-2026 ООО "Импортмеханика" (ИНН 7729538375; ОГРН 1057749493878) тел. 8(800)2226022 - Купить подшипники INA и FAG для промышленного оборудования и станков, продажа оптом и в розницу со склада и под заказ. Официальный дилер. Выгодные цены на подшипники и комфортные условия сотрудничества. <a href="/sitemap.html">Карта сайта</a>. <a href="https://adsnseo.ru">SEO</a></p>
762    </div>
763
764    
764<script>
vendor: 448 bytes, lines 764-774
764
765        (function (i, s, o, g, r, a, m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
766        (i[r].q=i[r].q||[]).push(arguments)}, i[r].l = 1 * new Date();
767        a = s.createElement(o),
768            m = s.getElementsByTagName(o)[0];
769        a.async = 1;
770        a.src = g;
771        m.parentNode.insertBefore(a, m)
772        })
773        (window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
774        ga('create', '
774UA-85800435-1
vendor: 48 bytes, lines 774-776
774', 'auto');
775        ga('send', 'pageview');
776    
776</script>
776
777
778    <!-- Yandex.Metrika counter -->
779    
779<script type="text/javascript">
vendor: 301 bytes, lines 779-780
779 (function (m, e, t, r, i, k, a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
780        ym(
78044595493
vendor: 131 bytes, line 780
780, "init", {clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: true, trackHash: true, ecommerce: "dataLayer"}); 
780</script>
780
781    <noscript>
782        <div><img src="https://mc.yandex.ru/watch/44595493" style="position:absolute; left:-9999px;" alt=""/></div>
783    </noscript> <!-- /Yandex.Metrika counter -->
784
785    
785<script src="//cdn.callibri.ru/callibri.js" type="text/javascript" charset="utf-8"></script>
785
786
787
788
789<style>
790  .city-grp{ 
791    position: absolute;
792    left: 0px;
793    right: 0px;
794    width: 100%;
795    padding-top: 5px;
796    background-color: #fff;
797    z-index: 1040;
798    top:15px;
799  }
800  .city-grp input{
801    height: 34px;
802    padding: 6px 12px;
803    font-size: 14px;
804    font-weight:unset;
805    line-height: 1.42857143;
806    color: #555;
807    background-color: #fff;
808    border: 1px solid #ccc;
809    box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
810  }
811  .city-btn, .suggestions-suggestion{ color: #333 }
812  .suggestions-suggestions.suggestions-mobile{
813    box-shadow: 0 1px 3px 0px #00000030;
814  }
815  @media (min-width:768px) {
816    .city-grp{ 
817      width:50%;
818      left:auto;
819    }
820  }
821</style>
822
823<template id="city-tpl">
824  <div class="input-group city-grp hide">
825    <input type="text" class="form-control">
826    <a class="btn input-group-addon city-cncl"><i class="fa fa-times" aria-hidden="true"></i></a>
827  </div>
828</template>
829
830<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/suggestions.min.css" rel="stylesheet" />
831<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/jquery.suggestions.min.js"></script>
831
832
833<script>
834  const toggle = new Event('toggle');
835  const dadata = {
836    addon: "spinner",
837    token: "fe9a8516b9c77e02807d3c87b09fdc052ef4ddcc",
838    type: "ADDRESS",
839    minChars: 3,
840    geoLocation: false,
841    onSelect: dispatchChange,
842    scrollOnFocus:false
843  }
844  let savedLocation = null; 
845    
846  function dispatchChange(location){
847    location && (savedLocation = updateLocation(location));
848    return this.dispatchEvent(new CustomEvent('cityChanged', { bubbles: true, detail: location || {"value":"г Москва","unrestricted_value":"101000, г Москва","data":{"postal_code":"101000","country":"Россия","country_iso_code":"RU","federal_district":"Центральный","region_fias_id":"0c5b2444-70a0-4932-980c-b4dc0d3f02b5","region_kladr_id":"7700000000000","region_iso_code":"RU-MOW","region_with_type":"г Москва","region_type":"г","region_type_full":"город","region":"Москва","area_fias_id":null,"area_kladr_id":null,"area_with_type":null,"area_type":null,"area_type_full":null,"area":null,"city_fias_id":"0c5b2444-70a0-4932-980c-b4dc0d3f02b5","city_kladr_id":"7700000000000","city_with_type":"г Москва","city_type":"г","city_type_full":"город","city":"Москва","city_area":null,"city_district_fias_id":null,"city_district_kladr_id":null,"city_district_with_type":null,"city_district_type":null,"city_district_type_full":null,"city_district":null,"settlement_fias_id":null,"settlement_kladr_id":null,"settlement_with_type":null,"settlement_type":null,"settlement_type_full":null,"settlement":null,"street_fias_id":null,"street_kladr_id":null,"street_with_type":null,"street_type":null,"street_type_full":null,"street":null,"house_fias_id":null,"house_kladr_id":null,"house_type":null,"house_type_full":null,"house":null,"block_type":null,"block_type_full":null,"block":null,"entrance":null,"floor":null,"flat_fias_id":null,"flat_type":null,"flat_type_full":null,"flat":null,"flat_area":null,"square_meter_price":null,"flat_price":null,"postal_box":null,"fias_id":"0c5b2444-70a0-4932-980c-b4dc0d3f02b5","fias_code":"77000000000000000000000","fias_level":"1","fias_actuality_state":"0","kladr_id":"7700000000000","geoname_id":"524901","capital_marker":"0","okato":"45000000000","oktmo":"45000000","tax_office":"7700","tax_office_legal":"7700","timezone":null,"geo_lat":"55.7540471","geo_lon":"37.620405","beltway_hit":null,"beltway_distance":null,"metro":null,"qc_geo":"4","qc_complete":null,"qc_house":null,"history_values":null,"unparsed_parts":null,"source":null,"qc":null}} }));
849  }
850
851  document.addEventListener('DOMContentLoaded', e => {
852    const tpl = document.getElementById('city-tpl');
853    const elems = [...document.querySelectorAll('.city-block')];
854
855    document.addEventListener('cityChanged', e => {
856      e.target.dispatchEvent(toggle);
857      const city = new Address(e.detail.data).city;
858      elems.forEach(el => el.textContent = city);
859      document.querySelectorAll('.city-text').forEach(el => el.textContent = city);
860    });
861    
862    const city = (savedLocation && savedLocation.data && new Address(savedLocation.data).city) || getLocationByIp(document);
863    elems.forEach(el => {
864      el.textContent = city;
865
866      const clone = tpl.content.cloneNode(true);
867      const grp = clone.querySelector('div');
868      const npt = grp.querySelector('input');
869      const c = el.closest('div');
870
871      c.append(clone);
872
873      el.addEventListener('click', e => {
874        e.preventDefault();
875        npt.dispatchEvent(toggle);
876        npt.value = el.textContent;
877        npt.focus();
878      });
879
880      npt.addEventListener('toggle', () => {
881        grp.classList.toggle('hide');
882      });
883
884      grp.querySelector('a').addEventListener('click', e => {
885        e.preventDefault();
886        npt.dispatchEvent(toggle);
887      });
888
889      $(npt).suggestions({ ...dadata, bounds:'city-settlement', mobileWidth:1023});
890    });
891
892  });
893
894  function updateLocation(location){
895    const options = {
896      method: 'POST',
897      headers: {'Content-Type': 'application/json'},
898      body: JSON.stringify(location),
899    };
900    fetch('/index.php?route=common/footer/setLocation', options).catch(error => console.log("error", error));
901    return location;
902  }
903
904  function getLocationByIp(context) {
905    const options = {
906      method: "GET",
907      mode: "cors",
908      headers: {
909        "Content-Type": "application/json",
910        "Accept": "application/json",
911        "Authorization": "Token " + dadata.token
912      }
913    };
914    const url = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/iplocate/address";
915    fetch(url, options)
916      .then(response => response.json())
917      .then(({location}) => dispatchChange.apply(context, [location]))
918      .catch(error => console.log("error", error));
919    return '';
920  }
921
922  function Address(data) {
923    this.address = data;
924
925    this.join = (array, separator = ", ") =>
925 [...new Set(array.filter(Boolean))].join(separator);
926    
927    this.postalCode = this.address.postal_code;
928
929    this.region = this.join([
930      this.join([this.address.region_type, this.address.region], " "),
931      this.join([this.address.area_type, this.address.area], " ")
932    ]);
933
934    this.city = this.join([
935      this.join([this.address.city_type, this.address.city], " "),
936      this.join([this.address.settlement_type, this.address.settlement], " ")
937    ]);
938
939    this.street = this.join([this.address.street_type, this.address.street], " ");
940
941    this.house = this.join([
942      this.join([this.address.house_type, this.address.house], " "),
943      this.join([this.address.block_type, this.address.block], " "),
944      this.join([this.address.flat_type, this.address.flat], " ")
945    ]);
946
947    return { postalCode:this.postalCode, region:this.region, city:this.city, street:this.street, house:this.house }
948  }
949</script>
949
950      
951</footer>
952<div itemscope itemtype="http://schema.org/Organization" class="hidden">
953    <span itemprop="name">Интернет-магазин подшипников</span>
954    <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
955        <span itemprop="streetAddress">ул. Выборгская, д.16 с.1, офис 709а</span>
956        <span itemprop="postalCode">125212</span>
957        <span itemprop="addressLocality">Москва</span>,
958    </div>
959    <span itemprop="telephone">8-800-222-60-22</span>,
960    <span itemprop="email">[email protected]</span>
961</div>
962<!--
963-->
964<script defer src="catalog/view/javascript/smart-cookies.js" type="text/javascript"></script>
964
965</body>
966</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.