/* Legacy home/noise readability. Load after the original page styles.
   No cookie, hover, reveal, modal, RepairPanels or Metalworks form rules. */
.Footer .disclaimer,
.Footer .docs,
.Footer .rights { text-align: left; }

@media (max-width: 1279px) {
  main:not([class]) > .Realized .description { width: 100%; max-width: 100%; }
  main:not([class]) > .Realized .description__wrapper { width: 100%; max-width: 100%; }
  main:not([class]) > .Realized .description__title,
  main:not([class]) > .Realized .description__text { width: 100%; max-width: 620px; margin-inline: auto; }
  main:not([class]) > .Realized .description__title span:first-child { font-size: clamp(24px, 7.8vw, 31px); line-height: 1.12; }
  main:not([class]) > .Realized .description__title span:nth-child(2) { font-size: clamp(18px, 5.4vw, 21px); line-height: 1.2; }
  main:not([class]) > .Realized .description__text { font-size: 14px; line-height: 1.5; letter-spacing: 0; }
  main:not([class]) > .Realized .object { width: auto; max-width: calc(100% - 2 * var(--container-px)); margin-inline: var(--container-px); }
  main:not([class]) > .Realized .object__title { width: auto; max-width: 100%; font-size: 14px; line-height: 1.4; letter-spacing: 0; }
  main:not([class]) > .Realized .object__list { font-size: 14px; line-height: 1.5; letter-spacing: 0; max-height: 220px; }
  main:not([class]) > .Realized .object__list ol li { padding-left: 22px; }
  main:not([class]) > .Realized .object__list ol li::before { width: 16px; }

  main:not([class]) > .Faq .question { max-width: 100%; min-height: 44px; padding: 12px 16px; font-size: 14px; line-height: 1.45; letter-spacing: 0; overflow-wrap: anywhere; }
  main:not([class]) > .Faq .footer .text { width: 100%; max-width: 420px; }
  main:not([class]) > .Faq .footer .btn { max-width: 100%; min-height: 44px; }

  /* Shared footer, including product pages; does not reach any form. */
  .Footer .wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .Footer .nav { width: auto; min-width: 0; }
  .Footer .nav__items { gap: 0; }
  .Footer .nav__item { min-width: 0; font-size: 12px; line-height: 1.4; letter-spacing: 0; }
  .Footer .nav__item a { display: flex; align-items: center; min-height: 28px; padding-block: 5px; overflow-wrap: anywhere; }
  .Footer .disclaimer,
  .Footer .docs,
  .Footer .rights { font-size: 12px; line-height: 1.5; letter-spacing: 0; }
  .Footer .docs { flex-wrap: wrap; gap: 4px 16px; }
  .Footer .docs a { display: flex; align-items: center; flex: 1 1 220px; min-width: 0; min-height: 28px; padding-block: 4px; overflow-wrap: anywhere; }
  .Footer .contacts { min-width: 0; max-width: 100%; }
  .Footer .contacts .tel { max-width: 100%; }
  .Footer .contacts .tel a { max-width: 100%; min-height: 28px; gap: 4px; font-size: 12px; line-height: 1.4; }
  .Footer .contacts .tel a span { min-width: 0; overflow-wrap: anywhere; }
  .Footer .contacts .email { max-width: 100%; min-height: 28px; gap: 4px; }
  .Footer .contacts .email span { min-width: 0; line-height: 1.4; overflow-wrap: anywhere; }

  /* The existing noise estimate keeps its layout and handler. */
  main:not([class]) > .Calculation .inputs { width: min(251px, 100%); min-width: 0; }
  main:not([class]) > .Calculation .input input { width: 100%; max-width: 100%; min-height: 44px; padding-block: 11px; font-size: 16px; line-height: 1.4; }
  main:not([class]) > .Calculation .btns { width: min(421px, 100%); min-width: 0; }
  main:not([class]) > .Calculation .file-btn,
  main:not([class]) > .Calculation .submit-btn { max-width: 100%; min-height: 44px; }
  main:not([class]) > .Calculation .file-btn { display: flex; align-items: center; justify-content: center; }
  main:not([class]) > .Calculation .checkbox { align-items: flex-start; gap: 10px; min-width: 0; min-height: 44px; margin-left: 0; }
  main:not([class]) > .Calculation .checkbox .input-wrapper { flex: 0 0 44px; width: 44px; height: 44px; border: 0; transform: none; }
  main:not([class]) > .Calculation .checkbox input { position: relative; flex: 0 0 20px; width: 20px; height: 20px; margin: 0; padding: 0; border: 1px solid #fff; border-radius: 3px; }
  main:not([class]) > .Calculation .checkbox input::after { content: ''; position: absolute; inset: -12px; }
  main:not([class]) > .Calculation .checkbox input::before { content: ''; position: absolute; top: 2px; left: 6px; display: none; width: 6px; height: 11px; border: solid var(--blue); border-width: 0 2px 2px 0; transform: rotate(45deg); }
  main:not([class]) > .Calculation .checkbox input:checked::before { display: block; }
  main:not([class]) > .Calculation .checkbox input:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
  main:not([class]) > .Calculation .checkbox label { min-width: 0; padding: 9px 0; font-size: 12px; line-height: 1.5; letter-spacing: 0; overflow-wrap: anywhere; }
}

@media (max-width: 767px) {
  /* Keep the original two-column footer rhythm with readable supporting copy.
     Compact link rows avoid the oversized spacing of primary form controls. */
  .Footer { padding-block: 28px 20px; }
  .Footer .wrapper { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 12px; margin-bottom: 18px; }
  .Footer .info__top { margin-bottom: 20px; }
  .Footer .nav__item { font-size: 11px; line-height: 1.4; }
  .Footer .nav__item a { min-height: 28px; padding-block: 4px; }
  .Footer .contacts { align-self: start; gap: 14px; }
  .Footer .contacts .tel .info { font-size: 9px; line-height: 1.35; }
  .Footer .disclaimer { margin-bottom: 12px; font-size: 10px; line-height: 1.45; }
  .Footer .docs { flex-direction: column; gap: 0; margin-bottom: 10px; padding-right: 64px; }
  .Footer .docs a { flex: 0 1 auto; align-items: center; font-size: 10px; line-height: 1.4; }
  .Footer .rights { padding-right: 64px; font-size: 10px; line-height: 1.4; }
  /* Present the primary action after the product introduction, before proof.
     Keep the original button and handler; contents flattens layout only. */
  main:not([class]) > .Hero:has(.mobile) { height: auto; min-height: 100svh; }
  main:not([class]) > .Hero:has(.mobile) > .wrapper { height: auto; flex: 1 0 auto; }
  main:not([class]) > .Hero:has(.mobile) > .wrapper > .container { height: auto; }
  main:not([class]) > .Hero:has(.mobile) .mobile,
  main:not([class]) > .Hero:has(.mobile) .footer { display: contents; }
  main:not([class]) > .Hero:has(.mobile) .presentation-btn { order: 1; position: static; flex-shrink: 0; align-self: center; width: 100%; max-width: 340px; min-height: 48px; margin: 18px auto 20px; padding: 12px 18px; gap: 16px; justify-content: center; }
  main:not([class]) > .Hero:has(.mobile) .presentation-btn span { font-size: 13px; line-height: 1.3; letter-spacing: 0; text-transform: none; }
  main:not([class]) > .Hero:has(.mobile) .presentation-btn br { display: none; }
  main:not([class]) > .Hero:has(.mobile) .presentation-btn img { display: block; width: 14px; height: 18px; }
  main:not([class]) > .Hero:has(.mobile) .mobile > .realized { order: 2; align-self: center; }
  main:not([class]) > .Hero:has(.mobile) .position { order: 3; align-self: center; width: auto; max-width: 100%; flex-direction: row; align-items: center; gap: 14px; margin: 18px 0 24px; text-align: left; }
  main:not([class]) > .Hero:has(.mobile) .position__text { width: 160px; max-width: 100%; font-size: 11px; line-height: 1.15; }

  /* Home has .mobile; the noise title-wrapper is a direct container child. */
  main:not([class]) > .Hero .mobile { width: 100%; max-width: 100%; min-width: 0; }
  main:not([class]) > .Hero .mobile .title { width: 100%; max-width: 100%; }
  main:not([class]) > .Hero .mobile .title span { max-width: 100%; }
  main:not([class]) > .Hero .mobile .title span:nth-child(2),
  main:not([class]) > .Hero > .wrapper > .container > .title-wrapper .title span:nth-child(2) { font-size: clamp(23px, 7.5vw, 30px); line-height: 1.12; }
  main:not([class]) > .Hero .mobile .title span:nth-child(3) { font-size: clamp(18px, 5.8vw, 23px); line-height: 1.18; }
  main:not([class]) > .Hero .mobile > .description1_mob { max-width: 100%; margin-left: auto; transform: translateY(-13px); }
  main:not([class]) > .Hero .mobile .description2 { max-width: 100%; overflow-wrap: anywhere; }
  main:not([class]) > .Hero .mobile .realized { max-width: 100%; }
  main:not([class]) > .Hero .mobile .realized__title span:nth-child(2) { font-size: clamp(20px, 6vw, 24px); }
  main:not([class]) > .Hero > .wrapper > .container > .title-wrapper,
  main:not([class]) > .Hero > .wrapper > .container > .title-wrapper .title { width: min(300px, 100%); max-width: 100%; }
  main:not([class]) > .Hero > .wrapper > .container > .subtitle { width: min(290px, 100%); max-width: 100%; }
  main:not([class]) > .Hero > .wrapper > .container > .box { max-width: 100%; }

  /* Only the identified legacy section titles; no global h2 override. */
  main:not([class]) > .Advantages > .container > .title,
  main:not([class]) > .Certification > .container .info > .title,
  main:not([class]) > .Partners > .container > .title,
  main:not([class]) > .Directions > .container > .title,
  main:not([class]) > .Price .content > .title,
  main:not([class]) > .Life .top > .title,
  main:not([class]) > .Products > .container > .title { max-width: 100%; font-size: clamp(22px, 6.9vw, 31px); line-height: 1.15; letter-spacing: -.025em; overflow-wrap: normal; }

  /* Gutenberg document-template heading; no legal text is edited. */
  main:not([class]) > section > .container > h1.wp-block-heading { max-width: 100%; font-size: clamp(22px, 6vw, 30px); line-height: 1.2; overflow-wrap: anywhere; word-break: normal; hyphens: auto; }
}

/* Wider screens retain their original hero layout. Lift just the presentation
   action above the fixed notices and the compact widget's two-button stack. */
@media (min-width: 768px) and (max-width: 1440px) {
  main:not([class]) > .Hero:has(.mobile) .presentation-btn { position: relative; top: -140px; min-height: 44px; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  main:not([class]) > .Hero:has(.mobile) .presentation-btn span { font-size: 12px; line-height: 1.2; }
}

@media (max-width: 360px) {
  .Footer .nav__item { font-size: 10px; }
  .Footer .nav__item a { hyphens: auto; }
  .Footer .contacts .email span,
  .Footer .contacts .tel a { font-size: 11px; }
  main:not([class]) > .Directions .swiper-slide { padding-inline: 14px; }
  main:not([class]) > .Directions .swiper-slide .name { line-height: 1.25; overflow-wrap: normal; }
  main:not([class]) > .Price .swiper-slide .block__title { font-size: 21px; line-height: 1.25; overflow-wrap: normal; }
  main:not([class]) > .Price .swiper-slide .block__text { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
}

@media (max-width: 359px) {
  .DevelopmentPage .dev-options__grid > a > h3 { font-size: clamp(19px, 5.9vw, 23px); line-height: 1.12; }
}
