/* ============================================================
   SEO-страницы (scripts/build_seo.py): товары, услуги, города,
   лаборатория, калькуляторы. Опираются на template, brand и blog.
   ============================================================ */
.seo-body{ background:#fff }
.swrap{ padding-top:clamp(18px,3vw,32px) }

/* ---------- мобильное меню без скрипта ---------- */
.smenu{ display:none;position:relative;margin-left:4px }
.smenu summary{ display:grid;gap:6px;padding:10px 6px;cursor:pointer;list-style:none }
.smenu summary::-webkit-details-marker{ display:none }
.smenu summary span{ width:24px;height:2px;background:#fff;transition:transform .3s var(--ease) }
.smenu[open] summary span:first-child{ transform:translateY(4px) rotate(45deg) }
.smenu[open] summary span:last-child{ transform:translateY(-4px) rotate(-45deg) }
.smenu__list{
  position:absolute;right:0;top:calc(100% + 10px);display:grid;min-width:230px;padding:8px;
  border-radius:14px;background:rgba(34,40,38,.97);box-shadow:0 18px 40px rgba(0,0,0,.3);z-index:60;
}
.smenu__list a{ padding:11px 14px;border-radius:9px;color:#dfe5e2;font-size:16px }
.smenu__list a:hover,.smenu__list a.is-here{ background:rgba(255,255,255,.08);color:#fff }
@media (max-width:1100px){
  .bnav{ display:none }
  .smenu{ display:block }
  .bhead__call{ margin-left:auto }
}

/* ---------- первый экран ---------- */
.shero{ max-width:900px;margin-block:clamp(18px,3vw,34px) clamp(26px,4vw,44px) }
.shero h1{ margin-top:12px;font-size:clamp(32px,4.4vw,62px);font-weight:400;letter-spacing:-.04em;line-height:1.04 }
.shero__lead{ margin-top:18px;max-width:64ch;font-size:clamp(17px,1.4vw,20px);line-height:1.5;color:#3d4b47 }
.shero__facts{ display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none }
.shero__facts li{
  padding:8px 13px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line);
  font-family:var(--mono);font-size:13px;letter-spacing:.02em;color:var(--ink);
}
.shero__facts li:first-child{ background:var(--ink);border-color:var(--ink);color:#fff }
.shero__btns{ display:flex;flex-wrap:wrap;gap:10px;margin-top:24px }
.shero__btns .tag-btn{ min-height:50px }
.shero__btns .tag-btn--white{ border:1px solid var(--line) }

/* ---------- основной столбец ---------- */
.smain{ max-width:900px }
.sblock{ margin-top:clamp(28px,4vw,48px) }
.sblock h2,.sbody h2,.sfaq h2,.slinks h2,.sform h2{
  font-size:clamp(24px,2.4vw,34px);font-weight:400;letter-spacing:-.03em;line-height:1.12;
}
.sblock > h2{ margin-bottom:16px }
.sblock__sub{ margin:22px 0 10px;font-size:18px;font-weight:500 }
.sblock__note{ margin-top:10px;font-size:14px;line-height:1.5;color:var(--muted) }
.sblock__lead{ font-size:17px;line-height:1.55;color:#3d4b47 }
.stbl tbody tr.is-hl td{ background:rgba(0,175,80,.09);font-weight:500 }
.stbl tbody tr.is-hl td:first-child{ box-shadow:inset 3px 0 0 var(--lime) }
.stbl--narrow{ max-width:560px }

/* карточка города и завода */
.scity{ padding:clamp(18px,2.4vw,28px);border-radius:16px;background:var(--paper-2);border:1px solid var(--line) }
.scity__facts{ display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px 22px;margin:0 }
.scity__facts dt{ font-size:13px;color:var(--muted) }
.scity__facts dd{ margin:4px 0 0;font-size:17px;line-height:1.35 }
.scity__facts--plant{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) }
.scity__facts a{ text-decoration:underline;text-underline-offset:3px }
.scity__calc{ margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:16px;line-height:1.5 }
.scity__calc b{ font-family:var(--mono);font-weight:500;color:var(--lime) }
.scity__note{ margin-top:10px;font-size:15px;line-height:1.5;color:#3d4b47 }
.srules{ display:grid;gap:8px;margin:0;padding-left:20px;font-size:16px;line-height:1.5 }

/* миксеры */
.smixes{ display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px }
.smix{ display:grid;gap:6px;padding:18px;border-radius:14px;border:1px solid var(--line);background:#fff;transition:border-color .25s,transform .35s var(--ease) }
.smix b{ font-family:var(--mono);font-size:26px;font-weight:500 }
.smix span{ font-size:14px;line-height:1.4;color:var(--muted) }
.smix:hover{ border-color:var(--ink);transform:translateY(-2px) }
.smix.is-hl{ border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime) }
@media (max-width:620px){ .smixes{ grid-template-columns:1fr } }

/* ---------- текст ---------- */
.sbody{ margin-top:clamp(28px,4vw,48px) }
.sbody h2{ margin:1.6em 0 .55em }
.sbody h2:first-child{ margin-top:0 }
.sbody h3{ margin:1.3em 0 .4em;font-size:19px;font-weight:500 }
.sbody p,.sbody li{ font-size:17px;line-height:1.65;color:#1f2e2b }
.sbody p + p{ margin-top:.8em }
.sbody ul{ margin:.6em 0;padding-left:22px }
.sbody li + li{ margin-top:.35em }
.sbody a{ color:var(--lime);text-decoration:underline;text-underline-offset:3px }
.sbody .tbl-wrap{ margin:1em 0 }

/* ---------- вопросы ---------- */
.sfaq{ margin-top:clamp(30px,4vw,52px) }
.sfaq h2{ margin-bottom:12px }
.sfaq__item{ border-top:1px solid var(--line) }
.sfaq__item:last-child{ border-bottom:1px solid var(--line) }
.sfaq__item summary{
  position:relative;padding:18px 44px 18px 0;cursor:pointer;list-style:none;font-size:18px;line-height:1.35;
}
.sfaq__item summary::-webkit-details-marker{ display:none }
.sfaq__item summary::after{
  content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;margin-top:-7px;
  border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg);transition:transform .3s var(--ease);
}
.sfaq__item[open] summary::after{ transform:rotate(225deg);margin-top:-2px }
.sfaq__item p{ padding:0 0 18px;font-size:16px;line-height:1.6;color:#3d4b47;max-width:70ch }
.sfaq__item a{ color:var(--lime);text-decoration:underline }

/* ---------- ссылки ---------- */
.slinks{ margin-top:clamp(34px,4.5vw,60px) }
.slinks h2{ margin-bottom:14px }
.slinks ul{ display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 22px;margin:0;padding:0;list-style:none }
.slinks li{ border-bottom:1px solid var(--line) }
.slinks a{ display:block;padding:11px 0;font-size:16px;line-height:1.35;transition:color .2s }
.slinks a:hover{ color:var(--lime) }
.slinks--cities ul{ grid-template-columns:repeat(auto-fill,minmax(190px,1fr)) }

/* ---------- заявка ---------- */
.sform{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,60px);
  margin-top:clamp(40px,6vw,80px);padding:clamp(24px,4vw,48px);border-radius:20px;background:var(--paper-2);
  scroll-margin-top:90px;
}
.sform__text p{ margin-top:14px;font-size:17px;line-height:1.55;color:#3d4b47 }
.sform__phones{ display:grid;gap:4px }
.sform__phones a{ font-size:clamp(22px,2vw,28px);letter-spacing:-.02em;color:var(--ink) }
.sform__phones span{ font-size:14px;color:var(--muted) }
.sform__form .field{ padding-block:18px 12px }
.sform__form .lead__consent{ margin-top:20px }
.sform__form .lead__submit{ margin-top:20px }
@media (max-width:860px){ .sform{ grid-template-columns:1fr } }

/* ---------- калькулятор ---------- */
.scalc{ padding:clamp(20px,3vw,34px);border-radius:20px;background:var(--dark);color:#fff;scroll-margin-top:90px }
.scalc h2{ font-size:clamp(24px,2.4vw,32px);font-weight:400;letter-spacing:-.03em }
.scalc__shapes{ display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 6px }
.scalc__shapes button{
  padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:none;color:#fff;
  font:inherit;font-size:14px;cursor:pointer;transition:background-color .25s,border-color .25s;
}
.scalc__shapes button.is-on{ background:var(--lime);border-color:var(--lime) }
.scalc__grid{ display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:16px }
.scalc label{ display:grid;gap:6px;font-size:13px;color:rgba(255,255,255,.65) }
.scalc input,.scalc select{
  width:100%;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);
  color:#fff;font:inherit;font-size:16px;
}
.scalc select option{ color:var(--ink) }
.scalc input:focus,.scalc select:focus{ outline:none;border-color:var(--lime-soft) }
.scalc__out{ display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14) }
.scalc__out div{ display:grid;gap:4px }
.scalc__out dt{ font-size:13px;color:rgba(255,255,255,.6) }
.scalc__out dd{ margin:0;font-family:var(--mono);font-size:22px }
.scalc__out .is-total dd{ color:var(--lime-soft);font-size:26px }
.scalc__note{ margin-top:14px;font-size:13px;line-height:1.5;color:rgba(255,255,255,.6) }
.scalc__send{ margin-top:18px }

/* ---------- подвал ---------- */
.sfoot{ margin-top:clamp(40px,6vw,80px);padding-block:clamp(36px,5vw,60px) 30px;background:var(--dark);color:#cfd6d2 }
.sfoot__grid{ display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px }
.sfoot__h{ margin-bottom:12px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--lime-soft) }
.sfoot ul{ display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:15px;line-height:1.4 }
.sfoot a{ color:#e6ebe8 }
.sfoot a:hover{ color:#fff;text-decoration:underline }
.sfoot__legal{ display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#93a09b }
.sfoot__legal a{ color:#93a09b }
.sfoot__grid--contacts{ grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) }
@media (max-width:900px){ .sfoot__grid{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (max-width:520px){ .sfoot__grid{ grid-template-columns:1fr } }

/* документ */
.sdoc .bart__body p{ font-size:16px }

/* ---------- телефон: калькулятор и меню ---------- */
@media (max-width:520px){
  /* выпадающие списки в калькуляторе обрезались: они на всю ширину */
  .scalc__grid{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .scalc__grid label:has(select){ grid-column:1 / -1 }
  .scalc input,.scalc select{ font-size:16px }
}
@media (max-width:760px){
  /* кнопка меню: зона нажатия не меньше 44 px */
  .smenu summary{ min-width:44px;min-height:44px;place-content:center }
}

/* кнопка «Скачать прайс» под таблицами цен */
.sdl{ margin-top:16px }
