/* Codex stable menu guard 2026-07-30
   The project HEAD owns the actual menu labels.
   Project custom CSS must only keep the layout stable and must not inject duplicate text. */

.t-menu__link-item {
  color: #252627 !important;
  text-shadow: none !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
  text-indent: 0 !important;
  clip-path: none !important;
  transform: none !important;
  white-space: nowrap !important;
}

/* Codex mobile hero word wrap guard 2026-08-24
   Keep long Russian service names intact and use a consistent mobile scale. */
@media (max-width: 640px) {
  #allrecords .uc-cover .t153__title,
  #allrecords .uc-cover h1 {
    font-size: clamp(32px, 9vw, 36px) !important;
    line-height: 1.02 !important;
    max-width: 100% !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }
}

/* Shared header messenger brand colors 2026-08-25.
   URL-based selectors keep the styling stable if Tilda reorders the buttons. */
.uc-header a.t-btn[href*="vk.com"] {
  color: #ffffff !important;
  background: #0077ff !important;
  border-color: #0077ff !important;
  box-shadow: 0 4px 12px rgba(0, 119, 255, 0.24) !important;
}

.uc-header a.t-btn[href*="t.me"] {
  color: #ffffff !important;
  background: #229ed9 !important;
  border-color: #229ed9 !important;
  box-shadow: 0 4px 12px rgba(34, 158, 217, 0.24) !important;
}

.uc-header a.t-btn[href*="max.ru"] {
  color: #ffffff !important;
  background: linear-gradient(135deg, #471aff 0%, #9500ff 55%, #00bfff 100%) !important;
  border-color: #6e1aff !important;
  box-shadow: 0 4px 12px rgba(71, 26, 255, 0.26) !important;
}

.uc-header a.t-btn[href*="vk.com"] .t-btnflex__icon,
.uc-header a.t-btn[href*="t.me"] .t-btnflex__icon,
.uc-header a.t-btn[href*="max.ru"] .t-btnflex__icon {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

@media (hover: hover) and (pointer: fine) {
  .uc-header a.t-btn[href*="vk.com"]:hover {
    background: #006bd6 !important;
    border-color: #006bd6 !important;
  }

  .uc-header a.t-btn[href*="t.me"]:hover {
    background: #168ac2 !important;
    border-color: #168ac2 !important;
  }

  .uc-header a.t-btn[href*="max.ru"]:hover {
    background: linear-gradient(135deg, #3910e8 0%, #7f00de 55%, #00a9df 100%) !important;
  }
}

/* Codex mobile width guard 2026-08-24
   Keep padded section headers and nested fire-safety containers inside the viewport. */
@media (max-width: 640px) {
  .uc-team .js-block-header-title,
  .uc-firesafety__block .t-container,
  .uc-firesafety__btn .t-container {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

.t-menu__link-item::before,
.t-menu__link-item::after {
  content: none !important;
  display: none !important;
}

.t-menu__link-wrapper,
.t-menu__list,
.t228__list,
.t456__list {
  overflow: visible !important;
}

@media (min-width: 1201px) {
  .t-menu__link-item {
    font-size: 14px !important;
    line-height: 14px !important;
  }
}

@media (min-width: 641px) and (max-width: 1200px) {
  .t-menu__link-item {
    font-size: 13px !important;
    line-height: 13px !important;
  }
}

@media (max-width: 640px) {
  .t-menu__link-item {
    font-size: 14px !important;
    line-height: 14px !important;
  }
}

/* Services hero recovery */
#rec2254765361 .t153__title {
  color: #ffffff !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55) !important;
}

#snp-services-intro {
  color: #ffffff !important;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45) !important;
  max-width: 620px !important;
}

@media (max-width: 640px) {
  #rec2254765361 .t153__title {
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5) !important;
  }

  #snp-services-intro {
    font-size: 15px !important;
    line-height: 1.4 !important;
  }
}

/* Codex shared typography system 2026-08-05
   Keep same-theme blocks visually consistent across pages and prevent text overlap. */

:root {
  --snp-font-base: Inter, Arial, sans-serif;
  --snp-color-text: #252627;
  --snp-color-muted: #4f5358;
  --snp-radius-card: 22px;
  --snp-radius-btn: 14px;
  --snp-shadow-card: 0 14px 34px rgba(22, 29, 37, 0.08);
}

#allrecords .t-title,
#allrecords .t-section__title,
#allrecords .t-card__title,
#allrecords .t-name,
#allrecords h1,
#allrecords h2,
#allrecords h3 {
  font-family: var(--snp-font-base) !important;
  color: var(--snp-color-text);
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  text-wrap: balance;
}

#allrecords .t-descr,
#allrecords .t-text,
#allrecords .t-card__descr,
#allrecords .t-card__price,
#allrecords .t-uptitle,
#allrecords .t-subtitle,
#allrecords .t-input,
#allrecords .t-textarea,
#allrecords textarea,
#allrecords input[type="text"],
#allrecords input[type="email"],
#allrecords input[type="tel"] {
  font-family: var(--snp-font-base) !important;
  color: var(--snp-color-text);
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

#allrecords .t-descr,
#allrecords .t-text,
#allrecords .t-card__descr,
#allrecords .t-card__price,
#allrecords .t-subtitle {
  line-height: 1.46 !important;
}

#allrecords .t-card__title,
#allrecords .gallery__slide .t472__title,
#allrecords .t649 .t-card__title {
  line-height: 1.14 !important;
}

#allrecords .t-btn,
#allrecords .t-submit,
#allrecords .t-btnflex_type_button,
#allrecords .t-btnflex_type_submit {
  font-family: var(--snp-font-base) !important;
  border-radius: var(--snp-radius-btn) !important;
}

#allrecords .t-btnflex__text,
#allrecords .t-btn span,
#allrecords .t-submit {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  line-height: 1.1 !important;
}

#allrecords .t-card__col,
#allrecords .gallery__slide,
#allrecords .t649__col {
  min-width: 0 !important;
}

#allrecords .t-card__wrapper,
#allrecords .t649__textwrapper,
#allrecords .gallery__slide .t472__textwrapper {
  min-width: 0 !important;
}

#allrecords .t-input,
#allrecords .t-textarea,
#allrecords textarea,
#allrecords input[type="text"],
#allrecords input[type="email"],
#allrecords input[type="tel"] {
  min-width: 0 !important;
}

@media (max-width: 640px) {
  #allrecords .t-title,
  #allrecords .t-section__title,
  #allrecords h1,
  #allrecords h2 {
    line-height: 1.02 !important;
    text-wrap: pretty;
  }

  #allrecords .t-card__title,
  #allrecords .gallery__slide .t472__title {
    font-size: 18px !important;
    line-height: 1.14 !important;
  }

  #allrecords .t-descr,
  #allrecords .t-text,
  #allrecords .t-card__descr,
  #allrecords .t-card__price,
  #allrecords .t-subtitle {
    font-size: 14px !important;
    line-height: 1.48 !important;
  }

  #allrecords .t-btn,
  #allrecords .t-submit,
  #allrecords .t-btnflex_type_button,
  #allrecords .t-btnflex_type_submit {
    min-height: 46px !important;
  }
}

/* Codex contrast recovery 2026-08-15
   Fix dark-on-dark text collisions without touching light sections. */

#rec2253628031 .t-btnflex.t-btnflex_type_button,
#rec2253628041 .t-btnflex.t-btnflex_type_button {
  color: #252627 !important;
  background: #ffffff !important;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.3) !important;
}

#rec2253628051 .t-btnflex.t-btnflex_type_button {
  color: #ffffff !important;
  background: #252627 !important;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.3) !important;
}

#rec2253628061 .t-btnflex.t-btnflex_type_button {
  color: #ffffff !important;
  background: #bd1c1c !important;
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.3) !important;
}

.uc-services .t-card__title,
.uc-services .t-card__title a,
.uc-services .t-card__link {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.28) !important;
}

.uc-services .t772__textwrapper,
.uc-services .t-card__btn-wrapper {
  background: #252627 !important;
}

.uc-team .js-block-header-title {
  color: #ffffff !important;
  background: #252627 !important;
  border-radius: 22px !important;
  padding: 20px 22px !important;
  box-shadow: 0 16px 36px rgba(15, 18, 21, 0.16) !important;
}

.uc-team .t649__textwrapper,
.uc-team .t-card__col {
  background: #252627 !important;
}

.uc-team .t-card__title,
.uc-team .t-card__descr,
.uc-team .t-card__descr *,
.uc-firesafety__block .t485__title,
.uc-firesafety__block .t485__descr,
.gallery__slide .t472__title,
.gallery__slide .t472__descr,
.gallery__slide .t472__descr * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.uc-galery__works .t649__textwrapper {
  background: #252627 !important;
  padding: 22px 22px 24px !important;
}

.uc-galery__works .t-card__col {
  background: #252627 !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  box-shadow: 0 16px 36px rgba(15, 18, 21, 0.14) !important;
}

.uc-galery__works .t-card__title,
.uc-galery__works .t-card__descr,
.uc-galery__works .t-card__descr *,
.uc-galery__works .t-card__descr strong {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Codex unified typography system 2026-08-16
   Keep the site visually coherent across homepage, services, works, team and fire safety. */

:root {
  --snp-hero-title-size: clamp(44px, 3.8vw, 56px);
  --snp-hero-title-line: 0.94;
  --snp-hero-title-track: -0.03em;
  --snp-hero-text-size: clamp(18px, 1.45vw, 22px);
  --snp-hero-text-line: 1.24;
  --snp-section-title-size: clamp(34px, 3vw, 48px);
  --snp-section-title-line: 0.98;
  --snp-section-title-track: -0.03em;
  --snp-card-title-size: clamp(20px, 1.5vw, 24px);
  --snp-card-title-line: 1.12;
  --snp-card-text-size: 16px;
  --snp-card-text-line: 1.5;
  --snp-button-text-size: 16px;
  --snp-button-line: 1.1;
}

#allrecords .t-section__title,
#allrecords .js-block-header-title {
  font-size: var(--snp-section-title-size) !important;
  line-height: var(--snp-section-title-line) !important;
  letter-spacing: var(--snp-section-title-track) !important;
  text-transform: none !important;
}

#allrecords .t-card__title,
#allrecords .gallery__slide .t472__title,
#allrecords .t649 .t-card__title,
#allrecords .t485__title {
  font-size: var(--snp-card-title-size) !important;
  line-height: var(--snp-card-title-line) !important;
  font-weight: 600 !important;
}

#allrecords .t-card__descr,
#allrecords .gallery__slide .t472__descr,
#allrecords .t649 .t-card__descr,
#allrecords .t485__descr,
#allrecords .t485__descr p,
#allrecords .t-card__descr p {
  font-size: var(--snp-card-text-size) !important;
  line-height: var(--snp-card-text-line) !important;
}

#allrecords .t-btnflex__text,
#allrecords .t-btn span,
#allrecords .t-submit,
#allrecords .t-btn {
  font-size: var(--snp-button-text-size) !important;
  line-height: var(--snp-button-line) !important;
}

#allrecords .t-btn,
#allrecords .t-submit,
#allrecords .t-btnflex,
#allrecords .t-btnflex_type_button,
#allrecords .t-btnflex_type_submit {
  min-height: 52px !important;
}

.uc-services .t772__textwrapper,
.uc-galery__works .t649__textwrapper,
.uc-team .t649__textwrapper,
.uc-firesafety__block .t485__wrapper {
  padding: 22px 22px 24px !important;
}

.uc-services .t-card__btn-wrapper,
.uc-galery__works .t-card__btn-wrapper,
.uc-team .t-card__btn-wrapper {
  padding: 18px 22px 22px !important;
}

.uc-cover .t153__title,
#rec2254765361 .t153__title,
#rec2254765361 h1,
#rec2266844691 .t153__title {
  font-size: var(--snp-hero-title-size) !important;
  line-height: var(--snp-hero-title-line) !important;
  letter-spacing: var(--snp-hero-title-track) !important;
}

.uc-cover .t153__descr,
#rec2254765361 .t153__descr,
#rec2254765361 .t-cover__descr,
#rec2254765361 .t-descr,
#rec2266844691 .t153__descr {
  font-size: var(--snp-hero-text-size) !important;
  line-height: var(--snp-hero-text-line) !important;
  font-weight: 500 !important;
}

#rec2246734171 .t467__descr,
#rec2266844701 .t467__descr {
  font-size: 18px !important;
  line-height: 1.4 !important;
}

@media (max-width: 640px) {
  :root {
    --snp-hero-title-size: clamp(34px, 10.6vw, 44px);
    --snp-hero-text-size: 15px;
    --snp-hero-text-line: 1.32;
    --snp-section-title-size: 30px;
    --snp-card-title-size: 18px;
    --snp-card-text-size: 14px;
    --snp-button-text-size: 15px;
  }

  .uc-cover .t153__title,
  #rec2254765361 .t153__title,
  #rec2254765361 h1,
  #rec2266844691 .t153__title {
    max-width: 320px !important;
  }

  .uc-cover .t153__descr,
  #rec2254765361 .t153__descr,
  #rec2254765361 .t-cover__descr,
  #rec2254765361 .t-descr,
  #rec2266844691 .t153__descr {
    max-width: 320px !important;
  }

  #allrecords .t-btn,
  #allrecords .t-submit,
  #allrecords .t-btnflex,
  #allrecords .t-btnflex_type_button,
  #allrecords .t-btnflex_type_submit {
    min-height: 46px !important;
  }

  .uc-services .t772__textwrapper,
  .uc-galery__works .t649__textwrapper,
  .uc-team .t649__textwrapper,
  .uc-firesafety__block .t485__wrapper {
    padding: 18px 18px 20px !important;
  }

  .uc-services .t-card__title,
  .uc-team .t-card__title,
  .uc-galery__works .t-card__title,
  .uc-firesafety__block .t485__title,
  .gallery__slide .t472__title {
    font-size: 17px !important;
    line-height: 1.18 !important;
  }

  .uc-team .t-card__descr,
  .uc-team .t-card__descr *,
  .uc-galery__works .t-card__descr,
  .uc-galery__works .t-card__descr *,
  .uc-firesafety__block .t485__descr,
  .gallery__slide .t472__descr,
  .gallery__slide .t472__descr * {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .uc-services .t-card__btn-wrapper,
  .uc-galery__works .t-card__btn-wrapper,
  .uc-team .t-card__btn-wrapper {
    padding: 14px 18px 18px !important;
  }

  #allrecords .t-btnflex__text,
  #allrecords .t-btn span,
  #allrecords .t-submit,
  #allrecords .t-btn {
    text-align: center !important;
  }

  #rec2246734171 .t467__descr,
  #rec2266844701 .t467__descr {
    font-size: 16px !important;
    line-height: 1.34 !important;
  }
}


/* Codex section header width guard 2026-08-25
   Padding must stay inside the team title width on every breakpoint. */
.uc-team .js-block-header-title {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  right: 0 !important;
}

/* Blog feed contrast guard 2026-08-26.
   The feed cards use a dark background, so all textual parts must stay light. */
.uc-blog__page .t-feed__post-title,
.uc-blog__page .t-feed__post-title a,
.uc-blog__page .t-feed__post-descr,
.uc-blog__page .t-feed__post-descr *,
.uc-blog__page .t-feed__post-date {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

.uc-blog__page .t-feed__post-title {
  line-height: 1.14 !important;
}

.uc-blog__page .t-feed__post-descr {
  line-height: 1.45 !important;
  opacity: 0.88 !important;
}

.uc-blog__page .t-feed__button-readmore .t-btn {
  color: #ffffff !important;
  background: #c91f1f !important;
  border-color: #c91f1f !important;
}

@media (max-width: 640px) {
  .uc-blog__page .t-feed__post-title {
    font-size: 22px !important;
  }

  .uc-blog__page .t-feed__post-descr {
    font-size: 14px !important;
  }
}
