/* Public section layouts, layered after responsive.css. */
.page { line-height: 1.6; }
.page p { line-height: 1.6; }
.page__title { padding-left: 0; }
.page__title h1 { line-height: 1.15; letter-spacing: -.025em; }
.page__body h2, .page__body h3, .page__body h4 { line-height: 1.3; }
.page img { max-width: 100%; height: auto; }
.page iframe, .page video { max-width: 100%; }
.service-item__caption { height: auto; min-height: 68px; padding: 12px; box-sizing: border-box; }
.product__name { height: auto; color: #2c1f39; line-height: 1.5; overflow: visible; }
.product__name::after { display: none; }
.product__photo { border-radius: 10px; border: 1px solid #e5dfe6; box-shadow: 0 4px 16px #2c1f390a; }
.page form:has(.search-suggest) { display: flex; flex-wrap: wrap; gap: 12px; padding: 24px; border: 1px solid #e5dfe6; border-radius: 14px; background: #faf8fa; }
.page .search-suggest { width: 100%; flex: 1 1 240px; min-width: 0; box-sizing: border-box; }
.page form:has(.search-suggest) input:not([type="hidden"]), .page form:has(.search-suggest) select { min-height: 48px; padding: 10px 14px; border: 1px solid #d8d0dc; border-radius: 8px; font: inherit; max-width: 100%; box-sizing: border-box; }
.page form:has(.search-suggest) input[type="submit"] { background: #b8342b; color: white; border-color: #b8342b; cursor: pointer; }
.page .button--main, .popup .button--main { border: 0; border-radius: 10px; background: #b8342b; box-shadow: none; text-decoration: none; }
.page .button--main:hover, .popup .button--main:hover { background: #982b24; }
.page .button--main::before, .popup .button--main::before { display: none; }
.page .txt-input__field, .popup .txt-input__field { border: 1px solid #d8d0dc; box-shadow: none; padding: 12px; min-height: 46px; line-height: 1.5; }
.layout-spacer, [hidden] { display: none !important; }
.section-navigation { margin-bottom: 24px; border: 1px solid #e5dfe6; border-radius: 12px; background: #faf8fa; }
.section-navigation summary { cursor: pointer; padding: 16px; font-weight: 500; min-height: 48px; box-sizing: border-box; }
.section-navigation.section-navigation--brands > summary { display: list-item; }
.section-navigation summary:focus-visible { outline: 3px solid #b8342b !important; outline-offset: 2px; }
.section-navigation[open] summary { border-bottom: 1px solid #e5dfe6; }
.section-navigation .tabs-nav2--btn { display: grid; grid-template-columns: repeat(auto-fit,minmax(110px,1fr)); gap: 6px; padding: 12px; margin: 0; width: 100%; box-sizing: border-box; max-height: 55vh; overflow-y: auto; }
.section-navigation .tabs-nav2--btn::after, .section-navigation .tabs-nav2__point::before { display: none; }
.section-navigation .tabs-nav2__point { width: auto; float: none; margin: 0; padding: 0; border: 0; }
.section-navigation .tabs-nav2__point a { display: flex; align-items: center; justify-content: center; padding: 12px; height: auto; min-height: 44px; border: 1px solid #e9e3ea; border-radius: 8px; background: white; box-sizing: border-box; text-decoration: none; }
.section-navigation .tabs-nav2__point a::after { display: none; }
.section-navigation .tabs-nav2__point.isActive a { color: white; background: #b8342b; border-color: #b8342b; }
.cat-section { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 24px; padding: 24px; border: 1px solid #e9e3ea; border-radius: 14px; margin-bottom: 16px; }
.cat-section__img-wrap { float: none; width: auto; }
.cat-section__content { min-width: 0; overflow: visible; }
.cat-section__content-title { width: auto; }
.cat-section__content-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.cat-section__content-col { float: none; width: auto; min-width: 0; }
.catalog { padding: 0; margin: 0 0 32px; }
.catalog__item { padding: 0; }
.content-card { padding: 24px; border-radius: 14px; }
.content-card__body { padding: 0; }
.service-intro { padding-left: 0; }
.service-intro__desc { line-height: 1.6; }
.submit-block { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; height: auto; padding: 12px; line-height: 1.4; border-radius: 12px; box-sizing: border-box; }
.submit-block__text { float: none; padding: 0; }
.submit-block__control { margin: 0; }
.table { width: 100%; border-collapse: collapse; }
.table td, .table th { padding: 14px 12px; height: auto; line-height: 1.45; }
.table form.table__control { width: auto; padding: 0; margin: 0; }
.table .button { max-width: 100%; white-space: normal; line-height: 1.4; height: auto; min-height: 44px; padding: 10px; }
.partners { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.partners__item { display: block; width: auto; padding: 0; margin: 0; min-width: 0; }
.partner { border: 1px solid #e9e3ea; border-radius: 12px; padding: 16px; height: 100%; box-sizing: border-box; }
.partner__image { border: 0; border-radius: 8px; }
.partner__title { line-height: 1.4; padding: 12px 0 0; }
.comment { border: 1px solid #e9e3ea; border-radius: 12px; padding: 20px; }
.comment__name, .comment__date { padding: 0 0 12px; }
.comment__text, .comment__footer { padding: 0; }
.comment__reply { border-radius: 8px; margin: 16px 0 0; padding: 16px; }
.comments { padding-top: 40px; }
.comments__title { padding-left: 0; }
.vacancy { border: 1px solid #e9e3ea; border-radius: 14px; padding: 24px; }
.vacancy__body { width: auto; }
.vacancy__contacts, .vacancy__footer { border-radius: 10px; }
.vacancy__body ul { padding-left: 24px; }
.b-catalog__list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin: 0; }
.b-catalog__list::after { display: none; }
.b-catalog__item { float: none; width: auto; padding: 0; margin: 0; min-width: 0; }
.b-video iframe { width: 100%; min-height: 0; height: auto; aspect-ratio: 16 / 9; }
.discount { padding: 0; }
.discount__inner { height: auto; min-height: 192px; border-radius: 14px; padding: 28px; }
.discount__inner::before { display: none; }
.discount__form { width: 100%; max-width: 600px; display: flex; flex-wrap: wrap; gap: 12px; }
.discount__input { float: none; flex: 1 1 240px; width: auto; padding: 0; min-width: 0; }
.discount__submit { float: none; width: auto; padding: 0; }
.discount__button { min-height: 44px; height: auto; padding: 0 20px; box-sizing: border-box; }
@media (min-width: 1170px) {
  .section-navigation > summary { display: none; }
}
@media (max-width: 1169px) {
  .cat-section__content-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vacancy__sidebar { width: 32%; }
  .partners { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .page__control { position: static; margin-bottom: 16px; }
  .submit-block--fix { width: auto; }
  .popup { width: min(690px, calc(100vw - 48px)); }
  .popup__title { position: relative; height: auto; padding: 20px 60px 20px 20px; }
  .popup:has(> .popup__title) { padding-top: 0; }
}
@media (max-width: 767px) {
  .page { margin-bottom: 40px; }
  .page__body { overflow-wrap: break-word; }
  .crumbs { padding: 16px 0; margin: 0; }
  .b-main__left-col:has(.menu--sidebar[hidden]) { display: none; }
  .b-main__left-col { margin-bottom: 0; }
  .cat-section { grid-template-columns: 64px minmax(0,1fr); gap: 12px; padding: 16px; }
  .cat-section__content { display: contents; }
  .cat-section__content-title { align-self: center; }
  .cat-section__content-list { grid-column: 1 / -1; grid-template-columns: 1fr; gap: 0; }
  .cat-section .list { margin: 12px 0 0; padding-left: 0; }
  .cat-section .list a { display: inline-block; padding-block: 7px; border-bottom: 0; text-decoration: underline; text-underline-offset: 4px; }
  .content-card { padding: 20px 0; }
  .content-card--gray { padding: 20px 16px; }
  .content-card__col { width: 100%; float: none; }
  .content-card__text-col { padding-left: 16px; }
  .content-card__body--padding { padding: 0; }
  .service-intro { margin-bottom: 16px; }
  .service-intro__submit-block { margin-top: 20px; }
  .submit-block__text-h4 { font-size: 18px; }
  .corp-list { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 0; }
  .corp-list li { flex: 0 1 100px; }
  .menu-columns { columns: 1; }
  .table small { line-height: 1.4; }
  /* Service prices become readable rows, retaining the original table content. */
  #toggleTable, #toggleTable tbody { display: block; }
  #toggleTable tr { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; border: 1px solid #e5dfe6; border-radius: 12px; padding: 16px; margin-bottom: 12px; }
  #toggleTable tr:has(th) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
  #toggleTable tr.showtr { display: grid !important; }
  #toggleTable td { display: block; width: auto; padding: 0; margin: 0; height: auto; }
  #toggleTable .table__type-job { font-size: 16px; font-weight: 500; }
  #toggleTable .table__price { font-size: 16px; color: #8d302b; }
  #toggleTable .table__control .button { text-align: center; padding: 10px 12px; width: 100%; font-size: 14px; border: 1px solid #d9b7b3; border-radius: 8px; }
  .partners { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .partner { padding: 12px; }
  .vacancy { padding: 16px; }
  .vacancy__sidebar { float: none; width: 100%; padding: 0; margin-bottom: 24px; }
  .vacancy__footer-col { display: block; max-width: none; padding: 8px 0; }
  .vacancies__item { margin-bottom: 24px; }
  .comment__name, .comment__date { display: block; float: none; }
  .comment__date { font-size: 13px; color: #6a5e72; }
  .b-catalog__list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .discount__inner { padding: 20px 16px; }
  .discount__title { font-size: 24px; line-height: 1.3; }
  .discount__submit { width: 100%; }
  .discount__button { width: 100%; }
  .fancybox-inner { max-width: calc(100vw - 48px); }
  .fancybox-close--outer { right: 0; }
}
