
.so-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--so-border);
  backdrop-filter:blur(12px)
}

/* ServiceOK 13.6.0 — modern request form, preserving the site palette. */
body .so-request-section--in-modal{
  background:linear-gradient(145deg,#f7fbf5 0%,#eef8e9 55%,#fff 100%)!important;
}
body .so-request-section--in-modal .so-request-section__inner{
  gap:26px!important;
}
body .so-request-form.so-request-form--enhanced{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  padding:24px!important;
  border:1px solid rgba(72,154,24,.18)!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 22px 54px rgba(30,68,37,.12)!important;
}
body .so-request-form__eyebrow{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:28px;
  margin-bottom:2px;
  color:#1a2b20;
}
body .so-request-form__eyebrow > span{
  width:10px;height:10px;border-radius:50%;background:#58b719;
  box-shadow:0 0 0 6px rgba(88,183,25,.12);
}
body .so-request-form__eyebrow strong{font-size:14px;letter-spacing:.01em}
body .so-request-form__eyebrow small{margin-left:auto;color:#68736c;font-size:12px}
body .so-request-form--enhanced .so-request-field{
  position:relative;
  display:flex!important;
  flex-direction:column;
  gap:7px!important;
  margin:0!important;
  color:#34433a!important;
  font-size:13px!important;
  font-weight:750!important;
}
body .so-request-form--enhanced .so-request-field--message,
body .so-request-form--enhanced > button,
body .so-request-form--enhanced > small,
body .so-request-form--enhanced > .so-request-status,
body .so-request-form--enhanced > [data-selected-issues]{grid-column:1/-1}
body .so-request-form--enhanced input:not([type="hidden"]),
body .so-request-form--enhanced select,
body .so-request-form--enhanced textarea{
  width:100%!important;
  min-height:52px!important;
  margin:0!important;
  padding:13px 15px!important;
  border:1px solid #dce5dd!important;
  border-radius:14px!important;
  outline:none!important;
  background:#f8faf8!important;
  color:#172019!important;
  font:500 16px/1.35 inherit!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8)!important;
  transition:border-color .2s,box-shadow .2s,background .2s!important;
}
body .so-request-form--enhanced textarea{min-height:112px!important;padding-bottom:30px!important;resize:vertical}
body .so-request-form--enhanced .so-request-field:focus-within{color:#3d9311!important}
body .so-request-form--enhanced input:focus,
body .so-request-form--enhanced select:focus,
body .so-request-form--enhanced textarea:focus{
  border-color:#58b719!important;
  background:#fff!important;
  box-shadow:0 0 0 4px rgba(88,183,25,.12)!important;
}
body .so-request-form__counter{
  position:absolute;right:13px;bottom:9px;color:#879088;font-size:11px;font-weight:600;pointer-events:none
}
body .so-request-form--enhanced > button[type="submit"]{
  position:relative;
  min-height:56px!important;
  margin-top:3px!important;
  border:0!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#65c523,#48aa12)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:800!important;
  box-shadow:0 12px 25px rgba(76,170,19,.24)!important;
  cursor:pointer!important;
  transition:transform .2s,box-shadow .2s,filter .2s!important;
}
body .so-request-form--enhanced > button[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(76,170,19,.3)!important;filter:saturate(1.06)}
body .so-request-form--enhanced > button[type="submit"]:disabled{transform:none;cursor:wait;opacity:.7}
body .so-request-form--enhanced > small{margin:0!important;color:#748078!important;text-align:center!important;line-height:1.45!important}
body .so-request-form--enhanced .so-request-status{border-radius:14px!important}
@media (max-width:700px){
  body .so-request-form.so-request-form--enhanced{grid-template-columns:1fr!important;padding:18px!important;border-radius:20px!important}
  body .so-request-form--enhanced .so-request-field,
  body .so-request-form--enhanced > button,
  body .so-request-form--enhanced > small,
  body .so-request-form--enhanced > .so-request-status{grid-column:1!important}
  body .so-request-form__eyebrow{grid-column:1!important;align-items:flex-start;flex-wrap:wrap}
  body .so-request-form__eyebrow small{width:100%;margin-left:19px}
}
@media (prefers-reduced-motion:reduce){
  body .so-request-form--enhanced *{transition:none!important}
}
.admin-bar .so-header{top:32px}
.so-header.is-scrolled{box-shadow:0 10px 30px rgba(20,40,30,.08)}
.so-header__inner{
  min-height:78px;display:flex;align-items:center;gap:28px
}
.so-logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:255px}
.so-logo .custom-logo{max-height:58px;width:auto}
.so-logo__mark{font-size:34px;color:var(--so-green);line-height:1}
.so-logo__copy{display:grid;line-height:1}
.so-logo__copy strong{font-size:28px;letter-spacing:-1.4px}
.so-logo__copy strong span{color:var(--so-green)}
.so-logo__copy small{margin-top:6px;font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:.08em}
.so-nav{margin-left:auto}
.so-menu{display:flex;align-items:center;gap:34px;list-style:none;margin:0;padding:0}
.so-menu a{position:relative;padding:30px 0;text-decoration:none;font-size:14px;font-weight:650}
.so-menu a::after{content:"";position:absolute;left:0;right:100%;bottom:19px;height:2px;background:var(--so-green);transition:.2s}
.so-menu a:hover::after,.so-menu .current-menu-item>a::after{right:0}
.so-header__contact{display:flex;align-items:center;gap:10px;white-space:nowrap}
.so-header__phone-icon{font-size:25px;color:var(--so-green)}
.so-header__contact div{display:grid}
.so-header__contact a{text-decoration:none;font-weight:800;font-size:18px}
.so-header__contact small{color:var(--so-muted);font-size:11px}
.so-header__cta{min-height:46px;padding:0 20px}
.so-burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--so-border);background:#fff;border-radius:10px;padding:10px}
.so-burger span{display:block;height:2px;background:#111;margin:5px 0}

.so-hero{padding:28px 0 28px;background:#fff}
.so-hero__grid{display:grid;grid-template-columns:1fr 1.08fr;gap:36px;align-items:stretch}
.so-hero__content{padding:28px 0 0}
.so-hero h1{margin:14px 0 18px;font-size:clamp(42px,4vw,62px);line-height:1.04;letter-spacing:-2.8px}
.so-hero h1 span{color:var(--so-green)}
.so-hero__lead{margin:0 0 24px;color:var(--so-muted);font-size:17px;line-height:1.5}
.so-hero__benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 26px}
.so-hero__benefits>div{display:grid;grid-template-columns:38px 1fr;align-items:center}
.so-hero__benefits span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#eff7ea;color:var(--so-green-dark);font-weight:900}
.so-hero__benefits strong{font-size:13px}
.so-hero__benefits small{color:var(--so-muted);font-size:12px}
.so-hero__buttons{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.so-yandex{margin-top:24px;display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--so-border);border-radius:14px;background:#fff;box-shadow:var(--so-shadow)}
.so-yandex>div{padding:12px 16px;border-right:1px solid var(--so-border);display:flex;align-items:center;gap:8px}
.so-yandex>div:last-child{border-right:0}
.so-yandex__rating{color:#ffb400}
.so-yandex__rating strong{font-size:22px;color:#111}
.so-yandex__rating span{font-size:11px;color:var(--so-muted)}
.so-yandex__reviews{font-size:12px}
.so-yandex__badge{font-weight:900;color:#e43d30}
.so-yandex__badge span{font-size:11px;color:#333}
.so-hero__photo-wrap{min-height:450px;border-radius:24px;overflow:hidden;background:#eee}
.so-hero__photo{width:100%;height:100%;object-fit:cover}

.so-ticker{background:#f5f9f3;border-top:1px solid #edf2ec;border-bottom:1px solid #edf2ec}
.so-ticker__inner{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#3b4a40;font-size:13px}
.so-ticker b{color:#8c978f}

.so-main-grid{padding:22px 0 44px;background:#fff}
.so-main-grid__inner{display:grid;grid-template-columns:1.52fr .95fr;gap:20px}
.so-main-grid h2{font-size:28px;margin:6px 0 18px}
.so-device-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.so-device-card{border:1px solid var(--so-border);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 6px 18px rgba(30,52,40,.05);transition:.2s}
.so-device-card:hover{transform:translateY(-4px);box-shadow:var(--so-shadow)}
.so-device-card img{width:100%;height:142px;object-fit:contain;background:#fafafa;padding:10px}
.so-device-card__footer{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 14px;font-size:12px}
.so-device-card__footer a{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--so-green);color:var(--so-green);text-decoration:none}

.so-stats{margin-top:18px;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--so-border);border-radius:14px;background:#fff;box-shadow:var(--so-shadow)}
.so-stats>div{display:grid;grid-template-columns:36px 1fr;align-items:center;padding:17px 14px;border-right:1px solid var(--so-border)}
.so-stats>div:last-child{border-right:0}
.so-stats span{grid-row:1/3;color:var(--so-green);font-size:24px}
.so-stats strong{font-size:20px}
.so-stats small{font-size:10px;color:var(--so-muted)}

.so-side-column{display:grid;gap:18px}
.so-why{padding:22px;border-radius:16px;background:linear-gradient(145deg,#11221b,#1b2e26);color:#fff}
.so-why h3,.so-process h3{margin:0 0 16px;font-size:19px}
.so-why h3::after{content:"";display:block;width:34px;height:2px;background:var(--so-green);margin-top:8px}
.so-why__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.so-why__grid>div{display:grid;grid-template-columns:30px 1fr}
.so-why__grid span{grid-row:1/3;color:var(--so-green);font-size:22px}
.so-why__grid strong{font-size:12px}
.so-why__grid small{font-size:10px;color:#c9d4ce}

.so-process{padding:20px;border:1px solid var(--so-border);border-radius:16px;background:#fff}
.so-process__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.so-process__steps>div{position:relative;text-align:center;padding-top:2px}
.so-process__steps i{position:absolute;left:2px;bottom:38px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:var(--so-green);color:#fff;font-size:9px;font-style:normal}
.so-process__steps span{width:44px;height:44px;margin:0 auto 8px;border:1px solid var(--so-border);border-radius:50%;display:grid;place-items:center;font-size:18px}
.so-process__steps strong{display:block;font-size:10px}
.so-process__steps small{display:block;margin-top:5px;font-size:8px;color:var(--so-muted)}

.so-request-section{padding:70px 0;background:#f5f9f4}
.so-request-section__inner{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.so-request-section h2{font-size:42px;margin:8px 0 12px}
.so-request-section p{color:var(--so-muted)}
.so-request-form{display:grid;gap:12px;padding:24px;border-radius:18px;background:#fff;box-shadow:var(--so-shadow)}
.so-request-form input,.so-request-form textarea{width:100%;border:1px solid var(--so-border);border-radius:11px;padding:13px 14px;background:#fbfcfb}
.so-request-form small{color:var(--so-muted);font-size:10px}

.so-fab{position:fixed;right:28px;bottom:28px;z-index:150;display:flex;flex-direction:column;gap:10px}
.so-fab a,.so-fab button{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:0;background:#fff;color:var(--so-green);box-shadow:0 8px 18px rgba(20,40,30,.14);text-decoration:none;font-size:19px}
.so-fab__toggle{background:var(--so-green)!important;color:#fff!important;font-size:22px!important}

.so-footer{padding:46px 0 20px;background:#101814;color:#fff}
.so-footer__inner{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.so-footer__inner>div{display:grid;align-content:start;gap:7px}
.so-footer p,.so-footer span{color:#b3bdb7}
.so-footer a{text-decoration:none}
.so-logo--footer{min-width:auto}
.so-footer__bottom{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);color:#7f8a83;font-size:12px}
.so-content{padding:60px 0}

@media(max-width:1200px){
  .so-header__contact{display:none}
  .so-main-grid__inner{grid-template-columns:1fr}
}
@media(max-width:980px){
  .admin-bar .so-header{top:46px}
  .so-nav{position:absolute;left:14px;right:14px;top:calc(100% + 8px);display:none;padding:14px;border:1px solid var(--so-border);border-radius:14px;background:#fff;box-shadow:var(--so-shadow)}
  .so-nav.is-open{display:block}
  .so-menu{display:grid;gap:0}
  .so-menu a{padding:12px}
  .so-menu a::after{display:none}
  .so-burger{display:block}
  .so-header__cta{display:none}
  .so-hero__grid{grid-template-columns:1fr}
  .so-hero__photo-wrap{min-height:390px}
  .so-ticker__inner{overflow-x:auto;justify-content:flex-start;white-space:nowrap}
}
@media(max-width:760px){
  .so-logo{min-width:auto}
  .so-logo__copy small{display:none}
  .so-logo__copy strong{font-size:24px}
  .so-hero h1{font-size:40px;letter-spacing:-2px}
  .so-hero__benefits{grid-template-columns:1fr}
  .so-hero__buttons{grid-template-columns:1fr}
  .so-yandex{grid-template-columns:1fr}
  .so-yandex>div{border-right:0;border-bottom:1px solid var(--so-border)}
  .so-yandex>div:last-child{border-bottom:0}
  .so-device-grid{grid-template-columns:repeat(2,1fr)}
  .so-stats{grid-template-columns:1fr}
  .so-stats>div{border-right:0;border-bottom:1px solid var(--so-border)}
  .so-stats>div:last-child{border-bottom:0}
  .so-why__grid{grid-template-columns:1fr}
  .so-process__steps{grid-template-columns:1fr 1fr;gap:18px}
  .so-request-section__inner{grid-template-columns:1fr}
  .so-footer__inner{grid-template-columns:1fr}
}
@media(max-width:500px){
  .so-device-grid{grid-template-columns:1fr}
  .so-process__steps{grid-template-columns:1fr}
  .so-fab{right:16px;bottom:16px}
}


/* v0.5.0 — уточнение макета, крупный Hero и рабочая форма */
.so-header__inner{
  min-height:84px;
  gap:24px;
}
.so-logo{
  min-width:235px;
}
.so-logo .custom-logo{
  max-height:64px;
}
.so-nav{
  margin-left:26px;
}
.so-menu{
  gap:30px;
}
.so-header__contact{
  margin-left:auto;
}
.so-header__cta{
  min-width:178px;
}

.so-hero{
  padding:34px 0 30px;
}
.so-hero__grid{
  grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  gap:46px;
}
.so-hero__content{
  padding-top:34px;
}
.so-hero h1{
  max-width:760px;
  margin-top:16px;
  font-size:clamp(46px,4.4vw,68px);
  line-height:1.03;
}
.so-hero__lead{
  font-size:18px;
}
.so-hero__photo-wrap{
  min-height:535px;
  border-radius:24px;
  box-shadow:0 20px 55px rgba(25,50,35,.12);
}
.so-hero__photo{
  object-position:center;
}
.so-hero__buttons .so-btn{
  min-height:58px;
  font-size:16px;
}
.so-yandex{
  margin-top:28px;
}
.so-yandex>div{
  min-height:64px;
}

.so-request-form label{
  display:grid;
  gap:6px;
}
.so-request-form label span{
  font-size:12px;
  font-weight:750;
  color:#475149;
}
.so-request-form input,
.so-request-form textarea{
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.so-request-form input:focus,
.so-request-form textarea:focus{
  border-color:var(--so-green);
  box-shadow:0 0 0 3px rgba(88,183,25,.12);
  background:#fff;
}
.so-form-notice{
  margin-bottom:14px;
  padding:12px 14px;
  border-radius:11px;
  font-size:13px;
  font-weight:700;
}
.so-form-notice--success{
  color:#23670d;
  background:#edf8e9;
  border:1px solid #cce9c1;
}
.so-form-notice--error{
  color:#8b2c22;
  background:#fff0ee;
  border:1px solid #f1c8c2;
}

/* Плавающее меню скрывает подпункты в свёрнутом состоянии */
.so-fab.is-collapsed a{
  display:none;
}
.so-fab.is-collapsed .so-fab__toggle{
  display:grid;
}

@media(max-width:1320px){
  .so-menu{gap:22px}
  .so-header__contact small{display:none}
  .so-header__contact a{font-size:16px}
}
@media(max-width:1100px){
  .so-header__contact{display:none}
  .so-nav{margin-left:auto}
}
@media(max-width:980px){
  .so-hero__grid{gap:28px}
  .so-hero__photo-wrap{min-height:430px}
}
@media(max-width:760px){
  .so-hero__content{padding-top:8px}
  .so-hero h1{font-size:42px}
  .so-hero__photo-wrap{min-height:330px}
}


/* v0.6.0 — убран повторяющийся инфоблок и переработано плавающее меню */
.so-main-grid{
  padding-top:34px;
}

.so-main-grid__inner{
  gap:24px;
}

.so-device-card{
  border-radius:18px;
}

.so-device-card img{
  height:154px;
}

.so-stats{
  margin-top:22px;
  border-radius:18px;
  overflow:hidden;
}

.so-why,
.so-process{
  border-radius:18px;
}

.so-request-section{
  padding:34px 0 52px;
}

.so-request-section__inner{
  grid-template-columns:.85fr 1.15fr;
  gap:34px;
  padding:28px 30px;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#f7faf6;
}

.so-request-section h2{
  font-size:34px;
  margin-bottom:8px;
}

.so-request-form{
  grid-template-columns:1fr 1fr;
  align-items:end;
  box-shadow:none;
  border:0;
  padding:0;
  background:transparent;
}

.so-request-form label:last-of-type{
  grid-column:1 / -1;
}

.so-request-form button{
  grid-column:1 / -1;
}

.so-request-form small,
.so-form-notice{
  grid-column:1 / -1;
}

.so-fab{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:150;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}

.so-fab__toggle,
.so-fab__chat{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:0;
  background:var(--so-green);
  color:#fff;
  box-shadow:0 10px 24px rgba(31,87,34,.22);
  text-decoration:none;
  font-weight:900;
  cursor:pointer;
}

.so-fab__chat{
  font-size:12px;
  letter-spacing:-1px;
}

.so-fab__menu{
  width:132px;
  padding:8px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 36px rgba(24,46,31,.18);
  border:1px solid var(--so-border);
  display:grid;
  gap:6px;
  transition:.2s ease;
}

.so-fab__menu a{
  min-height:42px;
  padding:7px 10px;
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:9px;
  text-decoration:none;
  color:var(--so-text);
  background:#fff;
  transition:.2s ease;
}

.so-fab__menu a:hover{
  background:#f0f8ec;
  color:var(--so-green-dark);
}

.so-fab__menu span{
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#edf8e8;
  color:var(--so-green-dark);
  font-size:14px;
  flex:0 0 26px;
}

.so-fab__menu small{
  font-size:11px;
  font-weight:750;
}

.so-fab.is-collapsed .so-fab__menu{
  opacity:0;
  pointer-events:none;
  transform:translateY(8px) scale(.96);
  position:absolute;
  bottom:116px;
}

.so-fab:not(.is-collapsed) .so-fab__toggle{
  transform:rotate(45deg);
}

@media(max-width:980px){
  .so-request-section__inner{
    grid-template-columns:1fr;
  }
}

@media(max-width:760px){
  .so-request-form{
    grid-template-columns:1fr;
  }
  .so-request-form label:last-of-type,
  .so-request-form button,
  .so-request-form small,
  .so-form-notice{
    grid-column:auto;
  }
  .so-fab{
    right:14px;
    bottom:14px;
  }
  .so-fab__menu{
    width:126px;
  }
}


/* v0.7.0 — Hero Premium, SVG-иконки, улучшенные карточки и форма */
.so-hero{
  position:relative;
  overflow:hidden;
}
.so-hero::before{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  left:-180px;
  top:-210px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(88,183,25,.10),rgba(88,183,25,0) 68%);
  pointer-events:none;
}
.so-hero__grid{
  position:relative;
  z-index:1;
}
.so-hero h1{
  text-wrap:balance;
}
.so-hero__photo-wrap{
  position:relative;
  overflow:hidden;
}
.so-hero__photo-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.34);
  pointer-events:none;
}
.so-hero__photo{
  transition:transform .65s cubic-bezier(.2,.7,.2,1);
}
.so-hero__photo-wrap:hover .so-hero__photo{
  transform:scale(1.018);
}

.so-hero__benefits{
  gap:20px;
}
.so-benefit{
  display:grid !important;
  grid-template-columns:44px 1fr !important;
  min-width:0;
}
.so-icon{
  grid-row:1/3 !important;
  width:44px !important;
  height:44px !important;
  padding:10px;
  border:1px solid #dcefd4;
  background:linear-gradient(180deg,#f5fbf2,#eaf6e5) !important;
}
.so-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.so-device-card{
  position:relative;
  isolation:isolate;
}
.so-device-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(145deg,rgba(88,183,25,.08),transparent 45%);
  opacity:0;
  transition:.2s ease;
}
.so-device-card:hover::before{
  opacity:1;
}
.so-device-card img{
  transition:transform .3s ease;
}
.so-device-card:hover img{
  transform:scale(1.04);
}
.so-device-card__footer a{
  transition:.2s ease;
}
.so-device-card:hover .so-device-card__footer a{
  background:var(--so-green);
  color:#fff;
  transform:translateX(2px);
}

.so-why__grid>div{
  padding:8px;
  border-radius:10px;
  transition:background .2s ease;
}
.so-why__grid>div:hover{
  background:rgba(255,255,255,.045);
}
.so-why__grid span{
  display:grid;
  place-items:start center;
}

.so-process__steps>div::after{
  content:"";
  position:absolute;
  top:24px;
  left:calc(50% + 28px);
  width:calc(100% - 56px);
  border-top:1px dashed #90ca72;
}
.so-process__steps>div:last-child::after{
  display:none;
}

.so-request-form select{
  width:100%;
  border:1px solid var(--so-border);
  border-radius:11px;
  padding:13px 14px;
  background:#fbfcfb;
  color:var(--so-text);
  outline:none;
}
.so-request-form select:focus{
  border-color:var(--so-green);
  box-shadow:0 0 0 3px rgba(88,183,25,.12);
  background:#fff;
}
.so-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

/* Плавное появление без тяжёлых библиотек */
.so-reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .58s ease,transform .58s ease;
}
.so-reveal--delay{
  transition-delay:.10s;
}
.so-reveal.is-visible{
  opacity:1;
  transform:none;
}

@media(prefers-reduced-motion:reduce){
  .so-reveal{
    opacity:1;
    transform:none;
    transition:none;
  }
  .so-hero__photo,
  .so-device-card img{
    transition:none;
  }
}

@media(max-width:760px){
  .so-process__steps>div::after{
    display:none;
  }
}


/* v0.8.0 — крупнее и читабельнее блок «Как проходит ремонт» */
.so-process{
  padding:24px 22px 26px;
}

.so-process h3{
  margin-bottom:22px;
  font-size:23px;
  line-height:1.2;
}

.so-process__steps{
  gap:14px;
}

.so-process__steps>div{
  min-height:168px;
  padding:8px 8px 4px;
}

.so-process__steps i{
  left:8px;
  bottom:auto;
  top:12px;
  width:24px;
  height:24px;
  font-size:12px;
  font-weight:800;
  box-shadow:0 4px 10px rgba(88,183,25,.20);
}

.so-process__icon{
  width:58px !important;
  height:58px !important;
  margin:0 auto 12px !important;
  padding:14px;
  border:1px solid #dcebd6 !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center;
  color:var(--so-green-dark);
  background:linear-gradient(180deg,#fbfef9,#edf7e8);
}

.so-process__icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.so-process__steps strong{
  display:block;
  max-width:150px;
  margin:0 auto;
  font-size:15px;
  line-height:1.28;
}

.so-process__steps small{
  display:block;
  max-width:165px;
  margin:8px auto 0;
  font-size:13px;
  line-height:1.38;
  color:var(--so-muted);
}

.so-process__steps>div::after{
  top:37px;
  left:calc(50% + 34px);
  width:calc(100% - 68px);
}

.so-process__steps>div{
  transition:transform .2s ease;
}

.so-process__steps>div:hover{
  transform:translateY(-3px);
}

@media(max-width:760px){
  .so-process{
    padding:22px 18px;
  }

  .so-process h3{
    font-size:22px;
  }

  .so-process__steps{
    gap:20px;
  }

  .so-process__steps>div{
    min-height:auto;
    padding:8px 0 14px;
  }

  .so-process__steps strong{
    font-size:16px;
  }

  .so-process__steps small{
    font-size:14px;
    max-width:220px;
  }

  .so-process__icon{
    width:62px !important;
    height:62px !important;
  }
}


/* v0.9.0 — Premium UI */
.so-header{
  transition:box-shadow .25s ease, background .25s ease;
}
.so-header__inner{
  transition:min-height .25s ease;
}
.so-header.is-scrolled .so-header__inner{
  min-height:68px;
}
.so-header.is-scrolled .so-logo .custom-logo{
  max-height:50px;
}
.so-header.is-scrolled .so-logo__copy strong{
  font-size:24px;
}
.so-header.is-scrolled .so-menu a{
  padding-top:22px;
  padding-bottom:22px;
}

.so-yandex{
  overflow:hidden;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#fbfcfb);
}
.so-yandex>div{
  min-height:72px;
  padding:12px 18px;
  gap:12px;
}
.so-yandex strong,
.so-yandex small{
  display:block;
}
.so-yandex strong{
  font-size:18px;
  line-height:1.05;
  color:#161b18;
}
.so-yandex small{
  margin-top:4px;
  color:var(--so-muted);
  font-size:11px;
}
.so-yandex__star{
  font-size:27px;
  color:#ffb400;
  line-height:1;
}
.so-yandex__review-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#edf7e8;
  color:var(--so-green-dark);
  font-size:16px;
}
.so-yandex__ya{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#fff1ef;
  color:#e83d31;
  font-size:20px;
  font-weight:900;
}

.so-device-card{
  min-height:236px;
  box-shadow:0 10px 28px rgba(27,54,36,.06);
}
.so-device-card img{
  height:164px;
}
.so-device-card__footer{
  padding:14px 14px 16px;
}
.so-device-card__footer strong{
  font-size:13px;
}
.so-device-card__footer a{
  width:28px;
  height:28px;
}

.so-why{
  position:relative;
  overflow:hidden;
  padding:26px;
  background:
    radial-gradient(circle at 100% 0,rgba(88,183,25,.16),transparent 34%),
    linear-gradient(145deg,#102019,#1a2c24);
  box-shadow:0 18px 40px rgba(10,25,17,.14);
}
.so-why::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-80px;
  bottom:-100px;
  border-radius:50%;
  background:rgba(88,183,25,.08);
}
.so-why h3{
  position:relative;
  z-index:1;
  font-size:23px;
}
.so-why__grid{
  position:relative;
  z-index:1;
  gap:12px;
}
.so-why__item{
  min-height:92px;
  padding:13px 12px !important;
  grid-template-columns:44px 1fr !important;
  align-content:center;
  border:1px solid rgba(255,255,255,.06);
  border-radius:14px !important;
  background:rgba(255,255,255,.025);
}
.so-why__item:hover{
  background:rgba(255,255,255,.065) !important;
  border-color:rgba(115,205,66,.20);
  transform:translateY(-2px);
}
.so-why__icon{
  grid-row:1/3 !important;
  width:38px;
  height:38px;
  display:grid !important;
  place-items:center !important;
  padding:8px;
  border-radius:12px;
  background:rgba(88,183,25,.12);
  color:#77d342 !important;
}
.so-why__icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.so-why__item strong{
  font-size:13px !important;
}
.so-why__item small{
  margin-top:4px;
  font-size:11px !important;
  line-height:1.35;
}

.so-process{
  box-shadow:0 12px 30px rgba(27,54,36,.05);
}
.so-process__steps>div{
  border-radius:14px;
}
.so-process__steps>div:hover{
  background:#fbfdfb;
}

.so-btn{
  box-shadow:0 8px 18px rgba(30,70,40,.08);
}
.so-btn--primary{
  background:linear-gradient(180deg,#67c728,#4eaa14);
}
.so-btn--secondary{
  background:linear-gradient(180deg,#fff,#fbfdfb);
}

@media(max-width:980px){
  .so-header.is-scrolled .so-header__inner{
    min-height:72px;
  }
}

@media(max-width:760px){
  .so-yandex{
    grid-template-columns:1fr 1fr 1fr;
  }
  .so-yandex>div{
    min-height:82px;
    padding:10px;
    justify-content:center;
    text-align:center;
  }
  .so-yandex__star,
  .so-yandex__review-icon,
  .so-yandex__ya{
    margin-bottom:4px;
  }
  .so-yandex>div{
    flex-direction:column;
  }
  .so-yandex strong{
    font-size:15px;
  }
  .so-yandex small{
    font-size:9px;
  }
}

@media(max-width:520px){
  .so-yandex{
    grid-template-columns:1fr;
  }
  .so-yandex>div{
    min-height:auto;
    flex-direction:row;
    justify-content:flex-start;
    text-align:left;
    border-right:0;
    border-bottom:1px solid var(--so-border);
  }
  .so-yandex>div:last-child{
    border-bottom:0;
  }
}


/* v1.0.0 — отзывы, карта, финальный подвал и мобильная панель */
.so-reviews{
  padding:76px 0;
  background:linear-gradient(180deg,#f7faf6,#fff);
}
.so-reviews__head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:28px;
  margin-bottom:28px;
}
.so-reviews__head h2{
  margin:8px 0 10px;
  font-size:clamp(34px,3.5vw,50px);
  letter-spacing:-1.8px;
}
.so-reviews__head p{
  margin:0;
  color:var(--so-muted);
}
.so-review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.so-review-card{
  min-height:238px;
  padding:24px;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(25,50,34,.06);
  transition:transform .2s ease,box-shadow .2s ease;
}
.so-review-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 42px rgba(25,50,34,.10);
}
.so-review-card__top{
  display:grid;
  grid-template-columns:46px 1fr auto;
  align-items:center;
  gap:12px;
}
.so-review-card__avatar{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#edf7e8;
  color:var(--so-green-dark);
  font-size:13px;
  font-weight:900;
}
.so-review-card__top strong,
.so-review-card__top small{
  display:block;
}
.so-review-card__top small{
  margin-top:3px;
  color:var(--so-muted);
  font-size:10px;
}
.so-review-card__top>span{
  color:#ffb400;
  font-size:13px;
  letter-spacing:1px;
}
.so-review-card p{
  margin:22px 0 0;
  color:#475149;
  font-size:15px;
  line-height:1.62;
}
.so-reviews__summary{
  margin-top:20px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:16px;
  background:#fff;
}
.so-reviews__summary>div{
  padding:18px;
  text-align:center;
  border-right:1px solid var(--so-border);
}
.so-reviews__summary>div:last-child{
  border-right:0;
}
.so-reviews__summary strong,
.so-reviews__summary span{
  display:block;
}
.so-reviews__summary strong{
  font-size:25px;
  color:var(--so-green-dark);
}
.so-reviews__summary span{
  margin-top:3px;
  color:var(--so-muted);
  font-size:11px;
}

.so-contacts{
  padding:76px 0;
  background:#fff;
}
.so-contacts__grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:30px;
  align-items:stretch;
}
.so-contacts__info{
  padding:34px;
  border-radius:22px;
  background:linear-gradient(145deg,#102019,#1a2d24);
  color:#fff;
  box-shadow:0 18px 45px rgba(12,31,20,.15);
}
.so-contacts__info h2{
  margin:8px 0 12px;
  font-size:clamp(34px,3.5vw,48px);
  line-height:1.05;
}
.so-contacts__lead{
  margin:0 0 25px;
  color:#c6d1cb;
}
.so-contact-list{
  display:grid;
  gap:12px;
}
.so-contact-list>a,
.so-contact-list>div{
  display:grid;
  grid-template-columns:44px 1fr;
  align-items:center;
  gap:12px;
  padding:13px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  text-decoration:none;
}
.so-contact-list>*>span{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:rgba(88,183,25,.13);
  color:#83dc4d;
  font-size:19px;
}
.so-contact-list small,
.so-contact-list strong{
  display:block;
}
.so-contact-list small{
  color:#9eada4;
  font-size:10px;
}
.so-contact-list strong{
  margin-top:3px;
  font-size:14px;
}
.so-contacts__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:22px;
}
.so-contacts__actions .so-btn--secondary{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.06);
  color:#fff;
}
.so-map{
  min-height:480px;
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:22px;
  background:#eef3ee;
  box-shadow:0 15px 38px rgba(25,50,34,.08);
}
.so-map iframe{
  width:100%;
  height:100%;
  min-height:480px;
  border:0;
}

.so-footer{
  padding:52px 0 18px;
}
.so-footer__inner{
  grid-template-columns:1.35fr .9fr 1fr;
}
.so-footer__brand p{
  max-width:440px;
}
.so-footer__socials{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.so-footer__socials a{
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:9px;
  color:#d6ded9;
  font-size:11px;
  transition:.2s ease;
}
.so-footer__socials a:hover{
  border-color:rgba(117,211,65,.45);
  color:#8de158;
}
.so-footer__column{
  display:grid;
  align-content:start;
  gap:9px;
}
.so-footer__column>strong{
  margin-bottom:5px;
  color:#fff;
  font-size:14px;
}
.so-footer__column a,
.so-footer__column span{
  color:#aeb9b2;
  font-size:12px;
}
.so-footer__column a:hover{
  color:#8de158;
}
.so-footer__bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.so-footer__bottom a{
  color:#7f8a83;
  font-size:11px;
}

.so-mobile-bar{
  display:none;
}

@media(max-width:980px){
  .so-review-grid{
    grid-template-columns:1fr;
  }
  .so-contacts__grid{
    grid-template-columns:1fr;
  }
  .so-map,
  .so-map iframe{
    min-height:400px;
  }
}
@media(max-width:760px){
  body{
    padding-bottom:66px;
  }
  .so-reviews,
  .so-contacts{
    padding:52px 0;
  }
  .so-reviews__head{
    display:grid;
    align-items:start;
  }
  .so-reviews__head .so-btn{
    width:100%;
  }
  .so-reviews__summary{
    grid-template-columns:1fr 1fr;
  }
  .so-reviews__summary>div:nth-child(2){
    border-right:0;
  }
  .so-reviews__summary>div:nth-child(-n+2){
    border-bottom:1px solid var(--so-border);
  }
  .so-contacts__info{
    padding:25px 20px;
  }
  .so-contacts__actions{
    grid-template-columns:1fr;
  }
  .so-map,
  .so-map iframe{
    min-height:330px;
  }
  .so-footer__inner{
    grid-template-columns:1fr;
  }
  .so-footer__bottom{
    display:grid;
    gap:8px;
  }
  .so-mobile-bar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:200;
    display:grid;
    grid-template-columns:1fr 1fr;
    padding:8px;
    padding-bottom:max(8px,env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);
    border-top:1px solid var(--so-border);
    box-shadow:0 -8px 24px rgba(20,40,30,.08);
    backdrop-filter:blur(12px);
  }
  .so-mobile-bar a{
    min-height:46px;
    display:grid;
    place-items:center;
    border-radius:11px;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
  }
  .so-mobile-bar a:first-child{
    color:var(--so-green-dark);
  }
  .so-mobile-bar a:last-child{
    background:var(--so-green);
    color:#fff;
  }
}


/* v1.3.0 — динамический модуль услуг */
.so-device-card{
  min-height:100%;
}
.so-device-card__media{
  min-height:164px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#fafafa;
  text-decoration:none;
}
.so-device-card__media img{
  width:100%;
  height:164px;
  object-fit:contain;
  padding:12px;
}
.so-device-card__fallback{
  font-size:72px;
  line-height:1;
}
.so-device-card__body{
  padding:15px 15px 16px;
}
.so-device-card__body h3{
  margin:0 0 8px;
  font-size:15px;
}
.so-device-card__body p{
  min-height:55px;
  margin:0 0 14px;
  color:var(--so-muted);
  font-size:12px;
  line-height:1.45;
}
.so-device-card__body .so-device-card__footer{
  padding:0;
}
.so-device-card__more{
  color:var(--so-green-dark);
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
.so-device-card__arrow{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid var(--so-green);
  border-radius:50%;
  color:var(--so-green);
  text-decoration:none;
}

.so-service-hero{
  padding:70px 0;
  background:linear-gradient(180deg,#f7faf6,#fff);
}
.so-service-hero__grid{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:46px;
  align-items:center;
}
.so-service-hero__icon{
  margin:18px 0 10px;
  font-size:54px;
}
.so-service-hero h1{
  margin:0 0 18px;
  font-size:clamp(42px,5vw,68px);
  line-height:1.02;
  letter-spacing:-2.8px;
}
.so-service-hero p{
  max-width:650px;
  color:var(--so-muted);
  font-size:18px;
}
.so-service-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:25px;
}
.so-service-hero__image{
  min-height:410px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:#eef7ea;
  box-shadow:var(--so-shadow);
}
.so-service-hero__image img{
  width:100%;
  height:100%;
  min-height:410px;
  object-fit:cover;
}
.so-service-hero__image>span{
  font-size:120px;
}
.so-service-content{
  padding:64px 0 80px;
}
.so-service-content__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:34px;
  align-items:start;
}
.so-service-content__article{
  font-size:17px;
  line-height:1.7;
}
.so-service-content__article h2{
  margin-top:36px;
  font-size:32px;
}
.so-service-sidebar{
  position:sticky;
  top:100px;
  padding:24px;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--so-shadow);
}
.so-service-sidebar h2{
  margin:0 0 10px;
  font-size:24px;
}
.so-service-sidebar p{
  color:var(--so-muted);
}
.so-service-sidebar .so-btn{
  width:100%;
  margin-top:10px;
}

.so-archive-head{
  padding:70px 0 35px;
  background:#f7faf6;
}
.so-archive-head h1{
  margin:8px 0 12px;
  font-size:clamp(42px,5vw,62px);
}
.so-archive-head p{
  max-width:760px;
  color:var(--so-muted);
  font-size:18px;
}
.so-archive-grid-section{
  padding:42px 0 80px;
}
.so-archive-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:22px;
}
.so-archive-card{
  display:grid;
  grid-template-columns:210px 1fr;
  gap:22px;
  padding:18px;
  border:1px solid var(--so-border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(25,50,34,.06);
}
.so-archive-card__media{
  min-height:180px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:#f6faf5;
  text-decoration:none;
}
.so-archive-card__media img{
  width:100%;
  height:180px;
  object-fit:contain;
}
.so-archive-card__media span{
  font-size:72px;
}
.so-archive-card h2{
  margin:4px 0 10px;
  font-size:24px;
}
.so-archive-card h2 a{
  text-decoration:none;
}
.so-archive-card p{
  color:var(--so-muted);
}

@media(max-width:980px){
  .so-service-hero__grid,
  .so-service-content__grid{
    grid-template-columns:1fr;
  }
  .so-service-sidebar{
    position:static;
  }
  .so-archive-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .so-service-hero{
    padding:48px 0;
  }
  .so-service-hero__image,
  .so-service-hero__image img{
    min-height:300px;
  }
  .so-archive-card{
    grid-template-columns:1fr;
  }
}


/* v1.4.0 — конструктор страниц услуг */
.so-service-benefits{
  position:relative;
  z-index:2;
  margin-top:-26px;
}
.so-service-benefits__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--so-shadow);
}
.so-service-benefits article{
  min-height:90px;
  padding:20px;
  display:flex;
  align-items:center;
  gap:13px;
  border-right:1px solid var(--so-border);
}
.so-service-benefits article:last-child{
  border-right:0;
}
.so-service-benefits article span{
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#edf8e8;
  color:var(--so-green-dark);
  font-weight:900;
}
.so-service-benefits article strong{
  font-size:14px;
}

.so-service-block{
  margin-top:52px;
}
.so-service-block h2{
  margin:8px 0 22px;
}
.so-brand-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.so-brand-grid div{
  min-height:68px;
  display:grid;
  place-items:center;
  padding:12px;
  border:1px solid var(--so-border);
  border-radius:13px;
  background:#fff;
  font-weight:800;
  box-shadow:0 7px 20px rgba(25,50,34,.04);
}
.so-fault-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:13px;
}
.so-fault-grid article{
  min-height:78px;
  padding:16px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--so-border);
  border-radius:14px;
  background:#fff;
}
.so-fault-grid span{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#edf8e8;
}
.so-fault-grid strong{
  font-size:14px;
}

.so-service-faq details{
  margin-bottom:10px;
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:13px;
  background:#fff;
}
.so-service-faq summary{
  position:relative;
  padding:17px 48px 17px 18px;
  cursor:pointer;
  font-weight:800;
  list-style:none;
}
.so-service-faq summary::-webkit-details-marker{
  display:none;
}
.so-service-faq summary::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  color:var(--so-green-dark);
  font-size:23px;
}
.so-service-faq details[open] summary::after{
  content:"−";
}
.so-service-faq details p{
  margin:0;
  padding:0 18px 18px;
  color:var(--so-muted);
}

.so-service-form{
  display:grid;
  gap:11px;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--so-border);
}
.so-service-form label{
  display:grid;
  gap:5px;
}
.so-service-form label span{
  font-size:11px;
  font-weight:750;
  color:#536059;
}
.so-service-form input,
.so-service-form textarea{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--so-border);
  border-radius:10px;
  background:#fbfcfb;
  outline:none;
}
.so-service-form input:focus,
.so-service-form textarea:focus{
  border-color:var(--so-green);
  box-shadow:0 0 0 3px rgba(88,183,25,.10);
}

@media(max-width:980px){
  .so-service-benefits__grid{
    grid-template-columns:1fr;
  }
  .so-service-benefits article{
    border-right:0;
    border-bottom:1px solid var(--so-border);
  }
  .so-service-benefits article:last-child{
    border-bottom:0;
  }
}
@media(max-width:700px){
  .so-brand-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .so-fault-grid{
    grid-template-columns:1fr;
  }
}


/* v1.5.0 — модуль «Выполненные работы» */
.so-works{
  padding:76px 0;
  background:#fff;
}
.so-works__head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:25px;
  margin-bottom:28px;
}
.so-works__head h2{
  margin:8px 0 9px;
  font-size:clamp(34px,3.5vw,50px);
  letter-spacing:-1.8px;
}
.so-works__head p{
  margin:0;
  color:var(--so-muted);
}
.so-work-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.so-work-card{
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(25,50,34,.06);
  transition:transform .2s ease,box-shadow .2s ease;
}
.so-work-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 42px rgba(25,50,34,.11);
}
.so-work-card__images{
  display:grid;
  grid-template-columns:1fr 1fr;
  height:190px;
  text-decoration:none;
}

.so-work-card__images--single{
  display:block;
}
.so-work-card__images--single .so-work-card__single{
  height:190px;
  border-right:0;
}
.so-work-card__images--single img{
  width:100%;
  height:190px;
  object-fit:cover;
}
.so-work-card__images>div{
  position:relative;
  overflow:hidden;
  background:#f4f7f4;
}
.so-work-card__images>div:first-child{
  border-right:2px solid #fff;
}
.so-work-card__images img{
  width:100%;
  height:190px;
  object-fit:cover;
  transition:transform .3s ease;
}
.so-work-card:hover .so-work-card__images img{
  transform:scale(1.035);
}
.so-work-card__images span{
  position:absolute;
  left:10px;
  top:10px;
  z-index:2;
  padding:5px 8px;
  border-radius:8px;
  background:rgba(16,30,21,.75);
  color:#fff;
  font-size:10px;
  font-weight:800;
}
.so-work-card__placeholder{
  height:100%;
  display:grid;
  place-items:center;
  color:#7d8881;
}
.so-work-card__body{
  padding:18px;
}
.so-work-card__body small{
  color:var(--so-green-dark);
  font-weight:800;
}
.so-work-card__body h3,
.so-work-card__body h2{
  margin:6px 0 8px;
  font-size:20px;
}
.so-work-card__body h3 a,
.so-work-card__body h2 a{
  text-decoration:none;
}
.so-work-card__body p{
  margin:0 0 13px;
  color:var(--so-muted);
  font-size:13px;
}
.so-work-card__link{
  color:var(--so-green-dark);
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
.so-work-empty{
  grid-column:1 / -1;
  padding:28px;
  border:1px dashed #cbd6ce;
  border-radius:16px;
  color:var(--so-muted);
  text-align:center;
  background:#f8faf8;
}

.so-related-work-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.so-related-work{
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:14px;
  background:#fff;
}
.so-related-work>a{
  min-height:150px;
  display:grid;
  place-items:center;
  background:#f5f8f5;
  text-decoration:none;
}
.so-related-work img{
  width:100%;
  height:150px;
  object-fit:cover;
}
.so-related-work>a>span{
  font-size:55px;
}
.so-related-work>div{
  padding:12px;
}
.so-related-work small{
  color:var(--so-muted);
  font-size:10px;
}
.so-related-work h3{
  margin:4px 0 0;
  font-size:14px;
}
.so-related-work h3 a{
  text-decoration:none;
}

.so-case-hero{
  padding:70px 0 36px;
  background:linear-gradient(180deg,#f7faf6,#fff);
}
.so-case-hero h1{
  max-width:950px;
  margin:8px 0 26px;
  font-size:clamp(40px,5vw,66px);
  line-height:1.03;
  letter-spacing:-2.5px;
}
.so-case-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.so-case-meta span{
  min-width:150px;
  padding:12px 14px;
  border:1px solid var(--so-border);
  border-radius:12px;
  background:#fff;
}
.so-case-meta small,
.so-case-meta strong{
  display:block;
}
.so-case-meta small{
  color:var(--so-muted);
  font-size:10px;
}
.so-case-meta strong{
  margin-top:3px;
  font-size:13px;
}
.so-case-content{
  padding:36px 0 80px;
}

.so-case-single-image{
  overflow:hidden;
  max-width:1050px;
  margin:0 auto;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#f7faf7;
  box-shadow:var(--so-shadow);
}
.so-case-single-image img{
  display:block;
  width:100%;
  height:auto;
  max-height:760px;
  object-fit:contain;
  background:#fff;
}
.so-before-after{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.so-before-after figure{
  margin:0;
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#f7faf7;
  box-shadow:var(--so-shadow);
}
.so-before-after figcaption{
  padding:12px 15px;
  background:#15251d;
  color:#fff;
  font-size:12px;
  font-weight:800;
}
.so-before-after img{
  width:100%;
  height:470px;
  object-fit:cover;
}
.so-case-placeholder{
  min-height:470px;
  display:grid;
  place-items:center;
  color:var(--so-muted);
}
.so-case-description{
  max-width:900px;
  margin:38px auto 0;
  font-size:17px;
  line-height:1.7;
}
.so-case-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}
.so-works-archive__section{
  padding:42px 0 80px;
}

@media(max-width:980px){
  .so-work-grid{
    grid-template-columns:1fr 1fr;
  }
  .so-related-work-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:700px){
  .so-works__head{
    display:grid;
    align-items:start;
  }
  .so-work-grid,
  .so-related-work-grid,
  .so-before-after{
    grid-template-columns:1fr;
  }
  .so-work-card__images{
    height:170px;
  }
  .so-work-card__images img{
    height:170px;
  }
  .so-before-after img,
  .so-case-placeholder{
    min-height:320px;
    height:320px;
  }
}


/* v1.7.0 — динамические отзывы */
.so-review-card__avatar{overflow:hidden}
.so-review-card__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}
.so-review-card__device{
  display:inline-flex;
  margin-top:18px;
  padding:6px 9px;
  border-radius:8px;
  background:#eef8e9;
  color:var(--so-green-dark);
  font-size:11px;
  font-weight:800;
}
.so-review-card__text{
  margin-top:16px;
  color:#475149;
  font-size:15px;
  line-height:1.62;
}
.so-review-card__text p{margin:0}
.so-review-card__source{
  display:inline-block;
  margin-top:16px;
  color:var(--so-green-dark);
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
.so-review-empty{
  grid-column:1 / -1;
  padding:28px;
  border:1px dashed #cbd6ce;
  border-radius:16px;
  color:var(--so-muted);
  text-align:center;
  background:#f8faf8;
}
.so-reviews-archive__section{padding:42px 0 80px}
.so-review-page__rating{
  color:#ffb400;
  font-size:28px;
  letter-spacing:3px;
}
.so-review-page .so-case-hero p{
  color:var(--so-muted);
  font-size:18px;
}
.so-review-page__content{
  max-width:820px;
  margin:0 auto;
  padding:34px;
  border:1px solid var(--so-border);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--so-shadow);
  font-size:18px;
  line-height:1.72;
}
.so-review-page__content .so-btn{margin-top:22px}


/* v2.0.0 — SEO-навигация и перелинковка */
.so-breadcrumbs{
  padding:14px 0;
  border-bottom:1px solid var(--so-border);
  background:#fbfcfb;
}
.so-breadcrumbs .so-container{
  display:flex;
  align-items:center;
  gap:9px;
  overflow-x:auto;
  white-space:nowrap;
  color:var(--so-muted);
  font-size:12px;
}
.so-breadcrumbs a{
  color:var(--so-green-dark);
  text-decoration:none;
}
.so-breadcrumbs strong{
  color:var(--so-text);
}
.so-related-services{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:13px;
}
.so-related-services article{
  padding:18px;
  border:1px solid var(--so-border);
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(28,54,37,.04);
}
.so-related-services article>span{
  font-size:32px;
}
.so-related-services h3{
  margin:11px 0 8px;
  font-size:16px;
}
.so-related-services h3 a{
  color:var(--so-text);
  text-decoration:none;
}
.so-related-services article>a{
  color:var(--so-green-dark);
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
@media(max-width:700px){
  .so-related-services{
    grid-template-columns:1fr;
  }
}


/* v3.1.0 — Цены и расширенный конструктор */
.so-price-list{
  overflow:hidden;
  border:1px solid var(--so-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 24px rgba(28,54,37,.04);
}
.so-price-list__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px 18px;
  border-bottom:1px solid var(--so-border);
}
.so-price-list__row:last-child{
  border-bottom:0;
}
.so-price-list__row strong{
  font-size:15px;
}
.so-price-list__row span{
  flex:0 0 auto;
  color:var(--so-green-dark);
  font-size:16px;
  font-weight:900;
}
.so-price-note{
  margin:12px 0 0;
  color:var(--so-muted);
  font-size:12px;
}
@media(max-width:560px){
  .so-price-list__row{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }
}


/* v3.2.0 — порядок блоков из ServiceOK Studio */
.so-service-content__article--ordered{
  display:flex;
  flex-direction:column;
}
.so-service-content__article--ordered>.so-service-orderable{
  width:100%;
}


/* v3.3.0 — эталонная страница услуги */
.so-service-hero__trust{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.so-service-hero__trust span{
  padding:7px 10px;
  border:1px solid rgba(47,126,52,.16);
  border-radius:9px;
  background:#f0f8ec;
  color:#315d27;
  font-size:11px;
  font-weight:800;
}
.so-service-hero__meta{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:14px;
  color:var(--so-muted);
  font-size:12px;
}
.so-service-hero__meta strong{
  color:#f0a800;
  font-size:15px;
}

.so-service-process{
  padding:68px 0;
  border-top:1px solid var(--so-border);
  border-bottom:1px solid var(--so-border);
  background:#f8fbf7;
}
.so-service-process h2{
  margin:8px 0 8px;
  font-size:clamp(32px,4vw,48px);
  letter-spacing:-1.5px;
}
.so-service-process__lead{
  margin:0 0 26px;
  color:var(--so-muted);
}
.so-service-process__grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
}
.so-service-process__grid article{
  position:relative;
  min-height:180px;
  padding:17px;
  border:1px solid var(--so-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(28,54,37,.04);
}
.so-service-process__grid article>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  margin-bottom:13px;
  border-radius:10px;
  background:#eaf7e4;
  color:var(--so-green-dark);
  font-weight:900;
}
.so-service-process__grid strong{
  display:block;
  font-size:14px;
}
.so-service-process__grid p{
  margin:8px 0 0;
  color:var(--so-muted);
  font-size:12px;
  line-height:1.5;
}

.so-service-review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.so-service-review{
  padding:18px;
  border:1px solid var(--so-border);
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(28,54,37,.04);
}
.so-service-review__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.so-service-review__top span{
  color:#ffb400;
  letter-spacing:1px;
}
.so-service-review small{
  display:block;
  margin-top:4px;
  color:var(--so-muted);
}
.so-service-review>div:last-child{
  margin-top:13px;
  color:#4c5850;
  line-height:1.6;
}
.so-service-review>div:last-child p{
  margin:0;
}

.so-service-final{
  padding:0 0 80px;
  background:#fff;
}
.so-service-final__card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  padding:34px;
  border-radius:22px;
  background:linear-gradient(135deg,#173322,#2d7040);
  color:#fff;
  box-shadow:0 18px 45px rgba(24,66,34,.16);
}
.so-service-final__card h2{
  margin:8px 0 10px;
  color:#fff;
  font-size:clamp(30px,4vw,46px);
  letter-spacing:-1.3px;
}
.so-service-final__card p{
  max-width:760px;
  margin:0;
  color:#d9e7dd;
  line-height:1.65;
}
.so-service-final__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.so-service-final .so-btn--secondary{
  border-color:rgba(255,255,255,.24);
  color:#fff;
  background:rgba(255,255,255,.07);
}

@media(max-width:1100px){
  .so-service-process__grid{
    grid-template-columns:repeat(3,1fr);
  }
}
@media(max-width:800px){
  .so-service-review-grid{
    grid-template-columns:1fr;
  }
  .so-service-final__card{
    grid-template-columns:1fr;
  }
}
@media(max-width:650px){
  .so-service-process__grid{
    grid-template-columns:1fr;
  }
  .so-service-process__grid article{
    min-height:auto;
  }
  .so-service-final__card{
    padding:24px;
  }
}


/* v3.4.0 — реальная эталонная страница ремонта телефонов */
.so-service-hero__image img{
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
  display:block;
}

.so-phone-popular{
  padding:70px 0;
  background:#fff;
}
.so-phone-popular h2,
.so-phone-honesty h2{
  margin:8px 0 9px;
  font-size:clamp(32px,4vw,48px);
  letter-spacing:-1.4px;
}
.so-phone-popular__lead{
  max-width:720px;
  margin:0 0 25px;
  color:var(--so-muted);
}
.so-phone-popular__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.so-phone-popular__grid article{
  min-height:205px;
  padding:21px;
  border:1px solid var(--so-border);
  border-radius:17px;
  background:#fff;
  box-shadow:0 9px 25px rgba(28,54,37,.045);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.so-phone-popular__grid article:hover{
  transform:translateY(-4px);
  border-color:#a9d395;
  box-shadow:0 16px 34px rgba(28,54,37,.09);
}
.so-phone-popular__grid article>span{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#eaf7e4;
  color:var(--so-green-dark);
  font-size:22px;
  font-weight:900;
}
.so-phone-popular__grid h3{
  margin:17px 0 8px;
  font-size:18px;
}
.so-phone-popular__grid p{
  margin:0;
  color:var(--so-muted);
  line-height:1.58;
}

.so-phone-honesty{
  padding:0 0 72px;
  background:#fff;
}
.so-phone-honesty__grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
  align-items:stretch;
}
.so-phone-honesty__grid>div:first-child{
  padding:31px;
  border:1px solid var(--so-border);
  border-radius:20px;
  background:#f8fbf7;
}
.so-phone-honesty__grid>div:first-child p{
  max-width:760px;
  margin:0;
  color:var(--so-muted);
  font-size:16px;
  line-height:1.7;
}
.so-phone-master-tip{
  padding:29px;
  border-radius:20px;
  background:linear-gradient(140deg,#173322,#2b6b3d);
  color:#fff;
}
.so-phone-master-tip>span{
  display:inline-block;
  margin-bottom:18px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:rgba(255,255,255,.07);
  color:#bfe2c7;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.so-phone-master-tip strong{
  display:block;
  margin-bottom:10px;
  color:#fff;
  font-size:23px;
}
.so-phone-master-tip p{
  margin:0;
  color:#d9e7dd;
  line-height:1.68;
}

@media(max-width:900px){
  .so-phone-popular__grid{
    grid-template-columns:repeat(2,1fr);
  }
  .so-phone-honesty__grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .so-phone-popular__grid{
    grid-template-columns:1fr;
  }
  .so-phone-popular,
  .so-service-process{
    padding:52px 0;
  }
  .so-phone-honesty{
    padding-bottom:52px;
  }
  .so-phone-honesty__grid>div:first-child,
  .so-phone-master-tip{
    padding:23px;
  }
  .so-service-hero__image img{
    min-height:300px;
  }
}

/* v3.5.0 — усиленный блок доверия и более плотный переход к работам */
.so-yandex{
  margin-top:28px;
  gap:10px;
  padding:10px;
  overflow:visible;
  border:1px solid rgba(44,91,53,.10);
  border-radius:20px;
  background:linear-gradient(135deg,#ffffff 0%,#f7fbf5 100%);
  box-shadow:0 18px 42px rgba(25,60,36,.10);
}
.so-yandex>div{
  min-height:94px;
  padding:16px 18px;
  border:0;
  border-radius:15px;
  gap:14px;
  transition:transform .2s ease,box-shadow .2s ease;
}
.so-yandex>div:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 24px rgba(30,65,40,.10);
}
.so-yandex__rating{
  background:linear-gradient(135deg,#fffaf0,#fff3cf);
}
.so-yandex__reviews{
  background:linear-gradient(135deg,#f1faec,#e5f6db);
}
.so-yandex__badge{
  background:linear-gradient(135deg,#fff4f2,#ffe6e1);
}
.so-yandex strong{
  font-size:25px;
  line-height:1.05;
  letter-spacing:-.4px;
}
.so-yandex__badge strong{
  font-size:21px;
  max-width:150px;
}
.so-yandex small{
  margin-top:6px;
  font-size:12px;
  line-height:1.3;
}
.so-yandex__star,
.so-yandex__review-icon,
.so-yandex__ya{
  flex:0 0 46px;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:14px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),0 7px 16px rgba(30,60,40,.08);
}
.so-yandex__star{
  background:#fff;
  color:#f3aa00;
  font-size:30px;
}
.so-yandex__review-icon{
  background:#fff;
  color:var(--so-green-dark);
  font-size:22px;
}
.so-yandex__ya{
  background:#fff;
  color:#e43d30;
  font-size:25px;
}

/* Убираем ощущение пустого экрана между статистикой и работами */
.so-main-grid{
  padding-bottom:18px;
}
.so-works{
  padding-top:34px;
}
.so-works__head{
  margin-bottom:24px;
}

@media(max-width:760px){
  .so-yandex{
    gap:7px;
    padding:7px;
  }
  .so-yandex>div{
    min-height:108px;
    padding:12px 8px;
  }
  .so-yandex strong{
    font-size:18px;
  }
  .so-yandex__badge strong{
    font-size:16px;
  }
  .so-yandex small{
    font-size:10px;
  }
  .so-yandex__star,
  .so-yandex__review-icon,
  .so-yandex__ya{
    flex-basis:40px;
    width:40px;
    height:40px;
  }
  .so-works{
    padding-top:28px;
  }
}

@media(max-width:520px){
  .so-yandex{
    gap:8px;
  }
  .so-yandex>div{
    min-height:82px;
    border-bottom:0;
  }
  .so-yandex__badge strong{
    max-width:none;
  }
}

/* v3.5.1 — исправление карточек услуг, кнопок и нижней статистики */
.so-device-grid{align-items:stretch}
.so-device-card{display:flex;flex-direction:column;min-height:360px;border-radius:18px}
.so-device-card__media{display:block;height:164px;padding:20px;background:linear-gradient(180deg,#fbfdfb,#f4f8f3);overflow:hidden}
.so-device-card__media img{width:100%;height:100%;padding:0;background:transparent;object-fit:contain;filter:none;opacity:1}
.so-device-card__body{display:flex;flex:1;flex-direction:column;padding:18px 16px 16px}
.so-device-card__body h3{margin:0 0 10px;font-size:16px;line-height:1.35}
.so-device-card__body p{margin:0 0 18px;line-height:1.55}
.so-device-card__footer{margin-top:auto;padding:0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.so-device-card__more{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 15px;border:1px solid #71c94a!important;border-radius:999px;background:#f4faef;color:#3d9c1c!important;font-size:13px!important;font-weight:800!important;line-height:1;text-decoration:none;white-space:nowrap}
.so-device-card__arrow{flex:0 0 38px!important;width:38px!important;height:38px!important;border:1px solid #71c94a!important;border-radius:50%!important;background:#fff;color:#3d9c1c!important;font-size:20px;line-height:1;text-decoration:none}
.so-device-card:hover .so-device-card__more,.so-device-card:hover .so-device-card__arrow{background:#58b719;color:#fff!important;border-color:#58b719!important}

.so-stats{gap:10px;padding:10px;border:0;background:transparent;box-shadow:none}
.so-stats>div{grid-template-columns:52px 1fr;min-height:92px;padding:16px;border:1px solid rgba(44,91,53,.10)!important;border-radius:15px;background:#fff;box-shadow:0 10px 28px rgba(27,54,36,.07)}
.so-stats .so-stat__icon{grid-row:1/3;width:44px;height:44px;display:grid;place-items:center;border-radius:13px;font-size:0}
.so-stat__icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.so-stats strong{font-size:21px;line-height:1.05;color:#151a17}
.so-stats small{margin-top:5px;font-size:10px;line-height:1.35}
.so-stat--rating{background:linear-gradient(135deg,#fffaf0,#fff3cf)!important}
.so-stat--rating .so-stat__icon{background:#fff4c7;color:#e5a000}
.so-stat--reviews{background:linear-gradient(135deg,#f2faee,#e5f6dc)!important}
.so-stat--reviews .so-stat__icon{background:#e1f4d8;color:#3e9f1f}
.so-stat--repairs .so-stat__icon,.so-stat--warranty .so-stat__icon,.so-stat--location .so-stat__icon{background:#edf7e8;color:#4aa927}
.so-stat--location strong{font-size:18px}

@media(max-width:1100px){
 .so-device-card{min-height:340px}
 .so-stats{grid-template-columns:repeat(2,1fr)}
 .so-stats>div:last-child{grid-column:1/-1}
}
@media(max-width:760px){
 .so-device-card__media{height:150px}
 .so-stats{grid-template-columns:1fr}
 .so-stats>div:last-child{grid-column:auto}
}

/* v3.5.2 — аккуратные CTA, компактный переход и переработанный блок Яндекса */
.so-device-card__footer{
  margin-top:auto!important;
  padding:0!important;
  display:block!important;
}
.so-device-card__footer .so-device-card__more{
  width:100%!important;
  height:44px!important;
  min-height:44px!important;
  padding:0 8px 0 18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  border:1px solid #69bd3a!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#368f17!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.so-device-card__more-arrow{
  flex:0 0 30px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#eaf7e3;
  color:#369218;
  font-size:18px;
  transition:.2s ease;
}
.so-device-card:hover .so-device-card__footer .so-device-card__more{
  background:#58b719!important;
  border-color:#58b719!important;
  color:#fff!important;
}
.so-device-card:hover .so-device-card__more-arrow{
  background:rgba(255,255,255,.2);
  color:#fff;
  transform:translateX(2px);
}

.so-yandex{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  padding:10px!important;
  border:1px solid #e7ece8!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 12px 30px rgba(28,52,38,.08)!important;
}
.so-yandex>div{
  min-width:0!important;
  min-height:92px!important;
  padding:16px!important;
  display:flex!important;
  align-items:center!important;
  gap:13px!important;
  border:0!important;
  border-radius:14px!important;
}
.so-yandex__rating{background:linear-gradient(135deg,#fffaf0,#fff2c8)!important}
.so-yandex__reviews{background:linear-gradient(135deg,#f3faef,#e3f5da)!important}
.so-yandex__badge{background:linear-gradient(135deg,#fff6f4,#ffe6e1)!important}
.so-yandex__icon{
  flex:0 0 44px!important;
  width:44px!important;
  height:44px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.92)!important;
  color:#e5a000!important;
  box-shadow:0 5px 14px rgba(40,55,45,.08)!important;
}
.so-yandex__reviews .so-yandex__icon{color:#42a522!important}
.so-yandex__icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.so-yandex__icon--ya{color:#e43d30!important;font-size:21px!important;font-weight:900!important}
.so-yandex>div>div{min-width:0}
.so-yandex strong{display:block!important;font-size:23px!important;line-height:1.05!important;color:#141a16!important}
.so-yandex__badge strong{font-size:20px!important;max-width:none!important}
.so-yandex small{display:block!important;margin-top:6px!important;font-size:11px!important;line-height:1.25!important;color:#68706b!important}

.so-works-teaser{margin-top:34px;padding:4px 0 0}
.so-works-teaser h2{margin:7px 0 8px!important;font-size:42px!important;line-height:1.08}
.so-works-teaser p{margin:0;color:var(--so-muted)}
.so-works-teaser__row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.so-works-teaser__row .so-btn{flex:0 0 auto}
@media(min-width:1101px){
  .so-main-grid{padding-bottom:0!important}
  .so-works{padding-top:18px!important}
  .so-works>.so-container>.so-works__head{display:none!important}
}
@media(max-width:1100px){
  .so-works-teaser{display:none}
}
@media(max-width:760px){
  .so-yandex{grid-template-columns:1fr!important}
  .so-yandex>div{min-height:78px!important;padding:13px!important}
  .so-yandex strong{font-size:20px!important}
  .so-yandex__badge strong{font-size:18px!important}
}

/* v5.0.1 — реальные исправления шапки, кнопок и кликабельности */
.so-header{z-index:9999!important;background:#fff!important}
.so-header__inner{min-height:72px!important;gap:18px!important;flex-wrap:nowrap!important;max-width:1360px}
.so-logo{min-width:190px!important;max-width:210px;flex:0 0 auto}
.so-logo .custom-logo{max-width:205px!important;max-height:52px!important}
.so-nav{margin-left:auto!important;min-width:0}
.so-menu{gap:20px!important;white-space:nowrap}
.so-menu a{padding:25px 0!important;font-size:13px!important}
.so-header__contact{margin-left:8px!important;flex:0 0 auto}
.so-header__contact a{font-size:15px!important}
.so-header__contact small{display:none!important}
.so-header__cta{min-width:150px!important;min-height:44px!important;padding:0 16px!important;flex:0 0 auto}
.so-btn,.so-header__cta,.so-request-form button,.so-contacts__actions a{position:relative!important;z-index:5!important;pointer-events:auto!important;cursor:pointer!important;user-select:none}
.so-request-form{position:relative;z-index:2}
.so-request-form button{opacity:1!important;filter:none!important}
.so-request-section{scroll-margin-top:90px}
.so-contacts__actions{position:relative;z-index:3}
.so-map{position:relative;z-index:1}

@media(max-width:1280px){
  .so-menu{gap:14px!important}
  .so-menu a{font-size:12px!important}
  .so-header__contact{display:none!important}
}
@media(max-width:1050px){
  .so-header__cta{display:none!important}
  .so-burger{display:block!important}
  .so-nav{position:absolute!important;left:14px!important;right:14px!important;top:calc(100% + 8px)!important;display:none!important;padding:14px!important;border:1px solid var(--so-border)!important;border-radius:14px!important;background:#fff!important;box-shadow:var(--so-shadow)!important}
  .so-nav.is-open{display:block!important}
  .so-menu{display:grid!important;gap:0!important;white-space:normal!important}
  .so-menu a{display:block!important;padding:12px!important;font-size:14px!important}
}

/* v5.1.0 — финальная адаптация для телефонов и планшетов */
@media (max-width: 1050px) {
  body { overflow-x: hidden; }
  .so-header__inner { min-height: 68px!important; }
  .so-logo { min-width: 0!important; max-width: min(210px, calc(100vw - 92px))!important; }
  .so-logo .custom-logo { max-width: 100%!important; height: auto!important; }
  .so-burger { flex: 0 0 44px; display: block!important; position: relative; z-index: 10002; }
  .so-nav { z-index: 10001!important; max-height: calc(100vh - 96px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .so-menu a { min-height: 46px; display:flex!important; align-items:center; border-radius:10px; }
  .so-menu a:hover, .so-menu .current-menu-item>a { background:#f3f8f1; color:var(--so-green-dark); }
  .so-menu a::after { display:none; }
}

@media (max-width: 760px) {
  :root { --so-radius: 16px; }
  html { scroll-padding-top: 78px; }
  body { padding-bottom: 68px; }
  .admin-bar .so-header { top:46px; }
  .so-container { width: calc(100% - 28px)!important; }
  .so-section-label { font-size:12px; }
  .so-btn { width:100%; min-height:50px; padding:0 18px; }

  .so-header { backdrop-filter:none; }
  .so-header__inner { min-height:64px!important; gap:12px!important; }
  .so-logo { max-width:190px!important; }
  .so-logo .custom-logo { max-height:46px!important; }
  .so-logo__mark { font-size:28px; }
  .so-logo__copy strong { font-size:22px; }
  .so-logo__copy small { display:none; }
  .so-burger { width:42px; height:42px; padding:9px; }
  .so-nav { left:10px!important; right:10px!important; top:calc(100% + 6px)!important; padding:10px!important; border-radius:16px!important; }

  .so-hero { padding:18px 0 22px!important; }
  .so-hero__grid { display:flex!important; flex-direction:column; gap:20px!important; }
  .so-hero__content { padding:4px 0 0!important; }
  .so-hero h1 { margin:10px 0 14px!important; font-size:clamp(33px,9.8vw,42px)!important; line-height:1.05!important; letter-spacing:-1.7px!important; }
  .so-hero__lead { margin-bottom:18px!important; font-size:15px!important; line-height:1.5!important; }
  .so-hero__benefits { grid-template-columns:1fr!important; gap:9px!important; margin-bottom:18px!important; }
  .so-hero__benefits>div { min-height:52px; padding:7px 10px; grid-template-columns:40px 1fr; border:1px solid var(--so-border); border-radius:13px; background:#fff; }
  .so-hero__buttons { grid-template-columns:1fr!important; gap:10px!important; }
  .so-hero__photo-wrap { order:-1; min-height:0!important; aspect-ratio:16/10; border-radius:18px!important; }
  .so-hero__photo { position:static!important; min-height:0!important; }
  .so-yandex { grid-template-columns:1fr!important; gap:8px!important; margin-top:16px!important; padding:8px!important; }
  .so-yandex>div { min-height:70px!important; padding:11px!important; }
  .so-yandex__icon { width:40px!important; height:40px!important; flex-basis:40px!important; }

  .so-main-grid { padding:28px 0 34px!important; }
  .so-main-grid__inner { display:block!important; }
  .so-main-grid h2, .so-works h2, .so-reviews h2, .so-contacts h2, .so-request-section h2 { font-size:30px!important; line-height:1.12!important; letter-spacing:-1px!important; }
  .so-device-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; }
  .so-device-card { min-width:0; min-height:300px!important; border-radius:16px!important; }
  .so-device-card__media { height:130px!important; }
  .so-device-card__body { padding:14px!important; }
  .so-device-card h3 { font-size:17px!important; }
  .so-device-card p { font-size:12px!important; }
  .so-device-card__footer .so-device-card__more { min-height:42px!important; height:auto!important; padding:9px 8px 9px 12px!important; font-size:12px!important; }

  .so-side-column { margin-top:26px; }
  .so-why, .so-process { padding:20px 16px!important; border-radius:18px!important; }
  .so-why h3, .so-process h3 { font-size:25px!important; }
  .so-why__grid { grid-template-columns:1fr!important; gap:10px!important; }
  .so-why__item { min-height:74px; padding:12px!important; }
  .so-process__steps { grid-template-columns:1fr!important; gap:10px!important; }
  .so-process__steps>div { min-height:0!important; padding:14px!important; }

  .so-stats { grid-template-columns:1fr!important; gap:10px!important; }
  .so-stat { min-height:96px!important; padding:16px!important; }

  .so-works, .so-reviews, .so-request-section, .so-contacts { padding:36px 0!important; }
  .so-works__head, .so-reviews__head { display:block!important; }
  .so-works__head .so-btn, .so-reviews__head .so-btn { margin-top:16px; }
  .so-work-grid, .so-review-grid { grid-template-columns:1fr!important; gap:14px!important; }
  .so-work-card, .so-review-card { border-radius:18px!important; }
  .so-work-card__images { min-height:220px!important; }
  .so-reviews__summary { grid-template-columns:1fr!important; }

  .so-request-section__inner, .so-contacts__grid { grid-template-columns:1fr!important; gap:20px!important; }
  .so-request-form { padding:18px!important; border-radius:18px!important; }
  .so-request-form input, .so-request-form textarea, .so-request-form select { width:100%; min-width:0; font-size:16px!important; }
  .so-contacts__info { padding:20px!important; border-radius:18px!important; }
  .so-contact-list>a, .so-contact-list>div { min-width:0; padding:12px!important; }
  .so-contact-list strong { overflow-wrap:anywhere; }
  .so-contacts__actions { grid-template-columns:1fr!important; }
  .so-map { min-height:300px!important; border-radius:18px!important; overflow:hidden; }
  .so-map iframe { min-height:300px!important; }

  .so-footer { padding:36px 0 88px!important; }
  .so-footer__inner { grid-template-columns:1fr!important; gap:26px!important; }
  .so-footer__socials { flex-wrap:wrap; }
  .so-footer__bottom { display:flex!important; flex-direction:column; align-items:flex-start!important; gap:8px; }

  .so-fab { right:14px!important; bottom:82px!important; }
  .so-fab__menu { max-width:calc(100vw - 28px); }
  .so-mobile-bar { display:grid!important; grid-template-columns:1fr 1fr; position:fixed; left:0; right:0; bottom:0; z-index:10000; min-height:64px; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.98); border-top:1px solid var(--so-border); box-shadow:0 -8px 24px rgba(20,40,30,.1); }
  .so-mobile-bar a { min-width:0; min-height:48px; display:flex; align-items:center; justify-content:center; padding:0 10px; border-radius:11px; font-size:14px; font-weight:800; text-decoration:none; }
}

@media (max-width: 520px) {
  .so-container { width:calc(100% - 22px)!important; }
  .so-logo { max-width:170px!important; }
  .so-hero h1 { font-size:clamp(30px,9.5vw,38px)!important; }
  .so-device-grid { grid-template-columns:1fr!important; }
  .so-device-card { min-height:0!important; }
  .so-device-card__media { height:190px!important; }
  .so-yandex strong { font-size:18px!important; }
  .so-mobile-bar a { font-size:13px; }
}

@media (max-width: 380px) {
  .so-logo { max-width:145px!important; }
  .so-hero h1 { font-size:29px!important; }
  .so-mobile-bar { grid-template-columns:0.9fr 1.1fr; }
  .so-mobile-bar a { padding:0 6px; font-size:12px; }
}

/* v5.2.0 — премиальная шапка сайта */
.so-header{
  overflow:visible!important;
  border-bottom:1px solid rgba(24,53,34,.08)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:none;
  transition:box-shadow .25s ease, background .25s ease;
}
.so-header.is-scrolled{
  background:rgba(255,255,255,.985)!important;
  box-shadow:0 12px 35px rgba(18,45,28,.09)!important;
}
.so-header__utility{
  border-bottom:1px solid rgba(34,71,45,.07);
  background:#f4f8f2;
  color:#536158;
  font-size:12px;
}
.so-header__utility-inner{
  min-height:34px;
  display:flex;
  align-items:center;
  gap:28px;
}
.so-header__utility-item{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
}
.so-header__utility-item svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:#4cae20;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.so-header__status{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#327e17;
  font-weight:750;
  white-space:nowrap;
}
.so-header__status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#55ba26;
  box-shadow:0 0 0 4px rgba(85,186,38,.13);
}
.so-header__inner{
  min-height:78px!important;
  gap:26px!important;
}
.so-header__brand{
  flex:0 0 auto;
  display:flex;
  align-items:center;
}
.so-header__brand .custom-logo-link,
.so-header__brand .so-logo{
  display:flex;
  align-items:center;
  text-decoration:none;
}
.so-header__brand .custom-logo{
  width:auto!important;
  max-width:220px!important;
  max-height:56px!important;
}
.so-nav{
  margin:0 auto!important;
}
.so-menu{
  gap:28px!important;
}
.so-menu a{
  padding:29px 0!important;
  color:#27312b;
  font-size:13px!important;
  font-weight:720;
  letter-spacing:.01em;
}
.so-menu a::after{
  bottom:21px!important;
  height:3px!important;
  border-radius:3px;
}
.so-header__actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:13px;
}
.so-header__phone{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  white-space:nowrap;
}
.so-header__phone-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid #dcebd6;
  border-radius:13px;
  background:#f1f8ed;
  color:#4cae20;
  transition:.2s ease;
}
.so-header__phone-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.so-header__phone:hover .so-header__phone-icon{
  transform:translateY(-2px);
  background:#58b719;
  color:#fff;
  border-color:#58b719;
}
.so-header__phone-copy{
  display:grid;
  line-height:1.15;
}
.so-header__phone-copy small{
  margin-bottom:4px;
  color:#7a837e;
  font-size:10px;
  font-weight:650;
}
.so-header__phone-copy strong{
  color:#19221d;
  font-size:15px;
  letter-spacing:.01em;
}
.so-header__cta{
  min-width:174px!important;
  min-height:46px!important;
  padding:0 18px!important;
  border-radius:13px!important;
}
.so-header__cta svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.so-burger{
  position:relative;
  overflow:hidden;
  border-color:#dfe7e1!important;
  border-radius:13px!important;
  background:#f8faf8!important;
}
.so-burger span{
  width:20px;
  margin:4px auto!important;
  transition:transform .25s ease, opacity .2s ease;
}
.so-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.so-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.so-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.so-nav__mobile-head,
.so-nav__mobile-contact,
.so-nav-overlay{display:none}

@media(max-width:1320px){
  .so-menu{gap:18px!important}
  .so-header__phone-copy small{display:none}
  .so-header__brand .custom-logo{max-width:195px!important}
}
@media(max-width:1160px){
  .so-header__phone{display:none}
  .so-menu{gap:16px!important}
}
@media(max-width:1050px){
  .so-header__utility-inner{gap:16px}
  .so-header__status{display:none}
  .so-header__inner{min-height:70px!important}
  .so-header__actions{margin-left:auto}
  .so-header__brand .custom-logo{max-width:205px!important;max-height:50px!important}
  .so-nav{
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    width:min(390px,92vw)!important;
    max-height:none!important;
    margin:0!important;
    padding:0 20px 24px!important;
    display:flex!important;
    flex-direction:column;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:-20px 0 50px rgba(17,35,24,.16)!important;
    overflow-y:auto;
    transform:translateX(105%);
    visibility:hidden;
    transition:transform .28s ease, visibility .28s ease;
    z-index:10003!important;
  }
  .so-nav.is-open{
    transform:translateX(0);
    visibility:visible;
  }
  .so-nav__mobile-head{
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid #e9eeea;
  }
  .so-nav__mobile-head strong{font-size:20px}
  .so-nav__close{
    width:42px;
    height:42px;
    border:1px solid #e1e8e3;
    border-radius:12px;
    background:#f7faf7;
    font-size:26px;
    line-height:1;
    cursor:pointer;
  }
  .so-menu{
    display:grid!important;
    gap:5px!important;
    padding:16px 0!important;
  }
  .so-menu a{
    min-height:48px;
    padding:0 13px!important;
    border-radius:11px;
    font-size:15px!important;
  }
  .so-menu a:hover,.so-menu .current-menu-item>a{background:#f1f8ed}
  .so-nav__mobile-contact{
    margin-top:auto;
    display:grid;
    gap:11px;
    padding-top:18px;
    border-top:1px solid #e9eeea;
  }
  .so-nav__mobile-contact>a:first-child{
    display:grid;
    gap:3px;
    padding:14px;
    border:1px solid #dfe9dc;
    border-radius:13px;
    background:#f6faf4;
    text-decoration:none;
  }
  .so-nav__mobile-contact span{color:#727d76;font-size:11px}
  .so-nav__mobile-contact strong{font-size:18px}
  .so-nav__mobile-contact .so-btn{width:100%}
  .so-nav-overlay{
    position:fixed;
    inset:0;
    display:block;
    background:rgba(12,24,17,.42);
    opacity:0;
    visibility:hidden;
    transition:.25s ease;
    z-index:10002;
  }
  .so-header.menu-open .so-nav-overlay{opacity:1;visibility:visible}
  body.so-menu-open{overflow:hidden}
}
@media(max-width:760px){
  .so-header__utility{display:none}
  .so-header__inner{min-height:66px!important}
  .so-header__brand .custom-logo{max-width:180px!important;max-height:47px!important}
  .so-header__cta{display:none!important}
}
@media(max-width:380px){
  .so-header__brand .custom-logo{max-width:150px!important}
}

/* ServiceOK 5.7.0 — реальные фотографии в карточках направлений */
.so-device-card__media{
  padding:0!important;
  background:#eef3ef!important;
}
.so-device-card__media img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .35s ease!important;
}
.so-device-card:hover .so-device-card__media img{
  transform:scale(1.035)!important;
  filter:saturate(1.04) contrast(1.02)!important;
}

/* v6.3.1 — ссылка на источник отзыва */
.so-service-review__source{display:inline-flex;margin-top:16px;color:var(--so-green,#53bd13);font-size:13px;font-weight:800;text-decoration:none}
.so-service-review__source:hover{text-decoration:underline}

/* =========================================================
   ServiceOK 9.4.0 — premium glass header
   ========================================================= */
.so-header--v940{
  position:sticky!important;
  top:0;
  z-index:9999!important;
  padding:10px 0 0;
  background:linear-gradient(180deg,rgba(247,252,249,.92),rgba(247,252,249,.52))!important;
  box-shadow:none!important;
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  transition:padding .28s ease,background .28s ease,box-shadow .28s ease;
}
.admin-bar .so-header--v940{top:32px}
.so-header--v940.is-scrolled{
  padding-top:6px;
  background:rgba(255,255,255,.9)!important;
  box-shadow:0 12px 35px rgba(15,55,34,.1)!important;
}
.so-header--v940 .so-header__utility{display:none!important}
.so-header--v940 .so-header__inner{
  min-height:72px!important;
  max-width:1380px;
  padding:8px 16px!important;
  border:1px solid rgba(25,160,82,.13);
  border-radius:22px;
  background:rgba(255,255,255,.74);
  box-shadow:0 8px 30px rgba(16,75,43,.07);
  gap:18px!important;
  transition:min-height .28s ease,border-radius .28s ease,box-shadow .28s ease,background .28s ease;
}
.so-header--v940.is-scrolled .so-header__inner{
  min-height:64px!important;
  border-radius:18px;
  background:rgba(255,255,255,.94);
  box-shadow:0 8px 26px rgba(18,62,39,.08);
}
.so-header--v940 .so-header__brand{flex:0 0 auto}
.so-header--v940 .so-header__brand .custom-logo{max-width:190px!important;max-height:50px!important;transition:transform .25s ease,max-height .25s ease}
.so-header--v940 .so-header__brand a:hover .custom-logo,.so-header--v940 .so-logo:hover{transform:rotate(-1.5deg) translateY(-1px)}
.so-header--v940.is-scrolled .so-header__brand .custom-logo{max-height:44px!important}
.so-header--v940 .so-nav{flex:1 1 auto;display:flex;justify-content:center}
.so-header--v940 .so-menu{gap:4px!important}
.so-header--v940 .so-menu a{
  position:relative;
  padding:11px 10px!important;
  border-radius:11px;
  font-size:14px!important;
  font-weight:750!important;
  white-space:nowrap;
  transition:color .2s ease,background .2s ease,transform .2s ease;
}
.so-header--v940 .so-menu a::after{
  content:"";
  position:absolute;
  left:11px;right:11px;bottom:6px;
  height:2px;border-radius:99px;
  background:var(--so-green,#19a052);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .24s ease;
}
.so-header--v940 .so-menu a:hover,.so-header--v940 .so-menu .current-menu-item>a{background:rgba(25,160,82,.07);color:var(--so-green,#168b49)!important;transform:translateY(-1px)}
.so-header--v940 .so-menu a:hover::after,.so-header--v940 .so-menu .current-menu-item>a::after{transform:scaleX(1)}
.so-header__trust{
  display:flex;align-items:center;gap:9px;
  padding:8px 11px;
  border:1px solid rgba(25,160,82,.13);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(25,160,82,.08),rgba(25,160,82,.025));
  white-space:nowrap;
}
.so-header__trust-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--so-green,#19a052);color:#fff;font-weight:900;box-shadow:0 5px 14px rgba(25,160,82,.22)}
.so-header__trust>span:last-child{display:grid;line-height:1.08}
.so-header__trust small{font-size:10px;color:var(--so-muted,#65756c);font-weight:700}
.so-header__trust strong{font-size:12px;color:#183c2a}
.so-header--v940 .so-header__actions{display:flex;align-items:center;gap:8px!important;margin-left:0!important}
.so-header__quick{
  display:flex;align-items:center;gap:8px;
  min-height:46px;
  padding:6px 10px 6px 7px;
  border:1px solid rgba(25,160,82,.14);
  border-radius:15px;
  background:#fff;
  text-decoration:none!important;
  color:#173d29!important;
  box-shadow:0 5px 16px rgba(20,62,38,.06);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.so-header__quick:hover{transform:translateY(-2px);border-color:rgba(25,160,82,.35);box-shadow:0 9px 23px rgba(20,90,49,.12)}
.so-header__quick-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(25,160,82,.1);color:var(--so-green,#19a052);flex:0 0 auto;transition:transform .22s ease,background .22s ease,color .22s ease}
.so-header__quick:hover .so-header__quick-icon{transform:scale(1.06);background:var(--so-green,#19a052);color:#fff}
.so-header__quick-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.so-header__quick--phone .so-header__quick-icon svg{fill:currentColor;stroke:none}
.so-header__quick-copy{display:grid;line-height:1.08;white-space:nowrap}
.so-header__quick-copy small{font-size:10px;color:var(--so-muted,#68786f);font-weight:700}
.so-header__quick-copy strong{font-size:12px;color:#173d29}
.so-header--v940 .so-header__phone,.so-header--v940 .so-header__cta{display:none!important}

@media (max-width:1240px){
  .so-header__trust{display:none}
  .so-header__quick-copy{display:none}
  .so-header__quick{padding:6px;min-width:46px;justify-content:center}
  .so-header--v940 .so-menu a{padding-inline:8px!important;font-size:13px!important}
}
@media (max-width:1050px){
  .so-header--v940{padding-top:7px}
  .so-header--v940 .so-header__inner{min-height:66px!important;border-radius:18px;padding:7px 10px!important}
  .so-header--v940 .so-header__brand .custom-logo{max-width:185px!important;max-height:48px!important}
  .so-header--v940 .so-nav{display:block}
  .so-header__quick{display:flex!important}
  .so-header--v940 .so-burger{display:flex!important;margin-left:2px}
  .so-mobile-contact-card{display:grid;padding:14px;border-radius:15px;background:#f3faf6;text-decoration:none!important}
  .so-mobile-contact-card span{font-size:12px;color:var(--so-muted,#68786f)}
  .so-mobile-contact-card strong{font-size:17px;color:#163d28}
}
@media (max-width:600px){
  .admin-bar .so-header--v940{top:46px}
  .so-header--v940{padding:6px 8px 0}
  .so-header--v940 .so-header__inner{min-height:62px!important;padding:6px 8px!important;border-radius:17px;gap:8px!important}
  .so-header--v940 .so-header__brand .custom-logo{max-width:155px!important;max-height:44px!important}
  .so-header__quick{min-width:40px;min-height:40px;padding:3px;border-radius:12px}
  .so-header__quick-icon{width:32px;height:32px;border-radius:10px}
  .so-header__quick-icon svg{width:17px;height:17px}
  .so-header--v940 .so-burger{width:42px;height:42px;border-radius:12px}
}
@media (max-width:390px){
  .so-header__quick--route{display:none!important}
  .so-header--v940 .so-header__brand .custom-logo{max-width:145px!important}
}
@media (prefers-reduced-motion:reduce){
  .so-header--v940,.so-header--v940 *{transition:none!important;animation:none!important}
}


/* A. Native header styles — ServiceOK 9.4.2 */
.so-header--v942{position:relative;z-index:100000;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(20,70,40,.08);box-shadow:0 8px 30px rgba(13,52,31,.07);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.so-header--v942 .so-header__inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:82px}
.so-header--v942 .so-header__brand{min-width:0}
.so-header--v942 .so-header__actions{display:flex;align-items:center;gap:10px}
.so-header--v942 .so-header__quick{display:flex!important}
@media (max-width: 767px){
  .so-header--v942{display:block!important;position:relative!important;top:auto!important;width:100%!important;padding:0!important;background:#fff!important;border-radius:0!important;box-shadow:0 8px 26px rgba(18,52,33,.08)!important}
  .so-header--v942 .so-header__inner{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;min-height:0!important;padding:14px 14px 12px!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
  .so-header--v942 .so-header__brand{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:100%!important}
  .so-header--v942 .so-header__brand .custom-logo-link{display:block!important}
  .so-header--v942 .so-header__brand .custom-logo{width:auto!important;max-width:210px!important;max-height:54px!important;object-fit:contain!important}
  .so-header--v942 .so-header__trust{display:none!important}
  .so-header--v942 .so-header__actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;width:100%!important;margin:0!important}
  .so-header--v942 .so-header__quick{display:flex!important;min-width:0!important;min-height:48px!important;padding:8px 12px!important;border-radius:17px!important;justify-content:center!important;box-shadow:0 8px 22px rgba(17,71,40,.10)!important}
  .so-header--v942 .so-header__quick--phone{background:#fff!important;border:1px solid rgba(31,115,63,.12)!important;color:#17281e!important}
  .so-header--v942 .so-header__quick--route{background:linear-gradient(135deg,#55cf24,#38aa13)!important;border-color:transparent!important;color:#fff!important}
  .so-header--v942 .so-header__quick-icon{width:30px!important;height:30px!important;background:transparent!important;color:#45b91a!important}
  .so-header--v942 .so-header__quick--route .so-header__quick-icon{color:#fff!important}
  .so-header--v942 .so-header__quick-copy{display:block!important;white-space:nowrap!important}
  .so-header--v942 .so-header__quick-copy small{display:none!important}
  .so-header--v942 .so-header__quick-copy strong{font-size:14px!important;color:inherit!important}
  .so-header--v942 .so-header__quick--phone .so-header__quick-copy strong{font-size:0!important}
  .so-header--v942 .so-header__quick--phone .so-header__quick-copy strong:after{content:'Позвонить';font-size:14px!important}
  .so-header--v942 .so-header__quick--route .so-header__quick-copy strong{font-size:0!important}
  .so-header--v942 .so-header__quick--route .so-header__quick-copy strong:after{content:'Маршрут';font-size:14px!important}
  .so-header--v942 .so-burger{grid-column:1/-1!important;display:flex!important;justify-self:center!important;width:44px!important;height:38px!important;margin:0 auto!important;background:transparent!important;border:0!important;box-shadow:none!important}
  .so-header--v942 .so-nav{display:block!important}
  .so-header--v942{display:block!important}
}

/* ServiceOK 9.5.0 — controlled mobile refactor based on stable 9.4.4 */
@media (max-width: 767px){
  /* Full-screen mobile navigation: no narrow dropdown and no nested page scroll */
  .so-header .so-nav{
    position:fixed!important;
    inset:0!important;
    z-index:2147483600!important;
    display:flex!important;
    flex-direction:column!important;
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    padding:0 18px 22px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateX(100%)!important;
    transition:transform .28s ease,opacity .2s ease,visibility .2s ease!important;
    -webkit-overflow-scrolling:touch;
  }
  .so-header .so-nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateX(0)!important;
  }
  .so-nav__mobile-head{
    position:sticky!important;
    top:0!important;
    z-index:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:76px!important;
    padding:12px 0!important;
    background:#fff!important;
    border-bottom:1px solid #edf1ee!important;
  }
  .so-nav__mobile-head strong{
    width:190px!important;
    height:48px!important;
    overflow:hidden!important;
    text-indent:-9999px!important;
    background:url('../images/serviceok-logo-original.png') left center/contain no-repeat!important;
  }
  .so-nav__close{
    width:44px!important;
    height:44px!important;
    flex:0 0 44px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    border:1px solid #e5ebe7!important;
    border-radius:14px!important;
    background:#f7faf7!important;
    color:#17251d!important;
    font-size:30px!important;
    font-weight:400!important;
    line-height:1!important;
  }
  .so-header .so-menu{
    display:block!important;
    width:100%!important;
    margin:10px 0 18px!important;
    padding:0!important;
    list-style:none!important;
    white-space:normal!important;
  }
  .so-header .so-menu li{margin:0!important;padding:0!important;border-bottom:1px solid #edf1ee!important}
  .so-header .so-menu a{
    display:flex!important;
    align-items:center!important;
    min-height:54px!important;
    padding:13px 2px!important;
    border-radius:0!important;
    color:#15241b!important;
    font-size:16px!important;
    font-weight:700!important;
    line-height:1.3!important;
    text-decoration:none!important;
  }
  .so-header .so-menu a::after{content:'›'!important;position:static!important;display:block!important;width:auto!important;height:auto!important;margin-left:auto!important;background:none!important;color:#8a9790!important;font-size:25px!important;transform:none!important}
  .so-nav__mobile-contact{
    display:grid!important;
    gap:9px!important;
    width:100%!important;
    margin-top:auto!important;
    padding-top:4px!important;
  }
  .so-nav__mobile-contact .so-mobile-contact-card,
  .so-nav__mobile-contact .so-btn{
    min-height:54px!important;
    padding:10px 14px!important;
    border-radius:14px!important;
  }
  .so-nav-overlay{display:none!important}
  body.so-menu-open{overflow:hidden!important;touch-action:none!important}
  body.so-menu-open #sok-fc,
  body.so-menu-open .so-fab{display:none!important}

  /* Compact section rhythm */
  .so-home-services,.so-home-trust,.so-home-works,.so-contacts,.so-request-section{padding-top:42px!important;padding-bottom:42px!important}
  .so-home-section-head{margin-bottom:20px!important;gap:8px!important}
  .so-home-section-head h2{font-size:clamp(28px,8vw,36px)!important;line-height:1.08!important}
  .so-home-section-head p{margin-top:8px!important;font-size:14px!important;line-height:1.5!important}

  /* Horizontal compact service rows */
  .so-home-service-grid{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
  .so-home-service-card{
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr) 24px!important;
    align-items:center!important;
    min-height:68px!important;
    padding:9px 12px!important;
    border-radius:16px!important;
  }
  .so-home-service-card__image{width:48px!important;height:48px!important;border-radius:12px!important}
  .so-home-service-card__image img{width:100%!important;height:100%!important;object-fit:cover!important}
  .so-home-service-card strong,.so-home-service-card__title{font-size:14px!important;line-height:1.25!important}
  .so-home-service-card__arrow{font-size:21px!important}
  .so-home-service-cta{margin-top:14px!important;padding:18px!important;border-radius:18px!important}
}


/* ServiceOK 10.0.1 — reliable mobile menu links and header/widget stacking */
.so-header--v942{
  isolation:isolate;
  z-index:2147483000!important;
}
@media (max-width:767px){
  /* The external Telegram/MAX widget must never appear through the header. */
  #sok-fc{
    top:auto!important;
    left:auto!important;
    right:14px!important;
    bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;
    margin:0!important;
    transform:none!important;
    z-index:2147482000!important;
  }
  #sok-fc-panel{
    top:auto!important;
  }
  .so-header--v942,
  .so-header--v942 .so-header__inner,
  .so-header--v942 .so-header__brand{
    position:relative!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .so-header--v942 .so-header__brand{z-index:2!important}
  .so-header--v942 .custom-logo-link,
  .so-header--v942 .custom-logo{
    position:relative!important;
    z-index:2!important;
  }
}


/* ServiceOK v13 LTS — single responsive header/menu layer */
:root{--so-header-h:76px}
.so-header--v942{position:sticky!important;top:0;z-index:10000!important;overflow:visible!important;background:#fff!important;border-bottom:1px solid #e8eee8!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.admin-bar .so-header--v942{top:32px}
.so-header--v942 .so-header__inner{position:relative!important;display:flex!important;align-items:center!important;min-height:var(--so-header-h)!important;gap:22px!important;overflow:visible!important;background:#fff!important}
.so-header--v942 .so-header__brand{flex:0 0 auto!important;min-width:0!important;overflow:visible!important}
.so-header--v942 .custom-logo{display:block!important;width:auto!important;height:auto!important;max-width:220px!important;max-height:52px!important;object-fit:contain!important}
.so-header--v942 .so-nav{position:static!important;display:block!important;margin-left:auto!important;padding:0!important;overflow:visible!important;background:transparent!important;box-shadow:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
.so-header--v942 .so-menu{display:flex!important;align-items:center!important;gap:22px!important;margin:0!important;padding:0!important;list-style:none!important;white-space:nowrap!important}
.so-header--v942 .so-menu>li{margin:0!important;padding:0!important;list-style:none!important}
.so-header--v942 .so-menu a{display:flex!important;align-items:center!important;min-height:var(--so-header-h)!important;padding:0!important;color:#172019!important;font-size:14px!important;font-weight:650!important;line-height:1.2!important;text-decoration:none!important;white-space:nowrap!important}
.so-header--v942 .so-menu a::after{display:none!important}
.so-header--v942 .so-nav__mobile-head,.so-header--v942 .so-nav__mobile-contact,.so-header--v942 .so-burger,.so-header--v942 .so-nav-overlay{display:none!important}
.so-header--v942 .so-header__trust{display:none!important}
.so-header--v942 .so-header__actions{display:flex!important;align-items:center!important;gap:10px!important;margin-left:auto!important;flex:0 0 auto!important}
.so-header--v942 .so-header__quick--route{display:none!important}
.so-header--v942 .so-header__quick--phone{display:flex!important}

/* One and only compact-navigation breakpoint. */
@media (max-width:1100px){
  :root{--so-header-h:70px}
  html{scroll-padding-top:78px!important}
  body{overflow-x:hidden!important}
  .so-header--v942 .so-header__inner{min-height:70px!important;padding:9px 18px!important;gap:12px!important}
  .so-header--v942 .custom-logo{max-width:210px!important;max-height:48px!important}
  .so-header--v942 .so-header__quick{display:none!important}
  .so-header--v942 .so-burger{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;width:46px!important;height:46px!important;padding:0!important;border:1px solid #dfe8de!important;border-radius:14px!important;background:#fff!important;box-shadow:0 6px 18px rgba(20,50,30,.08)!important;position:relative!important;z-index:10003!important}
  .so-header--v942 .so-burger span{display:block!important;width:21px!important;height:2px!important;margin:0!important;border-radius:2px!important;background:#172019!important}
  .so-header--v942 .so-nav{
    position:fixed!important;inset:0!important;z-index:10002!important;display:flex!important;flex-direction:column!important;width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:calc(18px + env(safe-area-inset-top)) 22px calc(22px + env(safe-area-inset-bottom))!important;overflow-y:auto!important;overflow-x:hidden!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(-10px)!important;transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
  }
  .so-header--v942 .so-nav.is-open{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
  .so-header--v942 .so-nav__mobile-head{display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:54px!important;margin:0 0 18px!important;padding:0 0 14px!important;border-bottom:1px solid #e8eee8!important;background:#fff!important}
  .so-header--v942 .so-nav__mobile-head strong{font-size:21px!important}
  .so-header--v942 .so-nav__close{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;border:1px solid #dfe8de!important;border-radius:14px!important;background:#fff!important;color:#172019!important;font-size:29px!important;line-height:1!important}
  .so-header--v942 .so-menu{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important;margin:0!important;padding:0!important;white-space:normal!important}
  .so-header--v942 .so-menu>li{min-width:0!important;width:auto!important}
  .so-header--v942 .so-menu a{display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:58px!important;padding:14px 16px!important;border:1px solid #e3ebe2!important;border-radius:15px!important;background:#f7faf6!important;color:#172019!important;font-size:16px!important;font-weight:750!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
  .so-header--v942 .so-menu a::after{content:'›'!important;display:block!important;position:static!important;width:auto!important;height:auto!important;margin-left:10px!important;background:none!important;color:#7f8c83!important;font-size:24px!important;transform:none!important}
  .so-header--v942 .so-nav__mobile-contact{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;width:100%!important;margin-top:auto!important;padding-top:18px!important}
  .so-header--v942 .so-nav__mobile-contact a{min-height:56px!important;border-radius:15px!important}
  .so-header--v942 .so-nav-overlay{display:none!important}
  body.so-menu-open{overflow:hidden!important;touch-action:none!important}
  body.so-menu-open #sok-fc,body.so-menu-open .so-fab{display:none!important}

  /* Stable tablet layout: no compressed desktop columns. */
  .so-hero__grid{grid-template-columns:1fr!important;gap:24px!important}
  .so-hero__content{max-width:none!important}
  .so-hero h1{max-width:850px!important;font-size:clamp(42px,6vw,62px)!important;word-break:normal!important;overflow-wrap:normal!important}
  .so-hero__photo-wrap{width:100%!important;aspect-ratio:16/9!important;min-height:0!important;height:auto!important}
  .so-hero__photo{width:100%!important;height:100%!important;object-fit:cover!important}
  .so-yandex{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .so-yandex>div{min-width:0!important}
  .so-yandex strong,.so-yandex small{word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}
}

@media (max-width:767px){
  :root{--so-header-h:64px}
  .admin-bar .so-header--v942{top:46px}
  .so-header--v942 .so-header__inner{min-height:64px!important;padding:8px 12px!important}
  .so-header--v942 .custom-logo{max-width:180px!important;max-height:44px!important}
  .so-header--v942 .so-burger{width:43px!important;height:43px!important;border-radius:13px!important}
  .so-header--v942 .so-nav{padding:calc(12px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom))!important}
  .so-header--v942 .so-menu{grid-template-columns:1fr!important;gap:8px!important}
  .so-header--v942 .so-menu a{min-height:54px!important;padding:12px 14px!important;font-size:15px!important}
  .so-header--v942 .so-nav__mobile-contact{grid-template-columns:1fr!important;gap:8px!important}
  .so-hero__grid{gap:18px!important}
  .so-hero h1{font-size:clamp(31px,9.4vw,42px)!important;line-height:1.05!important}
  .so-yandex{grid-template-columns:1fr!important}
}

@media (min-width:1101px) and (max-width:1320px){
  .so-header--v942 .so-menu{gap:14px!important}
  .so-header--v942 .so-menu a{font-size:13px!important}
  .so-header--v942 .custom-logo{max-width:195px!important}
}

/* ServiceOK 13.0.7 — isolated tablet/intermediate navigation fix.
   IMPORTANT: this rule intentionally does not touch phone widths <=767px. */
@media (min-width:768px) and (max-width:1100px){
  .so-header--v942{
    display:block!important;
    position:relative!important;
    z-index:2147482000!important;
    width:100%!important;
    background:#fff!important;
    border-bottom:1px solid rgba(20,70,40,.08)!important;
    box-shadow:0 8px 26px rgba(18,52,33,.08)!important;
  }
  .so-header--v942 .so-header__inner{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:14px!important;
    min-height:72px!important;
    padding:10px 18px!important;
  }
  .so-header--v942 .so-header__brand{
    display:flex!important;
    align-items:center!important;
    min-width:0!important;
  }
  .so-header--v942 .so-header__brand .custom-logo-link{
    display:block!important;
    line-height:0!important;
  }
  .so-header--v942 .so-header__brand .custom-logo{
    display:block!important;
    width:auto!important;
    max-width:205px!important;
    max-height:50px!important;
    object-fit:contain!important;
  }
  .so-header--v942 .so-header__trust,
  .so-header--v942 .so-header__quick{
    display:none!important;
  }
  .so-header--v942 .so-header__actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    width:auto!important;
    margin:0!important;
  }
  .so-header--v942 .so-burger{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    position:relative!important;
    z-index:2147483602!important;
    width:46px!important;
    height:46px!important;
    margin:0!important;
    padding:10px!important;
    border:1px solid #dfe8e1!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 6px 18px rgba(18,52,33,.08)!important;
  }
  .so-header--v942 .so-burger span{
    display:block!important;
    width:23px!important;
    height:2px!important;
    border-radius:10px!important;
    background:#17221c!important;
  }
  .so-header--v942 .so-nav{
    position:fixed!important;
    inset:0!important;
    z-index:2147483600!important;
    display:flex!important;
    flex-direction:column!important;
    width:100vw!important;
    max-width:none!important;
    height:100vh!important;
    height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    padding:22px 24px 30px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-10px)!important;
    transition:opacity .2s ease,transform .2s ease,visibility .2s ease!important;
  }
  .so-header--v942 .so-nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
  }
  .so-header--v942 .so-nav__mobile-head{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:54px!important;
    padding:0 0 18px!important;
    border-bottom:1px solid #e7ece8!important;
  }
  .so-header--v942 .so-nav__close{
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    border:1px solid #dfe8e1!important;
    border-radius:50%!important;
    background:#fff!important;
    color:#17221c!important;
    font-size:30px!important;
    line-height:1!important;
  }
  .so-header--v942 .so-menu{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:min(760px,100%)!important;
    margin:28px auto!important;
    padding:0!important;
    list-style:none!important;
  }
  .so-header--v942 .so-menu li{
    margin:0!important;
    padding:0!important;
    list-style:none!important;
  }
  .so-header--v942 .so-menu a{
    display:flex!important;
    align-items:center!important;
    min-height:58px!important;
    padding:14px 18px!important;
    border:1px solid #e5ece6!important;
    border-radius:15px!important;
    background:#f8fbf9!important;
    color:#17221c!important;
    text-decoration:none!important;
    font-size:16px!important;
    font-weight:750!important;
    line-height:1.25!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .so-header--v942 .so-nav__mobile-contact{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:12px!important;
    width:min(760px,100%)!important;
    margin:auto auto 0!important;
    padding-top:18px!important;
    border-top:1px solid #e7ece8!important;
  }
  body.so-menu-open{
    overflow:hidden!important;
    touch-action:none!important;
  }
  .so-header--v942 .so-nav-overlay{
    display:none!important;
  }
}
\n\n/* ServiceOK 13.0.8 — verified navigation portal fix.\n   The nav is moved to <body> by app.js below 1100px, so fixed positioning is\n   relative to the viewport rather than the backdrop-filtered header. */\n@media (max-width:1100px){\n  body > #site-navigation.so-nav--portal{\n    position:fixed!important;\n    inset:0!important;\n    z-index:2147483600!important;\n    display:flex!important;\n    flex-direction:column!important;\n    width:100%!important;\n    max-width:none!important;\n    height:100vh!important;\n    height:100dvh!important;\n    max-height:none!important;\n    margin:0!important;\n    padding:calc(16px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom))!important;\n    overflow-y:auto!important;\n    overflow-x:hidden!important;\n    border:0!important;\n    border-radius:0!important;\n    background:#fff!important;\n    box-shadow:none!important;\n    opacity:0!important;\n    visibility:hidden!important;\n    pointer-events:none!important;\n    transform:translateY(-8px)!important;\n    transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;\n    -webkit-overflow-scrolling:touch!important;\n  }\n  body > #site-navigation.so-nav--portal.is-open{\n    opacity:1!important;\n    visibility:visible!important;\n    pointer-events:auto!important;\n    transform:none!important;\n  }\n  body > #site-navigation.so-nav--portal .so-nav__mobile-head{\n    position:sticky!important;\n    top:0!important;\n    z-index:2!important;\n    display:flex!important;\n    align-items:center!important;\n    justify-content:space-between!important;\n    width:100%!important;\n    min-height:58px!important;\n    margin:0 0 18px!important;\n    padding:0 0 14px!important;\n    border-bottom:1px solid #e6ece7!important;\n    background:#fff!important;\n  }\n  body > #site-navigation.so-nav--portal .so-nav__mobile-head strong{font-size:21px!important;color:#172019!important}\n  body > #site-navigation.so-nav--portal .so-nav__close{\n    display:grid!important;place-items:center!important;width:44px!important;height:44px!important;padding:0!important;\n    border:1px solid #dfe8e1!important;border-radius:50%!important;background:#fff!important;color:#172019!important;\n    font-size:30px!important;line-height:1!important;\n  }\n  body > #site-navigation.so-nav--portal .so-menu{\n    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;\n    width:min(760px,100%)!important;margin:8px auto 24px!important;padding:0!important;list-style:none!important;white-space:normal!important;\n  }\n  body > #site-navigation.so-nav--portal .so-menu li{display:block!important;width:auto!important;margin:0!important;padding:0!important;list-style:none!important}\n  body > #site-navigation.so-nav--portal .so-menu a{\n    display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:58px!important;\n    padding:14px 16px!important;border:1px solid #e3ebe2!important;border-radius:15px!important;background:#f7faf6!important;\n    color:#172019!important;font-size:16px!important;font-weight:750!important;line-height:1.25!important;text-decoration:none!important;\n    white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;\n  }\n  body > #site-navigation.so-nav--portal .so-menu a::after{content:'›'!important;position:static!important;display:block!important;width:auto!important;height:auto!important;margin-left:10px!important;background:none!important;color:#7f8c83!important;font-size:24px!important;transform:none!important}\n  body > #site-navigation.so-nav--portal .so-nav__mobile-contact{\n    display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;width:min(760px,100%)!important;\n    margin:auto auto 0!important;padding-top:18px!important;border-top:1px solid #e6ece7!important;\n  }\n  body.so-menu-open{overflow:hidden!important;touch-action:none!important}\n}\n@media (max-width:767px){\n  body > #site-navigation.so-nav--portal .so-menu{grid-template-columns:1fr!important;gap:8px!important}\n  body > #site-navigation.so-nav--portal .so-nav__mobile-contact{grid-template-columns:1fr!important}\n}\n@media (min-width:1101px){body > #site-navigation.so-nav--portal{display:none!important}}\n

/* v13.2.0 — compact reviews and device navigation */
.so-service-reviews,
.so-service-orderable[data-service-block="related"]{
  margin-top:38px;
}
.so-service-review-grid{
  gap:12px;
}
.so-service-review{
  display:flex;
  min-height:240px;
  flex-direction:column;
  padding:16px;
  border-radius:14px;
}
.so-service-review__top strong{
  font-size:14px;
}
.so-service-review__top span{
  flex:0 0 auto;
  font-size:13px;
}
.so-service-review small{
  margin-top:3px;
  font-size:11px;
}
.so-service-review>div:last-of-type{
  display:-webkit-box;
  overflow:hidden;
  margin-top:10px;
  color:#4c5850;
  font-size:13px;
  line-height:1.55;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:5;
}
.so-service-review__source{
  margin-top:auto!important;
  padding-top:12px;
  font-size:12px!important;
}
.so-related-services{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.so-related-services .so-related-service{
  min-height:96px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 24px;
  align-items:center;
  gap:12px;
  padding:16px;
  border:1px solid var(--so-border);
  border-radius:15px;
  background:#fff;
  box-shadow:0 8px 22px rgba(28,54,37,.04);
  color:var(--so-text);
  text-decoration:none;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.so-related-services .so-related-service:hover{
  transform:translateY(-2px);
  border-color:rgba(88,183,25,.48);
  box-shadow:0 12px 26px rgba(28,54,37,.08);
}
.so-related-service__icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#eef8e9;
  font-size:23px;
}
.so-related-service strong{
  min-width:0;
  font-size:15px;
  line-height:1.25;
}
.so-related-service__arrow{
  color:var(--so-green-dark);
  font-size:20px;
  transition:transform .18s ease;
}
.so-related-service:hover .so-related-service__arrow{
  transform:translateX(3px);
}
@media(max-width:980px){
  .so-related-services{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .so-service-reviews,
  .so-service-orderable[data-service-block="related"]{margin-top:30px}
  .so-service-review-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .so-service-review{min-width:86%;min-height:220px;scroll-snap-align:start}
  .so-related-services{grid-template-columns:1fr 1fr;gap:9px}
  .so-related-services .so-related-service{min-height:82px;grid-template-columns:36px minmax(0,1fr) 18px;gap:9px;padding:12px}
  .so-related-service__icon{width:36px;height:36px;border-radius:10px;font-size:20px}
  .so-related-service strong{font-size:13px}
  .so-related-service__arrow{font-size:17px}
}
@media(max-width:430px){
  .so-related-services{grid-template-columns:1fr}
}

/* ServiceOK 13.5.1 — iPad-safe navigation portal.
   app.js moves #site-navigation directly under body below 1100px, so these
   selectors intentionally do not depend on the header ancestor. */
@media (max-width:1100px){
  body > #site-navigation.so-nav--portal{
    position:fixed!important;
    inset:0!important;
    z-index:2147483600!important;
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:none!important;
    height:var(--so-menu-viewport-height,100vh)!important;
    height:var(--so-menu-viewport-height,100dvh)!important;
    max-height:var(--so-menu-viewport-height,100dvh)!important;
    margin:0!important;
    padding:calc(18px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translate3d(0,-8px,0)!important;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
  }
  body > #site-navigation.so-nav--portal.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
  }
  body > #site-navigation.so-nav--portal .so-nav__mobile-head{
    position:sticky!important;
    top:0!important;
    z-index:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:min(760px,100%)!important;
    min-height:58px!important;
    margin:0 auto 18px!important;
    padding:0 0 14px!important;
    border-bottom:1px solid #e6ece7!important;
    background:#fff!important;
  }
  body > #site-navigation.so-nav--portal .so-nav__mobile-head strong{font-size:21px!important;color:#172019!important}
  body > #site-navigation.so-nav--portal .so-nav__close{
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    padding:0!important;
    border:1px solid #dfe8e1!important;
    border-radius:50%!important;
    background:#fff!important;
    color:#172019!important;
    font-size:30px!important;
    line-height:1!important;
    touch-action:manipulation!important;
  }
  body > #site-navigation.so-nav--portal .so-menu{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:min(760px,100%)!important;
    margin:8px auto 24px!important;
    padding:0!important;
    list-style:none!important;
    white-space:normal!important;
  }
  body > #site-navigation.so-nav--portal .so-menu li{display:block!important;width:auto!important;margin:0!important;padding:0!important;list-style:none!important}
  body > #site-navigation.so-nav--portal .so-menu a{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:58px!important;
    padding:14px 16px!important;
    border:1px solid #e3ebe2!important;
    border-radius:15px!important;
    background:#f7faf6!important;
    color:#172019!important;
    font-size:16px!important;
    font-weight:750!important;
    line-height:1.25!important;
    text-decoration:none!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    touch-action:manipulation!important;
  }
  body > #site-navigation.so-nav--portal .so-menu a::after{content:'›'!important;position:static!important;display:block!important;width:auto!important;height:auto!important;margin-left:10px!important;background:none!important;color:#7f8c83!important;font-size:24px!important;transform:none!important}
  body > #site-navigation.so-nav--portal .so-nav__mobile-contact{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    width:min(760px,100%)!important;
    margin:auto auto 0!important;
    padding-top:18px!important;
    border-top:1px solid #e6ece7!important;
  }
  body.so-menu-open{
    position:fixed!important;
    top:var(--so-menu-scroll-y,0)!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    overflow:hidden!important;
    touch-action:none!important;
  }
  body.so-menu-open #sok-fc,body.so-menu-open .so-fab{display:none!important}
}
@media (max-width:767px){
  body > #site-navigation.so-nav--portal{padding:calc(12px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom))!important}
  body > #site-navigation.so-nav--portal .so-menu{grid-template-columns:1fr!important;gap:8px!important}
  body > #site-navigation.so-nav--portal .so-nav__mobile-contact{grid-template-columns:1fr!important}
}

/* ServiceOK 13.2.3 — unified outline icons + stable full-width FAQ */
.so-service-link-card__icon svg{
  width:22px;height:22px;display:block;fill:none;stroke:currentColor;
  stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;
}
.so-service-link-card__icon{color:var(--so-green-dark)!important}

/* The old desktop FAQ intro was sticky. After switching FAQ to full width it
   could slide beneath the accordion and visually overlap the heading. */
.so-phone-faq .so-phone-faq__grid{
  display:block!important;
}
.so-phone-faq .so-phone-faq__intro{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  margin:0 0 28px!important;
  transform:none!important;
}
.so-phone-faq .so-phone-faq__items{
  position:relative!important;
  z-index:1!important;
  width:100%!important;
}
.so-phone-faq .so-phone-faq__intro + .so-phone-faq__items{
  margin-top:0!important;
}
@media (max-width:700px){
  .so-phone-faq .so-phone-faq__intro{margin-bottom:20px!important}
}

/* ServiceOK 13.7.0 UX Base — native header. */
body.so-native-header-active{
  overflow-x:clip;
}
body.so-native-header-active .so-header__mobile-label{
  display:none;
}
body.so-native-header-active .so-header--v942{
  position:sticky!important;
  top:0!important;
  z-index:10000!important;
  width:100%!important;
  background:#fff!important;
  border-bottom:1px solid #e8eee8!important;
  box-shadow:0 8px 30px rgba(13,52,31,.06)!important;
}
body.admin-bar.so-native-header-active .so-header--v942{
  top:32px!important;
}
body.so-native-header-active .so-header--v942 .so-header__inner{
  display:flex!important;
  align-items:center!important;
  min-height:76px!important;
  gap:22px!important;
  overflow:visible!important;
}
body.so-native-header-active .so-header--v942 .so-header__brand{
  flex:0 0 auto!important;
  min-width:0!important;
}
body.so-native-header-active .so-header--v942 .custom-logo{
  display:block!important;
  width:260px!important;
  max-width:260px!important;
  max-height:72px!important;
  object-fit:contain!important;
}
body.so-native-header-active .so-header--v942 .so-nav{
  position:static!important;
  display:block!important;
  margin-left:auto!important;
  overflow:visible!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
}
body.so-native-header-active .so-header--v942 .so-menu{
  display:flex!important;
  align-items:center!important;
  gap:22px!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
  white-space:nowrap!important;
}
body.so-native-header-active .so-header--v942 .so-menu a{
  display:flex!important;
  align-items:center!important;
  min-height:76px!important;
  padding:0!important;
  color:#172019!important;
  font-size:14px!important;
  font-weight:650!important;
  line-height:1.2!important;
  text-decoration:none!important;
}
body.so-native-header-active .so-header--v942 .so-nav__mobile-head,
body.so-native-header-active .so-header--v942 .so-nav__mobile-contact,
body.so-native-header-active .so-header--v942 .so-burger,
body.so-native-header-active .so-header--v942 .so-nav-overlay{
  display:none!important;
}
body.so-native-header-active .so-header--v942 .so-header__actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin-left:auto!important;
}
body.so-native-header-active .so-header--v942 .so-header__quick--phone{
  display:flex!important;
}
body.so-native-header-active .so-header--v942 .so-header__quick--route{
  display:none!important;
}

@media (max-width:1100px){
  body.so-native-header-active .so-header--v942 .so-header__inner{
    display:flex!important;
    min-height:70px!important;
    padding:9px 18px!important;
    gap:12px!important;
  }
  body.so-native-header-active .so-header--v942 .custom-logo{
    width:230px!important;
    max-width:min(230px,calc(100vw - 92px))!important;
    max-height:58px!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__quick{
    display:none!important;
  }
  body.so-native-header-active .so-header--v942 .so-burger{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    width:46px!important;
    height:46px!important;
    margin-left:auto!important;
    padding:0!important;
    border:1px solid #dfe8de!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 6px 18px rgba(20,50,30,.08)!important;
  }
  body.so-native-header-active .so-header--v942 .so-burger span{
    display:block!important;
    width:21px!important;
    height:2px!important;
    margin:0!important;
    border-radius:2px!important;
    background:#172019!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal{
    position:fixed!important;
    inset:0!important;
    z-index:2147483600!important;
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:none!important;
    height:100vh!important;
    height:100dvh!important;
    margin:0!important;
    padding:calc(16px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    border:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-8px)!important;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
    box-sizing:border-box!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-nav__mobile-head{
    position:sticky!important;
    top:0!important;
    z-index:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:58px!important;
    margin:0 0 18px!important;
    padding:0 0 14px!important;
    border-bottom:1px solid #e6ece7!important;
    background:#fff!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-nav__close{
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    padding:0!important;
    border:1px solid #dfe8e1!important;
    border-radius:14px!important;
    background:#fff!important;
    color:#172019!important;
    font-size:30px!important;
    line-height:1!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-menu{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    margin:0 0 24px!important;
    padding:0!important;
    list-style:none!important;
    white-space:normal!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-menu a{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    min-height:58px!important;
    padding:14px 16px!important;
    border:1px solid #e3ebe2!important;
    border-radius:15px!important;
    background:#f7faf6!important;
    color:#172019!important;
    font-size:16px!important;
    font-weight:750!important;
    line-height:1.25!important;
    text-decoration:none!important;
    white-space:normal!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-menu a::after{
    content:'›'!important;
    display:block!important;
    position:static!important;
    width:auto!important;
    height:auto!important;
    margin-left:10px!important;
    background:none!important;
    color:#7f8c83!important;
    font-size:24px!important;
    transform:none!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-nav__mobile-contact{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    width:100%!important;
    margin:auto 0 0!important;
    padding-top:18px!important;
    border-top:1px solid #e6ece7!important;
  }
  body.so-native-header-active.so-menu-open{
    overflow:hidden!important;
    touch-action:none!important;
  }
}

@media (max-width:767px){
  body.admin-bar.so-native-header-active .so-header--v942{
    top:46px!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__inner{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    position:relative!important;
    min-height:0!important;
    padding:10px 12px 12px!important;
    gap:9px 10px!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__brand{
    grid-column:1!important;
    grid-row:1!important;
  }
  body.so-native-header-active .so-header--v942 .custom-logo{
    width:230px!important;
    max-width:min(230px,calc(100vw - 82px))!important;
    max-height:58px!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-column:1 / -1!important;
    grid-row:2!important;
    width:100%!important;
    margin:0!important;
    gap:9px!important;
  }
  body.so-native-header-active .so-header--v942 .so-burger{
    position:relative!important;
    grid-column:2!important;
    grid-row:1!important;
    justify-self:end!important;
    z-index:1!important;
    width:44px!important;
    height:44px!important;
    margin:0!important;
    align-self:center!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__quick{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:46px!important;
    padding:8px 10px!important;
    border-radius:999px!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__quick--phone{
    grid-column:1!important;
    grid-row:1!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__quick--route{
    grid-column:2!important;
    grid-row:1!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__quick-copy{
    display:none!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__mobile-label{
    display:inline!important;
    font-size:13px!important;
    font-weight:800!important;
    white-space:nowrap!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal{
    padding:calc(12px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom))!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-menu{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-menu a{
    min-height:54px!important;
    padding:12px 14px!important;
    font-size:15px!important;
  }
  body.so-native-header-active > #site-navigation.so-nav--portal .so-nav__mobile-contact{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
}

@media (max-width:360px){
  body.so-native-header-active .so-header--v942 .so-header__inner{
    padding-inline:10px!important;
    gap:8px!important;
  }
  body.so-native-header-active .so-header--v942 .custom-logo{
    width:205px!important;
    max-width:calc(100vw - 72px)!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__quick{
    padding-inline:8px!important;
  }
  body.so-native-header-active .so-header--v942 .so-header__mobile-label{
    font-size:12px!important;
  }
}

@media (min-width:1101px) and (max-width:1320px){
  body.so-native-header-active .so-header--v942 .custom-logo{
    width:220px!important;
    max-width:220px!important;
  }
  body.so-native-header-active .so-header--v942 .so-menu{
    gap:14px!important;
  }
  body.so-native-header-active .so-header--v942 .so-menu a{
    font-size:13px!important;
  }
}

/* Smartphone repair cases: preserve complete before/after photographs. */
.so-smartphone-page .so-device-cases .so-work-card__images{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:8/3;
  background:#f4f7f4;
}
.so-smartphone-page .so-device-cases .so-work-card__images>div{
  height:100%!important;
  min-height:0!important;
  background:#f4f7f4;
}
.so-smartphone-page .so-device-cases .so-work-card__images img{
  display:block;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:contain;
  object-position:center;
}
.so-smartphone-page .so-device-cases .so-work-card__images--single{
  display:block!important;
  grid-template-columns:1fr!important;
  aspect-ratio:4/3;
}
.so-smartphone-page .so-device-cases .so-work-card__images--single img{
  object-fit:contain!important;
  object-position:center!important;
}

/* Laptop/PC repair cases: balance one real case without changing multi-card grids. */
.so-laptop-page .so-device-cases .so-work-grid:has(> .so-work-card:only-child){
  grid-template-columns:minmax(0,560px);
  justify-content:center;
}

/* Shared device-page location panel. */
.so-contacts--map-only .so-location-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  margin:0 0 20px;
  padding:18px 20px;
  border:1px solid #e1ebe3;
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 32px rgba(28,53,39,.06);
}
.so-contacts--map-only .so-location-facts{
  display:grid;
  gap:5px;
  min-width:0;
}
.so-contacts--map-only .so-location-facts strong{
  color:var(--so-text,#17221a);
  font-size:17px;
  line-height:1.3;
}
.so-contacts--map-only .so-location-facts span{
  color:var(--so-muted,#667269);
  font-size:14px;
  line-height:1.45;
}
.so-contacts--map-only .so-location-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.so-contacts--map-only .so-location-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  margin:0;
  padding:10px 16px;
  white-space:nowrap;
}
.so-contacts--map-only .so-location-action svg{
  flex:0 0 19px;
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media (max-width:820px){
  .so-contacts--map-only .so-location-panel{
    grid-template-columns:1fr;
    align-items:stretch;
    gap:16px;
    padding:17px;
  }
  .so-contacts--map-only .so-location-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .so-contacts--map-only .so-location-action{
    width:100%;
    min-width:0;
    white-space:normal;
    text-align:center;
  }
}

@media (max-width:430px){
  .so-contacts--map-only .so-location-panel{
    gap:14px;
    padding:15px;
    border-radius:18px;
  }
  .so-contacts--map-only .so-location-actions{
    grid-template-columns:1fr;
    gap:8px;
  }
  .so-contacts--map-only .so-location-action{
    min-height:48px;
  }
}
