/* Палитра калькулятора — наша (синий #0046be / тёмно-синий #013196 / голубой #e5effd), не minisplitsforless (26.09) */
/* HVAC Load Calculator — стили. Извлечено из рабочей секции магазина.
   Отличие от оригинала одно: ликвидное правило отступов секции заменено
   статическим .ms4l-c{padding}. Всё остальное построчно как на проде. */
.ms4l-c{padding-top:20px;padding-bottom:20px}
/* ═══ Калькулятор нагрузки, перестроен 04.09.2026 ═══
   Что показали 135 замеров: площадь меняли 79%, регион 64%, высоту 42%,
   остальные семь полей — от 1% до 24%. Поэтому наверху только три поля,
   остальное убрано в «Fine-tune». Площадь стала списком из девяти
   диапазонов — тех же, что в фильтре каталога: раньше поле было
   предзаполнено числом 250 и каждый пятый его не менял, получая расчёт
   для чужой комнаты. Карта из картинки стала кликабельной. */
.ms4l-c{--pp:#0046be;--pp2:#43206B;--ink:#1c1c22;--mut:#5c5c6a;--line:#e3e3ea;
  /* Палитра одна с картой зон доставки на /pages/shipping-delivery-policy:
   жёлтый, зелёный и голубой взяты оттуда один в один, два тёплых тона
   подобраны в той же приглушённой насыщенности. Раньше тут были чистые
   спектральные цвета, и две карты сайта выглядели из разных наборов. 05.09.2026 */
  --r1:#d9866f;--r2:#f4d03f;--r3:#8fbf8f;--r4:#c8a2d8;--r5:#a8d4f0;
  max-width:1240px;margin:0 auto;padding:0 16px}
.ms4l-c *{box-sizing:border-box}
.ms4l-c__grid{display:grid;grid-template-columns:1fr;gap:26px}
.ms4l-fld{margin-bottom:20px}
.ms4l-fld__lb{display:block;font-weight:700;font-size:15px;color:var(--ink);margin-bottom:9px}
.ms4l-c select{width:100%;height:52px;padding:0 44px 0 14px;border:1px solid var(--line);
  border-radius:12px;background:#fff;font-size:16px;color:var(--ink);appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 8l5 5 5-5' stroke='%235c5c6a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:20px}
.ms4l-c select:focus{outline:2px solid var(--pp);outline-offset:1px;border-color:var(--pp)}
select.ms4l-hidden,.ms4l-c .ms4l-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;min-width:0;max-width:1px}
/* Было width:100% при position:absolute — поле уезжало на 116px за правый край
   и давало горизонтальную прокрутку всей странице. clip его прятал визуально,
   но из ширины документа не убирал. 06.09.2026 */
/* фишки регионов */
.ms4l-regs{display:flex;flex-wrap:wrap;gap:8px}
.ms4l-reg{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;
  border:1.5px solid var(--line);background:#fff;cursor:pointer;font-size:14px;font-weight:600;
  color:var(--ink);transition:border-color .15s,box-shadow .15s}
.ms4l-reg i{width:13px;height:13px;border-radius:50%;display:block}
.ms4l-reg[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 3px rgba(28,28,34,.08)}
.ms4l-hint{margin:10px 0 0;font-size:13px;color:var(--mut)}
/* карта */
.ms4l-map{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff}
.ms4l-map__svg{display:block;width:100%;height:auto}
.ms4l-map__svg path{stroke:#fff;stroke-width:1.1;stroke-linejoin:round;cursor:pointer;
  transition:opacity .12s,filter .12s;opacity:1}
.ms4l-map__svg path[data-r="1"]{fill:var(--r1)} .ms4l-map__svg path[data-r="2"]{fill:var(--r2)}
.ms4l-map__svg path[data-r="3"]{fill:var(--r3)} .ms4l-map__svg path[data-r="4"]{fill:var(--r4)}
.ms4l-map__svg path[data-r="5"]{fill:var(--r5)}
/* выбранный регион светится, остальные приглушены — так видно, что выбрано */
.ms4l-map__svg.is-on path{opacity:.35}
.ms4l-map__svg.is-on path.on{opacity:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.28))}
.ms4l-map__svg path.st,.ms4l-map__svg path.hv{stroke:#1f2430;stroke-width:2.2;opacity:1}
.ms4l-map__svg path:hover{filter:brightness(.93)}
.ms4l-map__lg{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:7px;margin-top:12px;padding:12px 0 0;border-top:1px solid var(--line)}
.ms4l-map__lg span{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 6px;
  font-size:12.5px;font-weight:700;color:var(--ink)}
.ms4l-map__lg i{width:11px;height:11px;border-radius:50%; }
/* результат */
.ms4l-res{margin-top:18px;background:var(--pp);color:#fff;border-radius:18px;padding:30px 26px;text-align:center}
.ms4l-res__lb{font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.86}
.ms4l-res h2, .ms4l-res .ms4l-res__big{margin:10px 0 6px;font-size:52px;line-height:1.05;font-weight:800;color:#fff}
.ms4l-res__sub{font-size:15px;opacity:.9;margin-bottom:22px}
.ms4l-res__sub b{font-weight:800}
.ms4l-res__btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;
  padding:0 34px;background:#fff;border:2px solid #fff;border-radius:999px;color:var(--pp);
  font-weight:800;font-size:16px;text-decoration:none;box-shadow:0 2px 10px rgba(0,0,0,.18);
  transition:background .15s,color .15s,box-shadow .15s,transform .15s}
.ms4l-res__btn:hover{background:#e5effd;color:#013196;box-shadow:0 8px 22px rgba(0,0,0,.28);transform:translateY(-1px)}
  .ms4l-res__btn:active{transform:translateY(0);box-shadow:0 2px 8px rgba(0,0,0,.22)}
  .ms4l-res__btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
  @media (prefers-reduced-motion:reduce){.ms4l-res__btn{transition:none}.ms4l-res__btn:hover{transform:none}}
.ms4l-res__alt{display:block;margin-top:14px;font-size:14px;color:#fff;opacity:.85;text-decoration:underline}
.ms4l-res__help{margin-top:20px;font-size:14px;opacity:.8}
.ms4l-res__help a{color:#fff;font-weight:700}
.ms4l-res.is-empty .ms4l-res__btn,.ms4l-res.is-empty .ms4l-res__alt{display:none}
/* уточнения */
.ms4l-more{border:1px solid var(--line);border-radius:14px;background:#fafafc;margin-top:6px}
.ms4l-more>summary{cursor:pointer;list-style:none;padding:15px 18px;font-weight:700;font-size:15px;
  color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px}
.ms4l-more>summary::-webkit-details-marker{display:none}
.ms4l-more>summary::after{content:"+";font-size:20px;font-weight:700;color:var(--mut);line-height:1}
.ms4l-more[open]>summary::after{content:"–"}
.ms4l-more__in{padding:2px 18px 18px;display:grid;grid-template-columns:1fr;gap:16px}
.ms4l-c input[type=number]{width:100%;height:52px;padding:0 14px;border:1px solid var(--line);
  border-radius:12px;font-size:16px;color:var(--ink)}
@media (min-width:900px){
  /* на широком экране карта и результат справа, поля слева */
  .ms4l-c__grid{grid-template-columns:minmax(0,1fr) 520px;gap:38px;align-items:start}
  .ms4l-c__fields{order:1} .ms4l-c__side{order:2;position:sticky;top:150px}
  .ms4l-more__in{grid-template-columns:1fr 1fr;gap:16px 20px}
  .ms4l-res h2,.ms4l-res .ms4l-res__big{font-size:58px}
}
@media (max-width:899px){
  /* Порядок на телефоне: карта -> поля -> результат. .ms4l-c__side раскрываем
     через display:contents, иначе карта и результат едут одним блоком и
     результат оказывается выше полей. */
  .ms4l-c__grid{display:flex;flex-direction:column}
  .ms4l-c__side{display:contents}
  .ms4l-map{order:1}
  .ms4l-c__fields{order:2;margin-top:22px}
  .ms4l-res{order:3;margin-top:22px}
}


/* Доставка. Три склада — реальное преимущество перед конкурентами, но раньше
   про них знал только тот, кто дочитал страницу условий. Теперь срок виден
   там, где человек выбирает мощность. Зона берётся с самого штата
   (data-dz), склад — ближайший из трёх. 05.09.2026 */
.ms4l-map{position:relative}
.ms4l-map__lgw i{background:#0046be;box-shadow:0 0 0 2.5px #fff,0 0 0 4px rgba(0,70,190,.25)}
/* булавки не должны гаснуть вместе с контурами штатов */
.ms4l-map__svg .ms4l-map__wh path,.ms4l-map__svg.is-on .ms4l-map__wh path{opacity:1}
.ms4l-map__pinb{fill:#0046be;stroke:#fff;stroke-width:2.4;stroke-linejoin:round;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.ms4l-map__pinc{fill:#fff}
/* Подписи как на карте зон доставки. Кегль крупнее тамошнего: колонка с картой
   в калькуляторе вдвое уже, и 17px там ужались бы до нечитаемых 9px. */
.ms4l-map__cap{margin:9px 0 0;font-size:12px;color:var(--mut);text-align:center;line-height:1.45}
.ms4l-map__pint{fill:#1f2430;font-size:26px;font-weight:800;letter-spacing:.04em;
  paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
@media (max-width:640px){
  .ms4l-map__pint{display:none}
}
.ms4l-map__svg .ms4l-map__wh{pointer-events:none}
.ms4l-map__tip{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,-115%);
  background:#1f2430;color:#fff;border-radius:9px;padding:7px 10px;font-size:12px;line-height:1.35;
  white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.ms4l-map__tip b{display:block;font-size:12.5px}
.ms4l-map__tip i{font-style:normal;opacity:.75}
.ms4l-dlv{margin-top:12px;border:1px solid #c9d9f5;background:#f2f7ff;border-radius:13px;padding:12px 14px}
.ms4l-dlv__ttl{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:800;color:#1f2430;margin-bottom:6px}
.ms4l-dlv__ttl svg{flex:0 0 auto}
.ms4l-dlv__hint{font-size:12.5px;color:#6b7280}
/* [hidden] сам по себе не сработает: display у класса перебивает правило
   браузера, и до выбора штата в блоке висели прочерки. 05.09.2026 */
.ms4l-dlv__body[hidden],.ms4l-dlv__hint[hidden]{display:none}
.ms4l-dlv__body{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;font-size:14px;color:#1f2430}
.ms4l-dlv__dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;align-self:center;background:#c9ccd3}
.ms4l-dlv[data-z="1"] .ms4l-dlv__dot{background:#8fbf8f}
.ms4l-dlv[data-z="2"] .ms4l-dlv__dot{background:#f4d03f}
.ms4l-dlv[data-z="3"] .ms4l-dlv__dot{background:#c8a2d8}
.ms4l-dlv[data-z="4"] .ms4l-dlv__dot{background:#a8d4f0}
.ms4l-dlv__days{font-weight:800}
.ms4l-dlv__to{color:#4b5563}
.ms4l-dlv__pts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:9px 0 0;padding:0;list-style:none;
  border-top:1px solid #c9d9f5;padding-top:9px}
.ms4l-dlv__pts li{font-size:12px;color:#4b5563;display:flex;align-items:center;gap:5px}
.ms4l-dlv__pts li:before{content:"";width:6px;height:6px;border-radius:50%;background:#0046be;flex:0 0 auto}
.ms4l-dlv__more{display:inline-block;margin-top:9px;font-size:12px;font-weight:700;color:#0046be}
.ms4l-res__dlv{margin-top:16px;padding:11px 14px;border-radius:12px;background:rgba(255,255,255,.14);
  font-size:14px;line-height:1.4}
.ms4l-res__dlv b{font-weight:800}


@media (max-width:640px){
  /* Под картой легенда выглядела рядом кнопок, а настоящие кнопки выбора
     региона шли следом — две группы подряд сбивали. Цвета и так продублированы
     точками на самих кнопках, поэтому на телефоне от легенды оставляем только
     строку про склады, и она больше не похожа на кнопку. 06.09.2026 */
  .ms4l-map__lg{grid-template-columns:1fr;gap:0;border-top:0;padding-top:8px;margin-top:8px}
  .ms4l-map__lg span{display:none}
  .ms4l-map__lg .ms4l-map__lgw{display:inline-flex;background:transparent;border:0;padding:0;
    justify-content:flex-start;font-size:12px;font-weight:600;color:var(--mut)}
}

/* Подбор товаров прямо в результате. Раньше кнопка вела в коллекцию, где на
   36 000 BTU лежит 815 позиций без сортировки — точный ответ калькулятора
   там просто терялся. Теперь показываем три системы нужной мощности, самые
   доступные первыми, и человек покупает не выходя из расчёта. 06.09.2026 */
.ms4l-picks{margin-top:18px;text-align:left}
.ms4l-picks[hidden]{display:none}
.ms4l-picks__lb{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  opacity:.8;margin-bottom:9px}
.ms4l-picks__list{display:flex;flex-direction:column;gap:8px}
.ms4l-pick{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:12px;
  background:rgba(255,255,255,.13);text-decoration:none;color:#fff;
  transition:background .15s,transform .15s}
.ms4l-pick:hover{background:rgba(255,255,255,.22);color:#fff;transform:translateY(-1px)}
.ms4l-pick__img{width:46px;height:46px;flex:0 0 auto;border-radius:9px;background:#fff;
  object-fit:contain;padding:3px}
.ms4l-pick__t{flex:1 1 auto;min-width:0;font-size:13px;line-height:1.3;font-weight:600;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ms4l-pick__p{flex:0 0 auto;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
/* Кнопка покупки прямо в подборке, 12.09.2026. Повод: за 04–12.09 калькулятор
   дал 1 629 расчётов и 284 перехода, а заказов с его меткой — ноль. От подборки
   до корзины было четыре тапа, и это при 87% мобильных. Ряд остаётся ссылкой на
   карточку, кнопка — отдельная цель, поэтому у неё stopPropagation.
   Товары, где самый дешёвый набор идёт без трасс («No Installation Kit»),
   кнопки не получают: продать двухзонную систему в один тап без трасс — это
   возврат, а не заказ. Там ведём на карточку выбирать комплектацию. */
.ms4l-pick__buy{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;border-radius:999px;
  background:#fff;color:var(--pp);font-weight:800;font-size:13px;line-height:38px;
  cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,transform .15s}
.ms4l-pick__buy:hover{background:#e5effd;color:#013196;transform:translateY(-1px)}
.ms4l-pick__buy:active{transform:translateY(0)}
.ms4l-pick__buy:focus-visible{outline:3px solid #fff;outline-offset:2px}
.ms4l-pick__buy[disabled]{opacity:.65;cursor:default;transform:none}
.ms4l-pick__opt{flex:0 0 auto;font-size:12.5px;font-weight:700;color:#fff;opacity:.9;
  text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.ms4l-pick__v{display:block;font-weight:600;font-size:11.5px;opacity:.75;margin-top:2px}
@media (max-width:640px){
  /* На телефоне четыре элемента в строку не помещаются — цена и кнопка
     переезжают под название, кнопка растягивается на всю ширину под палец. */
  .ms4l-pick{flex-wrap:wrap}
  .ms4l-pick__t{flex:1 1 calc(100% - 57px)}
  .ms4l-pick__p{margin-left:57px}
  .ms4l-pick__buy,.ms4l-pick__opt{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){
  .ms4l-pick__buy{transition:none}.ms4l-pick__buy:hover{transform:none}
}
.ms4l-picks__more{display:inline-block;margin-top:9px;font-size:12.5px;font-weight:700;
  color:#fff;opacity:.85;text-decoration:underline;text-underline-offset:3px}