.page-content { width: 100%; min-width: 0; }
.page-content > p,
.page-content > h1,
.page-content > h2,
.page-content > h3,
.page-content > h4,
.page-content > h5,
.page-content > h6,
.page-content > ul,
.page-content > ol,
.page-content > blockquote,
.page-content > table,
.page-content > figure { width: calc(100% - 128px); max-width: var(--container-width, 1312px); margin-inline: auto; }
.page-content > img { display: block; width: auto; max-width: min(calc(100% - 128px), var(--container-width, 1312px)); height: auto; margin-inline: auto; }
@media (max-width: 1200px) {
          .page-content > p, .page-content > h1, .page-content > h2, .page-content > h3, .page-content > h4, .page-content > h5, .page-content > h6, .page-content > ul, .page-content > ol, .page-content > blockquote, .page-content > table, .page-content > figure { width: calc(100% - 64px); }
                  .page-content > img { max-width: calc(100% - 64px); }
}
@media (max-width: 768px) {
          .page-content > p, .page-content > h1, .page-content > h2, .page-content > h3, .page-content > h4, .page-content > h5, .page-content > h6, .page-content > ul, .page-content > ol, .page-content > blockquote, .page-content > table, .page-content > figure { width: calc(100% - 40px); }
                  .page-content > img { max-width: calc(100% - 40px); }
}


/* Group-S 404 page */
.error-page {
          width: 100%;
                  background: #f8fbf9;
}
.error-page__hero {
          position: relative;
                  min-height: 600px;
                            box-sizing: border-box;
                                        overflow: hidden;
                                                      padding: 86px 64px 54px;
                                                                      padding-inline: max(64px, calc((100% - var(--container-width, 1312px)) / 2));
                                                                                        background: linear-gradient(106deg, #e8ffed 0%, #edfffa 58%, #dbfaff 100%);
}
.error-page__content {
          position: relative;
                  z-index: 2;
                            width: min(660px, 100%);
}
.error-page__eyebrow {
          margin: 0 0 26px;
                  color: #1fc473;
                            font: 600 12px/24px var(--font-body, "Inter", sans-serif);
                                        letter-spacing: .01em;
}
.error-page__title {
          margin: 0;
                  max-width: 700px;
                            color: #173d33;
                                        font: 700 clamp(34px, 3.35vw, 48px)/1.08 var(--font-heading, "Unbounded", sans-serif);
                                                      letter-spacing: -.02em;
}
.error-page__text {
          margin: 28px 0 0;
                  color: #4f635e;
                            font: 400 18px/1.45 var(--font-body, "Inter", sans-serif);
}
.error-page__actions {
          display: flex;
                  flex-wrap: wrap;
                            gap: 16px;
                                        margin-top: 38px;
}
.error-page__button {
          display: inline-flex;
                  width: 190px;
                            min-height: 54px;
                                        align-items: center;
                                                      justify-content: center;
                                                                      border-radius: 16px;
                                                                                        box-sizing: border-box;
                                                                                                            text-decoration: none;
                                                                                                                                  font-size: 13px;
}
.error-page__button span {
          margin-left: 7px;
                  font-size: 16px;
}
.error-page__routes {
          width: 100%;
                  min-height: 88px;
                            box-sizing: border-box;
                                        margin-top: 32px;
                                                      padding: 16px 20px;
                                                                      border: 1px solid #cfe8de;
                                                                                        border-radius: 20px;
                                                                                                            background: rgba(255,255,255,.62);
}
.error-page__routes-label {
          display: block;
                  color: #24544a;
                            font: 600 11px/22px var(--font-body, "Inter", sans-serif);
}
.error-page__routes-list {
          display: flex;
                  flex-wrap: wrap;
                            gap: 0 14px;
                                        margin-top: 4px;
                                                      color: #173d33;
                                                                      font: 500 14px/30px var(--font-body, "Inter", sans-serif);
}
.error-page__routes-list a {
          color: inherit;
                  text-decoration: none;
                            transition: color .18s ease;
}
.error-page__routes-list a:hover,
.error-page__routes-list a:focus-visible {
          color: #1fc473;
}
.error-page__visual {
          position: absolute;
                  z-index: 1;
                            top: 0;
                                        right: 0;
                                                      width: 710px;
                                                                      height: 100%;
                                                                                        pointer-events: none;
}
.error-page__number {
          position: absolute;
                  top: 94px;
                            left: 50%;
                                        color: #173d33;
                                                      opacity: .96;
                                                                      font: 700 clamp(120px, 12.5vw, 180px)/1 var(--font-heading, "Unbounded", sans-serif);
                                                                                        letter-spacing: -.08em;
                                                                                                            transform: translateX(-50%);
}
.error-page__caption {
          position: absolute;
                  top: 336px;
                            left: 50%;
                                        width: 360px;
                                                      margin: 0;
                                                                      color: #24544a;
                                                                                        text-align: center;
                                                                                                            font: 500 15px/1.55 var(--font-body, "Inter", sans-serif);
                                                                                                                                  transform: translateX(-50%);
}
.error-page__orb {
          position: absolute;
                  border-radius: 50%;
                            pointer-events: none;
}
.error-page__orb--accent {
          top: 44px;
                  right: 90px;
                            width: 500px;
                                        height: 500px;
                                                      background: linear-gradient(145deg, rgba(178,247,121,.28) 0%, rgba(117,231,207,.24) 58%, rgba(40,190,215,.18) 100%);
}
.error-page__orb--ring {
          top: 84px;
                  right: 130px;
                            width: 420px;
                                        height: 420px;
                                                      border: 2px solid rgba(23,61,51,.2);
                                                                      box-sizing: border-box;
                                                                                        box-shadow: 0 0 0 34px rgba(113,221,212,.2), inset 0 0 0 1px rgba(255,255,255,.35);
}
@media (max-width: 1200px) {
          .error-page__hero { padding-inline: 40px; }
                  .error-page__visual { width: 45%; }
                            .error-page__number { font-size: clamp(108px, 12vw, 160px); }
                                        .error-page__orb--accent { right: -90px; }
                                                      .error-page__orb--ring { right: -50px; }
}
@media (max-width: 768px) {
          .error-page__hero {
                            min-height: 0;
                                              padding: 56px 20px 44px;
          }
                  .error-page__content { width: 100%; }
                            .error-page__eyebrow { margin-bottom: 18px; }
                                        .error-page__title { font-size: clamp(30px, 9vw, 42px); }
                                                      .error-page__text { margin-top: 20px; font-size: 16px; line-height: 1.5; }
                                                                      .error-page__actions { gap: 10px; margin-top: 28px; }
                                                                                        .error-page__button { width: min(100%, 190px); }
                                                                                                            .error-page__routes { margin-top: 24px; }
                                                                                                                                  .error-page__routes-list { gap: 0 10px; line-height: 27px; }
                                                                                                                                                          .error-page__visual {
                                                                                                                                                                                              position: relative;
                                                                                                                                                                                                                                  top: auto;
                                                                                                                                                                                                                                                                          right: auto;
                                                                                                                                                                                                                                                                                                                      width: 100%;
                                                                                                                                                                                                                                                                                                                                                                      height: 220px;
                                                                                                                                                                                                                                                                                                                                                                                                                          margin-top: 24px;
                                                                                                                                                          }
                                                                                                                                                                                    .error-page__number { top: 12px; left: 52%; font-size: clamp(100px, 30vw, 150px); }
                                                                                                                                                                                                                .error-page__caption { top: 142px; left: 52%; width: 280px; font-size: 14px; }
                                                                                                                                                                                                                                              .error-page__orb--accent { top: -30px; right: -100px; width: 320px; height: 320px; }
                                                                                                                                                                                                                                                                              .error-page__orb--ring { top: -10px; right: -70px; width: 280px; height: 280px; }
}
@media (prefers-reduced-motion: reduce) {
          .error-page__routes-list a { transition: none; }
}


/* Rich text pages — UI KIT / Figma 353:2151 */
.page-content > h1 {
      margin-top: 0;
        margin-bottom: 28px;
          color: #20262a;
            font-family: var(--font-heading, "Unbounded", sans-serif);
              font-size: 36px;
                font-weight: 700;
                  line-height: 44px;
                    letter-spacing: -0.02em;
}
.page-content > h2 {
      margin-top: 52px;
        margin-bottom: 18px;
          color: #20262a;
            font-family: var(--font-heading, "Unbounded", sans-serif);
              font-size: 30px;
                font-weight: 700;
                  line-height: 38px;
                    letter-spacing: -0.02em;
}
.page-content > h3 {
      margin-top: 40px;
        margin-bottom: 14px;
          color: #20262a;
            font-family: var(--font-heading, "Unbounded", sans-serif);
              font-size: 24px;
                font-weight: 700;
                  line-height: 32px;
}
.page-content > h4 {
      margin-top: 32px;
        margin-bottom: 12px;
          color: #20262a;
            font-family: var(--font-body, "Inter", sans-serif);
              font-size: 20px;
                font-weight: 700;
                  line-height: 28px;
}
.page-content > h5,
.page-content > h6 {
      margin-top: 24px;
        margin-bottom: 10px;
          color: #20262a;
            font-family: var(--font-body, "Inter", sans-serif);
              font-size: 16px;
                font-weight: 700;
                  line-height: 24px;
}
.page-content > p:not(:empty) {
      margin-top: 0;
        margin-bottom: 20px;
          color: #66736d;
            font-family: var(--font-body, "Inter", sans-serif);
              font-size: 16px;
                font-weight: 400;
                  line-height: 24px;
}
.page-content > p strong {
      color: #20262a;
        font-weight: 700;
}
.page-content > p em {
      color: #20262a;
}
.page-content a {
      color: #178a55;
        text-decoration: underline;
          text-decoration-thickness: 1px;
            text-underline-offset: 3px;
              transition: color 180ms ease;
}
.page-content a:hover,
.page-content a:focus-visible {
      color: #168ea0;
}
.page-content > ul,
.page-content > ol {
      margin-top: 12px;
        margin-bottom: 30px;
          padding-left: 28px;
            color: #20262a;
              font-family: var(--font-body, "Inter", sans-serif);
                font-size: 14px;
                  line-height: 22px;
}
.page-content > ul > li,
.page-content > ol > li {
      margin: 10px 0;
        padding-left: 8px;
}
.page-content > ul > li::marker {
      color: #22b96b;
        font-size: 16px;
          font-weight: 700;
}
.page-content > ol {
      list-style: none;
        padding-left: 0;
          counter-reset: rich-list;
}
.page-content > ol > li {
      position: relative;
        padding-left: 42px;
          counter-increment: rich-list;
}
.page-content > ol > li::before {
      position: absolute;
        top: 0;
          left: 0;
            color: #168ea0;
              content: counter(rich-list, decimal-leading-zero);
                font-size: 13px;
                  font-weight: 700;
                    line-height: 22px;
}
.page-content > ul ul,
.page-content > ol ol,
.page-content > ul ol,
.page-content > ol ul {
      margin: 8px 0 4px;
        padding-left: 20px;
}
.page-content > ul ul > li::marker {
      color: #168ea0;
        content: "? ";
}
.page-content > blockquote {
      margin: 32px auto;
        padding: 20px 24px 20px 48px;
          border-left: 5px solid #2ec2d3;
            color: #111b18;
              font-family: var(--font-body, "Inter", sans-serif);
                font-size: 17px;
                  font-weight: 600;
                    line-height: 27px;
                      background: rgba(229, 247, 242, 0.5);
}
.page-content > table {
      width: calc(100% - 128px);
        max-width: var(--container-width, 1312px);
          margin: 28px auto 36px;
            overflow: hidden;
              border: 1px solid #dce6e1;
                border-radius: 14px;
                  border-spacing: 0;
                    background: #fff;
                      color: #20262a;
                        font-family: var(--font-body, "Inter", sans-serif);
                          font-size: 14px;
                            line-height: 20px;
                              text-align: left;
}
.page-content > table th,
.page-content > table td {
      padding: 14px 16px;
        border-right: 1px solid #e4ece8;
          border-bottom: 1px solid #e4ece8;
            text-align: left;
              vertical-align: top;
}
.page-content > table th {
      color: #4b5953;
        font-size: 12px;
          font-weight: 700;
            line-height: 18px;
              background: #e4ece8;
}
.page-content > table td {
      background: #fff;
}
.page-content > table tbody tr:nth-child(even) td {
      background: #f7faf8;
}
.page-content > table th:last-child,
.page-content > table td:last-child {
      border-right: 0;
}
.page-content > table tr:last-child td {
      border-bottom: 0;
}
@media (max-width: 1200px) {
      .page-content > table {
              width: calc(100% - 64px);
      }
}
@media (max-width: 768px) {
      .page-content > h1 {
              font-size: 30px;
                  line-height: 36px;
      }
        .page-content > h2 {
                margin-top: 40px;
                    font-size: 24px;
                        line-height: 32px;
        }
          .page-content > h3 {
                  margin-top: 32px;
                      font-size: 20px;
                          line-height: 28px;
          }
            .page-content > ul,
              .page-content > ol {
                      padding-left: 24px;
                          font-size: 14px;
              }
                .page-content > table {
                        display: block;
                            overflow-x: auto;
                                width: calc(100% - 40px);
                                    margin-top: 22px;
                                        border-radius: 12px;
                                            white-space: nowrap;
                }
}
@media (prefers-reduced-motion: reduce) {
      .page-content a {
              transition: none;
      }
}


@media (min-width: 1361px) {
  .site-footer,
  .site-footer__inner {
    height: 690px;
  }
  .site-footer__files {
    position: absolute;
    top: 420px;
    left: 1016px;
    width: 232px;
    margin: 0;
  }
  .site-footer__disclaimer {
    top: 528px;
  }
  .site-footer__bottom {
    top: 636px;
  }
}
.site-footer__files .site-footer__heading {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 16px;
}
.site-footer__list--files {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
  margin: 0;
}
.site-footer__list--files .site-footer__link {
  font-size: 11px;
  line-height: 14px;
  white-space: nowrap;
}
@media (max-width: 1360px) {
  .site-footer,
  .site-footer__inner {
    height: auto;
  }
  .site-footer__files {
    position: static;
    grid-column: 1 / -1;
    width: auto;
    margin: 24px 0 0;
  }
}
@media (max-width: 560px) {
  .site-footer__list--files {
    grid-template-columns: 1fr;
  }
}


/* production-home-hero-cta-link */
body[data-page="home"] .hero__actions > a.button.button--primary,
body[data-page="home"] .hero__actions > a.button.button--primary:visited,
body[data-page="home"] .hero__actions > a.button.button--primary:hover,
body[data-page="home"] .hero__actions > a.button.button--primary:focus-visible {
  color: #fff;
  text-decoration: none;
}

/* production-faq-call-cta-link */
.faq-call > a.button.button--primary.faq-call__button,
.faq-call > a.button.button--primary.faq-call__button:visited,
.faq-call > a.button.button--primary.faq-call__button:hover,
.faq-call > a.button.button--primary.faq-call__button:focus-visible {
  color: #fff;
  text-decoration: none;
}
.faq-call__button .button__arrow {
  color: currentColor;
}

/* production-yandex-review-hint-position */
.yandex-review__hint {
  top: 52px;
}

/* production-development-final-cta-light */
body[data-page="development"] main > section.final-cta {
  background: #f8fbf9;
}
body[data-page="development"] main > section.final-cta .final-cta__panel {
  background: linear-gradient(90deg, #e1ffe4 0%, #dbfcff 100%);
}
body[data-page="development"] main > section.final-cta .final-cta__title {
  color: #20252b;
}
body[data-page="development"] main > section.final-cta .final-cta__contacts {
  color: #43504b;
}

/* production-anchor-button-colors */
a.button.button--primary,
a.button.button--primary:visited,
a.button.button--primary:hover,
a.button.button--primary:focus-visible {
  color: #fff;
  text-decoration: none;
}
a.button.button--secondary,
a.button.button--secondary:visited,
a.button.button--secondary:hover,
a.button.button--secondary:focus-visible {
  color: #20252b;
  text-decoration: none;
}
a.button .button__arrow {
  color: currentColor;
}

/* portfolio-migx-detail-dialog */
.portfolio-concept__featured-image[role="button"] { cursor: zoom-in; }
.portfolio-concept__featured-image[role="button"]:focus-visible { outline: 3px solid #b8f25f; outline-offset: -5px; }
.portfolio-concept__detail { width: min(96vw, 1600px); max-width: none; max-height: 94vh; margin: auto; padding: 0; overflow: visible; border: 0; border-radius: 20px; background: #102a27; box-shadow: 0 24px 80px rgba(0,0,0,.52); }
.portfolio-concept__detail::backdrop { background: rgba(8, 24, 21, .82); backdrop-filter: blur(5px); }
.portfolio-concept__detail img { display: block; width: auto; max-width: 96vw; max-height: 94vh; height: auto; border-radius: inherit; }
.portfolio-concept__detail-close { position: absolute; z-index: 1; top: 14px; right: 14px; display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.5); border-radius: 12px; color: #102a27; background: #fff; font: 700 28px/1 var(--font-body, sans-serif); cursor: pointer; transition: transform .18s cubic-bezier(.22,1,.36,1), background .18s ease; }
.portfolio-concept__detail-close:hover { transform: translateY(-2px); background: #b8f25f; }
.portfolio-concept__detail-close:focus-visible { outline: 3px solid #b8f25f; outline-offset: 3px; }
@media (max-width: 640px) { .portfolio-concept__detail { width: 96vw; border-radius: 14px; } .portfolio-concept__detail img { max-width: 96vw; max-height: 86vh; } .portfolio-concept__detail-close { top: 8px; right: 8px; width: 40px; height: 40px; } }
/* portfolio-detail-full-width: full-width detail image with dialog-local scroll */
.portfolio-concept__detail {
  width: min(96vw, 1600px);
  max-width: 96vw;
  max-height: 94vh;
  overflow: auto;
}
.portfolio-concept__detail img {
  display: block;
  width: 100%;
  max-width: none;
  max-height: none;
  height: auto;
}
@media (max-width: 640px) {
  .portfolio-concept__detail { width: 96vw; max-width: 96vw; max-height: 90vh; }
  .portfolio-concept__detail img { width: 100%; max-width: none; max-height: none; }
}
