/* Public pages only. Loaded after the shared legacy sheet so cabinet and
   administration screens keep their existing styles and typography. */
body.public-site {
    --public-font: 'Segoe UI', system-ui, -apple-system, sans-serif;
    --primary-color: #5746d9;
    --primary-color-rgb: 87, 70, 217;
    --primary-color-2: #7565e7;
    --primary-gradient: linear-gradient(135deg, #5746d9, #7060e3);
    --gradient-text: linear-gradient(120deg, #5746d9, #7565d9);
    --primary-tint: #eeebfb;
    --bg: #faf9f6;
    --ink: #22243a;
    --ink-muted: #606579;
    --hairline: #e4e2eb;
    --public-radius: 28px;
    font-family: var(--public-font);
    color: var(--ink);
    background: var(--bg);
    line-height: 1.6;
}
body.public-site :is(h1, h2, h3, h4, h5, h6, .section-title, .hand-note, .service-explorer__title, .case-ledger__title) {
    font-family: var(--public-font);
    font-style: normal;
    letter-spacing: -.035em;
    line-height: 1.15;
    text-wrap: balance;
    overflow-wrap: anywhere;
}
body.public-site :is(input, textarea, select, button) { font-family: inherit; }
body.public-site .contact-form { font-family: var(--public-font); }
body.public-site :is(p, li, .badge, .project-tag) { overflow-wrap: anywhere; }
body.public-site :is(.btn, .filter-pill) { min-height: 46px; border-radius: 14px; font-weight: 650; }
body.public-site :is(.btn-primary, .site-header__cta) {
    border: 1px solid transparent;
    background: var(--primary-color);
    color: #fff;
    box-shadow: 0 6px 16px rgba(var(--primary-color-rgb), .14);
}
body.public-site :is(.btn-primary, .site-header__cta):hover { background: #4635bd; color: #fff; }
body.public-site .btn-outline-secondary {
    border: 1px solid #d5d1e4;
    border-radius: 14px;
    background: #fff;
    color: #484067;
    box-shadow: none;
}
body.public-site .btn-outline-secondary:hover { background: var(--primary-tint); color: #4635bd; box-shadow: none; }
body.public-site :is(a, button, input, textarea, select):focus-visible {
    outline: 3px solid #8271e8;
    outline-offset: 4px;
}
body.public-site .btn:disabled { opacity: .55; box-shadow: none; }
/* Раньше тут стоял тёплый кремовый оттенок (250, 249, 246) — секции под
   шапкой (О компании, Услуги, Портфолио и т.д.) фактически белые
   (255, 255, 255), а не --bg этой темы, так что шапка на их фоне выглядела
   отдельным тёплым пятном. Тот же белый, только с прозрачностью под блюр. */
body.public-site #site-header-root > header { background: rgba(255, 255, 255, .97) !important; border-bottom: 1px solid var(--hairline) !important; }
body.public-site .site-logo { width: 100px; height: auto; }
body.public-site .site-header :is(.nav-link, .site-phone) { font-size: 14px; font-weight: 600; color: var(--ink) !important; }
body.public-site .site-header__partner-link { font-size: 12px; color: #514a75; }
body.public-site .site-header__cta { padding: 11px 18px; border-radius: 14px; }
/* Обе CTA на первом экране ведут к одной форме: используем один акцент. */
body.public-site.landing-redesign .site-header__cta {
    background: #556add;
    box-shadow: none;
}
body.public-site.landing-redesign .site-header__cta:hover,
body.public-site.landing-redesign .site-header__cta:focus-visible {
    background: #465bce;
    color: #fff;
}
body.public-site .site-header__toggle { width: 46px; height: 46px; border-radius: 14px; }
body.public-site .site-header__mobile-nav .nav-link { padding-block: 12px; }
body.public-site section.py-5 { padding-block: clamp(52px, 6vw, 88px) !important; }
body.public-site .section-title,
body.public-site #portfolio .portfolio-hero .section-title { font-size: clamp(30px, 3.6vw, 52px); line-height: 1.15; }
body.public-site :is(.section-kicker, .section-heading__eyebrow, .hero-badge) { color: #625893; letter-spacing: .12em; line-height: 1.6; }
body.public-site .section-kicker::before { background: #8271d9; }
body.public-site .home-hero.py-5 { padding-block: clamp(28px, 4vw, 56px) !important; }
body.public-site .home-hero { min-height: 0; background: var(--bg); overflow: visible; }
body.public-site .home-hero::before { content: none; }
body.public-site .home-hero__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 4vw, 64px);
    width: 100%;
}
body.public-site .hero-copy { min-width: 0; max-width: none; order: 0; }
body.public-site .hero-copy h1 { font-family: var(--public-font); font-size: clamp(40px, 4.4vw, 64px); line-height: 1.09; letter-spacing: -.045em; margin-bottom: 24px !important; }
body.public-site .hero-copy__accent { font-family: inherit; font-style: normal; font-size: 1em; line-height: inherit; letter-spacing: inherit; background: none; color: var(--primary-color); -webkit-text-fill-color: currentColor; }
body.public-site .hero-copy .lead { font-size: clamp(17px, 1.5vw, 21px); font-weight: 400; line-height: 1.6; color: var(--ink-muted); }
body.public-site .hero-copy .d-grid { flex-wrap: wrap; }
body.public-site .hero-copy .btn { min-height: 50px; font-size: 15px; }
body.public-site .hero-copy .btn-primary::after { content: none; }
body.public-site .home-hero__media { min-width: 0; overflow: hidden; border-radius: 36px; background: #ede7df; }
body.public-site .home-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 1.08; object-fit: cover; object-position: 78% center; }
body.public-site #services { background: #242338; border-radius: 36px; margin-inline: max(12px, calc((100% - 1512px) / 2)); }
body.public-site #services .section-heading { max-width: none; }
body.public-site #services :is(.section-heading__eyebrow, .services-heading__lead) { color: #c7c2df; }
body.public-site #services .section-title { color: #fff; }
body.public-site .service-explorer { gap: 16px; border: 0; }
body.public-site .service-explorer__item { border: 0; min-width: 0; }
body.public-site .service-explorer__card { height: 100%; min-height: 224px; grid-template-columns: 28px minmax(0, 1fr) 88px; padding: 26px; gap: 16px; border: 1px solid #4b465f; border-radius: 24px; background: #302d46; }
body.public-site .service-explorer__card:hover { background: #40385c; }
body.public-site .service-explorer__card:focus-visible { outline: 3px solid #c0b1ff; outline-offset: 3px; background: #40385c; }
body.public-site .service-explorer__title { font-size: clamp(21px, 2vw, 28px); line-height: 1.2; }
body.public-site .service-explorer__description { font-size: 14px; color: #d0cbdf; }
body.public-site .service-explorer__number { color: #beb1ee; }
body.public-site .service-explorer__image { width: 88px; height: 100px; transform: none; opacity: .9; }
body.public-site .service-explorer__card:hover .service-explorer__image { transform: none; }
body.public-site #portfolio { background: var(--bg); }
body.public-site #portfolio .portfolio-hero { display: block; }
body.public-site #portfolio .portfolio-hero__lead { max-width: 660px; }
body.public-site #portfolio .filter-pill { background: #fff; border-color: #d9d5e6; padding: 10px 18px; }
body.public-site #portfolio .filter-pill--active { background: var(--primary-color); color: #fff; border-color: var(--primary-color); box-shadow: none; }
body.public-site .case-ledger { gap: 24px; }
@media (min-width: 576px) {
    body.public-site .case-ledger__card { grid-column: span 6; }
}
body.public-site :is(.case-ledger__card, .project-card) { border: 1px solid var(--hairline); border-radius: var(--public-radius); background: #fff; }
body.public-site .case-ledger__card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px #25203912; }
body.public-site .case-ledger__media { background: #efedf5; }
body.public-site .case-ledger__body { padding: 24px; }
body.public-site .case-ledger__title { font-size: 26px; line-height: 1.2; }
body.public-site :is(.case-ledger__category, .case-ledger__arrow) { color: #6755ae; }
body.public-site .case-ledger__description { font-size: 15px; line-height: 1.6; }
body.public-site #portfolio .project-tag,
body.public-site .case-ledger__tags .project-tag { padding: 5px 10px; border-radius: 999px; border-color: #e4dff1; background: #f5f2fa; color: #59516f; font-size: 12px; }
body.public-site #skills { background: #eeebf7; border-radius: 36px; }
body.public-site #skills .stack-card { background: #fff; border-radius: 24px; }
/* Non-interactive cards retain readable headings when hovered. */
body.public-site #skills .stack-card:hover h3 { color: #22243a; }
body.public-site #skills .stack-card:hover .bi { color: var(--primary-color); }
body.public-site #skills .stack-card:hover .badge { background: #eeecff !important; color: #4a4389 !important; }
body.public-site #about-us { background: var(--bg); }
body.public-site #about-us .why-us-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 48px; }
body.public-site #about-us .section-title { font-size: clamp(30px, 3vw, 44px); }
body.public-site #about-us .why-us-card { border-color: var(--hairline); border-radius: 24px; box-shadow: none; }
body.public-site #about-us .why-us-card .why-us-card__icon { background: var(--primary-tint); color: var(--primary-color); }
body.public-site #why-us { background: var(--bg); }
body.public-site .trust-marquee { width: 100%; margin: 0; border: 1px solid var(--hairline); border-radius: 24px; background: #fff; }
body.public-site .trust-marquee:hover .trust-marquee__track { animation-play-state: paused; }
body.public-site #reviews { background: #eeebf7; border-radius: 36px; }
body.public-site #reviews .review-card { border-color: var(--hairline); box-shadow: none; }
body.public-site .review-card__stars { color: #967021; }
body.public-site #contact { background: var(--bg); }
body.public-site #contact .contact-panel { padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); box-shadow: none; }
body.public-site #contact .section-title { color: var(--ink); }
body.public-site #contact .contact-panel > p { color: var(--ink-muted) !important; }
body.public-site #contact .contact-form--section { background: #fff; padding: clamp(22px, 3vw, 38px); box-shadow: none; }
body.public-site #contact :is(.contact-info__value, .contact-form__title) { color: var(--ink); }
body.public-site #contact :is(.contact-form__description, .contact-form__label, .contact-form__note, .contact-form__agreement-label) { color: var(--ink-muted); }
body.public-site #contact .contact-form__control { border-color: #dad6e4; background: #faf9fc; color: var(--ink); }
body.public-site #contact .contact-form__control::placeholder { color: #777386; }
body.public-site #contact .contact-form__agreement { border: 0; border-radius: 14px; background: #f5f3fa; }
body.public-site #contact .contact-form__legal-link { color: #5141ac; }
body.public-site #contact .contact-form__submit { color: #fff; border: 0; }
body.public-site #contact .gradient-text-invert { color: var(--primary-color); }
body.public-site #contact .contact-info { gap: 12px; border: 0; }
body.public-site #contact .contact-info__card { padding: 20px; border: 1px solid var(--hairline); border-radius: 20px; background: #fff; }
body.public-site #contact .contact-form--section { border: 1px solid var(--hairline); border-radius: 28px; }
body.public-site #contact .contact-info__label { color: #666477; }
body.public-site #contact .contact-form__submit { background: var(--primary-color) !important; }
body.public-site :is(.form-control, .contact-form__control) { min-height: 48px; font-size: 16px; border-radius: 14px; }
body.public-site :is(.contact-form-card, .contact-request__intro, .partner-lead-badge) { border-radius: var(--public-radius); }
body.public-site .contact-form__control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px #5746d91f; }
body.public-site .contact-modal.show { padding: 8px !important; overflow: hidden !important; }
body.public-site .contact-modal .modal-dialog { width: min(780px, 100%); min-height: calc(100dvh - 16px); margin: 0 auto; }
body.public-site .contact-modal .modal-content { min-height: 0; max-height: calc(100dvh - 2rem); overflow: hidden; border-radius: 28px; }
body.public-site .contact-modal .modal-body { overflow-y: auto; }
body.public-site .contact-modal .modal-header { flex-shrink: 0; align-items: flex-start; gap: 12px; }
body.public-site .contact-modal .modal-header > div { min-width: 0; }
body.public-site .contact-modal .contact-form__control { font-size: 16px; }
body.public-site .contact-modal .btn-close { min-width: 24px; min-height: 24px; }
body.public-site footer { background: #242338 !important; border-radius: 32px 32px 0 0; }

/* Landing: one visual language taken from the light studio hero. */
body.public-site.landing-redesign {
    --primary-color: #556add;
    --primary-color-rgb: 85, 106, 221;
    --primary-color-2: #6f82eb;
    --primary-gradient: linear-gradient(135deg, #556add, #6f82eb);
    --primary-tint: #eef1ff;
    --gradient-text: linear-gradient(120deg, #556add, #6f82eb);
    --hairline: #dce3f4;
    --bg: #fdfcf9;
    --ink: #20243a;
    --ink-muted: #626a80;
}
body.public-site.landing-redesign :is(.section-kicker, .section-heading__eyebrow, .hero-badge) { color: #556add; }
body.public-site.landing-redesign .section-kicker::before { background: #556add; }
body.public-site.landing-redesign :is(.btn-primary, .why-us-copy__cta, #contact .contact-form__submit) {
    background: #556add !important;
    background-image: none !important;
    box-shadow: 0 8px 18px rgba(85, 106, 221, .18);
}
body.public-site.landing-redesign :is(.btn-primary, .why-us-copy__cta, #contact .contact-form__submit):hover,
body.public-site.landing-redesign :is(.btn-primary, .why-us-copy__cta, #contact .contact-form__submit):focus-visible {
    background: #465bce !important;
}
body.public-site.landing-redesign #services,
body.public-site.landing-redesign #skills,
body.public-site.landing-redesign #reviews {
    background: #f3f6ff;
    border: 1px solid #dce3f4;
}
body.public-site.landing-redesign #services .section-title { color: var(--ink); }
body.public-site.landing-redesign #services :is(.section-heading__eyebrow, .services-heading__lead) { color: #6372ae; }
body.public-site.landing-redesign .service-explorer__card {
    border-color: #dce3f4;
    background: #fff;
    color: var(--ink);
}
body.public-site.landing-redesign .service-explorer__card:hover,
body.public-site.landing-redesign .service-explorer__card:focus-visible {
    background: #e9efff;
    color: var(--ink);
}
body.public-site.landing-redesign .service-explorer__description { color: var(--ink-muted); }
body.public-site.landing-redesign .service-explorer__number { color: #556add; }
body.public-site.landing-redesign #skills .stack-card:hover .badge {
    background: #eef1ff !important;
    color: #394fbd !important;
}
body.public-site.landing-redesign :is(.case-ledger__category, .case-ledger__arrow) { color: #556add; }
body.public-site.landing-redesign :is(#portfolio .project-tag, .case-ledger__tags .project-tag) {
    border-color: #dce3f4;
    background: #f3f6ff;
    color: #4c5e9f;
}
body.public-site.landing-redesign :is(.trust-marquee, #contact .contact-info__card, #contact .contact-form--section) {
    border-color: #dce3f4;
}
body.public-site.landing-redesign .trust-marquee__set img { opacity: .78; }
body.public-site.landing-redesign .xdb-logos img {
    max-width: 108px;
    max-height: 36px;
    filter: none;
    opacity: 1;
}
body.public-site.landing-redesign .xdb-logos__label {
    margin: 32px 0 -24px;
    color: #556add;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
body.public-site.landing-redesign #contact .contact-form__agreement { background: #f3f6ff; }
body.public-site.landing-redesign #contact .contact-form__legal-link { color: #4058c4; }
body.public-site.landing-redesign #contact .gradient-text-invert { color: #556add; }
body.public-site footer {
    background: #141a2b !important;
    border-top: 1px solid rgba(111, 130, 235, .34);
}

/* Services: an editorial list instead of a bulky product catalogue. */
body.public-site.landing-redesign #services {
    width: auto;
    max-width: none;
    margin-inline: 0;
    /* padding-block: clamp(44px, 5vw, 72px) !important; */
    border: 0;
    border-radius: 0;
    background: transparent;
}
body.public-site.landing-redesign #services .container {
    width: 100%;
    max-width: var(--page-max-width);
    padding-inline: var(--page-gutter);
}
body.public-site.landing-redesign #services .section-heading {
    max-width: 920px;
    margin-bottom: clamp(32px, 4vw, 52px);
    text-align: left;
}
body.public-site.landing-redesign #services .section-title {
    max-width: 900px;
    font-size: clamp(34px, 4.2vw, 58px);
    letter-spacing: -.05em;
}
body.public-site.landing-redesign .service-explorer {
    width: 100%;
    max-width: none;
    gap: 0 clamp(32px, 5vw, 76px);
    border-bottom: 1px solid #dce3f4;
}
body.public-site.landing-redesign :is(#services-root, #services-root .services-carousel__viewport) {
    width: 100%;
    max-width: none;
}
body.public-site.landing-redesign .service-explorer__item { border: 0; }
body.public-site.landing-redesign .service-explorer__card {
    min-height: 150px;
    grid-template-columns: 38px minmax(0, 1fr) 120px;
    gap: 18px;
    padding: 26px 0;
    border: 0;
    border-top: 1px solid #dce3f4;
    border-radius: 0;
    background: transparent;
}
body.public-site.landing-redesign .service-explorer__card:hover,
body.public-site.landing-redesign .service-explorer__card:focus-visible {
    background: transparent;
    box-shadow: none;
}
body.public-site.landing-redesign .service-explorer__card:hover .service-explorer__title,
body.public-site.landing-redesign .service-explorer__card:focus-visible .service-explorer__title { color: #556add; }
body.public-site.landing-redesign .service-explorer__number {
    padding-top: 4px;
    color: #556add;
    font-size: 12px;
    font-weight: 700;
}
body.public-site.landing-redesign .service-explorer__title {
    margin-bottom: 8px;
    font-size: clamp(21px, 2vw, 27px);
    line-height: 1.12;
}
body.public-site.landing-redesign .service-explorer__description {
    max-width: 31ch;
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.45;
}
body.public-site.landing-redesign .service-explorer__link {
    color: #20243a;
    font-size: 13px;
    font-weight: 700;
}
body.public-site.landing-redesign .service-explorer__image {
    width: 120px;
    height: 84px;
    align-self: center;
    border: 1px solid #edf0f8;
    border-radius: 12px;
    background: #fbfcff;
    opacity: 1;
}
body.public-site.landing-redesign .service-explorer__image img { object-fit: cover; }
body.public-site.landing-redesign #portfolio {
    padding-top: clamp(40px, 4vw, 56px) !important;
}

/* Technology stack follows the same quiet editorial rhythm as the services list. */
body.public-site.landing-redesign #skills {
    background: transparent !important;
    border: 0;
    border-radius: 0;
    padding-top: clamp(16px, 2vw, 28px) !important;
    padding-bottom: clamp(52px, 6vw, 80px) !important;
}
body.public-site.landing-redesign #skills .stack-heading {
    position: relative;
    margin-bottom: clamp(30px, 4vw, 48px);
    text-align: left;
}
body.public-site.landing-redesign #skills .stack-heading .section-kicker {
    justify-content: flex-start;
}
body.public-site.landing-redesign #skills .stack-heading .section-title {
    margin-inline: 0;
}
body.public-site.landing-redesign #skills .row {
    --bs-gutter-x: clamp(32px, 5vw, 76px);
    --bs-gutter-y: 0;
    margin-inline: 0;
    border-bottom: 1px solid #dce3f4;
}
body.public-site.landing-redesign #skills .row > [class*='col-'] {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 0 calc(var(--bs-gutter-x) * .5);
}
body.public-site.landing-redesign #skills .row > [class*='col-']:nth-child(odd) { padding-left: 0; }
body.public-site.landing-redesign #skills .row > [class*='col-']:nth-child(even) { padding-right: 0; }
body.public-site.landing-redesign #skills .stack-card {
    position: relative;
    min-height: 142px;
    border: 0;
    border-top: 1px solid #dce3f4;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
}
body.public-site.landing-redesign #skills .stack-card::after { content: none; }
body.public-site.landing-redesign #skills .stack-card .card-body { padding: 26px 0 !important; }
body.public-site.landing-redesign #skills .stack-card .bi { color: #556add; }
body.public-site.landing-redesign #skills .stack-card h3 { color: #20243a; font-size: 20px; }
body.public-site.landing-redesign #skills .stack-card .d-flex.flex-wrap { gap: 5px 8px !important; }
body.public-site.landing-redesign #skills .stack-card .badge {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #626a80 !important;
    font-size: 13px;
    font-weight: 500;
}
body.public-site.landing-redesign #skills .stack-card .badge:not(:last-child)::after {
    margin-left: 8px;
    color: #9fa8c1;
    content: '·';
}
body.public-site.landing-redesign #skills .stack-card:hover { background: transparent; }
body.public-site :is(.solution-hero__title, .partner-program-hero__title, .legal-page__title) { font-size: clamp(30px, 3.7vw, 52px); }
body.public-site :is(.solution-section__title, .partner-program-section__title) { font-size: clamp(26px, 2.7vw, 38px); }
body.public-site :is(main, .legal-page) { background: var(--bg); }
body.public-site main::before, body.public-site .legal-page__card::before { content: none; }
body.public-site :is(.solution-hero__eyebrow, .solution-section__eyebrow, .partner-program-hero__eyebrow, .legal-page__eyebrow) { background: var(--primary-tint); color: #5d4b9a; }
body.public-site :is(.solution-section__card, .partner-program-hero, .partner-program-card, .partner-program-step, .legal-page__card) { border: 1px solid var(--hairline); border-radius: var(--public-radius); background: #fff; box-shadow: none; }
body.public-site :is(.solution-hero__media, .solution-section__media) { background: #efedf5; border-color: var(--hairline); border-radius: 28px; box-shadow: none; }
body.public-site .solution-hero__badge { position: static; min-width: 0; margin: 16px; background: #302d46; box-shadow: none; }
body.public-site :is(.partner-program-hero__panel, .partner-program-cta__inner) { background: #302d46; border-radius: 24px; }
body.public-site :is(.partner-program-card__icon, .partner-program-step__index) { color: var(--primary-color); background: var(--primary-tint); }
body.public-site .partner-program-card__value { color: var(--primary-color); }
body.public-site .partner-program-hero__highlight-mark { background: var(--primary-color); box-shadow: 0 0 0 6px var(--primary-tint); }
body.public-site :is(.partner-program-hero__panel, .partner-program-cta__inner) { box-shadow: none; }
body.public-site :is(#project-hero, #project-content) .rounded-4 { border-radius: 24px !important; }
body.public-site #project-hero .badge { padding: 7px 12px; color: #59516f !important; background: #f1edf8 !important; border-color: #e4dff1 !important; }
body.public-site .project-contact-fab { background: var(--primary-color); border-radius: 18px; }
body.public-site .project-empty-state { max-width: 800px; margin-inline: auto; padding: clamp(28px, 6vw, 72px); border: 1px solid var(--hairline); border-radius: 28px; background: #fff; }
body.public-site .legal-page__card { max-width: 1000px; margin-inline: auto; padding: clamp(24px, 4vw, 56px); }
body.public-site .legal-page__content { max-width: 78ch; }
body.public-site #project-hero h1 { font-size: clamp(32px, 3.8vw, 54px); }
body.public-site .related-project__card { border-radius: 24px; background: #fff; border-color: var(--hairline); }
@media (min-width: 992px) and (max-width: 1199.98px) {
    body.public-site .site-header__partner-link { display: none !important; }
    body.public-site .site-header__desktop-nav .nav { gap: 18px !important; }
    body.public-site .service-explorer__card { grid-template-columns: 24px minmax(0, 1fr); }
    body.public-site .service-explorer__image { display: none; }
}
@media (min-width: 1200px) {
    body.public-site #skills .row > [class*='col-'] { flex: 0 0 25%; max-width: 25%; }
}
@media (max-width: 991.98px) {
    body.public-site #about-us .why-us-layout { grid-template-columns: 1fr; gap: 28px; }
    body.public-site .home-hero__row { grid-template-columns: 1fr; gap: 28px; }
    body.public-site .hero-copy { max-width: 680px; }
    body.public-site .hero-copy h1 { font-size: clamp(36px, 7vw, 60px); }
    body.public-site .home-hero__media img { aspect-ratio: 1.8; object-position: 75% center; }
    body.public-site .services-heading { grid-template-columns: 1fr; gap: 20px; }
    body.public-site .service-explorer__card { grid-template-columns: 24px minmax(0, 1fr); padding: 22px; }
    body.public-site .service-explorer__image { display: none; }
    body.public-site #contact .contact-info { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    body.public-site .site-logo { width: 86px; }
    body.public-site .site-header__cta { display: none; }
    body.public-site .hero-copy h1 { font-size: clamp(32px, 9.5vw, 48px); }
    body.public-site .hero-badge { font-size: 10px; letter-spacing: .08em; margin-bottom: 18px; }
    body.public-site .home-hero__media { border-radius: 24px; }
    body.public-site .home-hero__media img { aspect-ratio: 1.25; }
    body.public-site #services { margin-inline: 8px; border-radius: 28px; }
    body.public-site .service-explorer { grid-template-columns: 1fr; }
    body.public-site .service-explorer__card { min-height: 0; padding: 22px 18px; }
    body.public-site .service-explorer__title { font-size: 23px; }
    body.public-site .case-ledger { gap: 20px; }
    body.public-site .case-ledger__body { padding: 22px; }
    body.public-site .case-ledger__title { font-size: 24px; }
    body.public-site .contact-modal .modal-dialog { min-height: calc(100dvh - 1rem); }
    body.public-site .contact-modal .modal-content { max-height: calc(100dvh - 1rem); border-radius: 22px; }
    body.public-site :is(.partner-program-hero, .legal-page__card) { border-radius: 24px; padding: 22px; }
    body.public-site .legal-page__title { font-size: 26px; hyphens: auto; }
}
@media (max-width: 767.98px) {
    body.public-site.landing-redesign #portfolio { padding-bottom: 12px !important; }
    body.public-site.landing-redesign #skills { padding-top: 28px !important; }
    body.public-site.landing-redesign #portfolio .portfolio-more {
        width: 100%;
        height: auto;
        min-height: 0;
        margin: 8px 0 0 !important;
        aspect-ratio: auto !important;
        display: flex;
        justify-content: center;
    }
    body.public-site.landing-redesign #portfolio .portfolio-more__button {
        width: 100%;
        height: 46px;
        min-height: 46px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.public-site *, body.public-site *::before, body.public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    body.public-site .trust-marquee__set { flex-wrap: wrap; justify-content: center; }
    body.public-site .trust-marquee__track { width: 100%; }
    body.public-site .trust-marquee__set[aria-hidden='true'] { display: none; }
}

@media (max-width: 991.98px) {
    body.public-site.landing-redesign #services { padding-block: 40px !important; }
    body.public-site.landing-redesign .service-explorer { grid-template-columns: 1fr; }
    body.public-site.landing-redesign .service-explorer__card {
        grid-template-columns: 30px minmax(0, 1fr);
        min-height: 0;
        padding: 22px 0;
    }
    body.public-site.landing-redesign .service-explorer__image { display: none; }
    body.public-site.landing-redesign #skills .row > [class*='col-'] {
        flex: 0 0 100%;
        max-width: 100%;
        padding-inline: 0;
    }
}

@media (min-width: 992px) {
    body.public-site.landing-redesign #skills .row > [class*='col-'] {
        flex: 0 0 50%;
        max-width: 50%;
        order: initial !important;
    }
}

/* Principles: editorial proof points, without dashboard-like cards. */
body.public-site.landing-redesign #principles {
    overflow: visible;
    background: transparent !important;
}
body.public-site.landing-redesign #principles .why-us__blob { display: none; }
body.public-site.landing-redesign #principles .why-us__eyebrow {
    margin-bottom: 22px;
    color: #556add;
}
body.public-site.landing-redesign #principles .why-us-layout {
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    align-items: start;
    gap: clamp(40px, 7vw, 104px);
}
body.public-site.landing-redesign #principles .why-us-copy .section-title {
    max-width: 12ch;
    font-size: clamp(38px, 4.25vw, 62px);
    line-height: 1.04;
    letter-spacing: -.055em;
}
body.public-site.landing-redesign #principles .why-us-copy__text {
    max-width: 36ch;
    margin-bottom: 24px;
    font-size: 16px;
}
body.public-site.landing-redesign #principles .why-us-grid {
    gap: 0 clamp(30px, 4vw, 64px);
    border-top: 1px solid #dce3f4;
    counter-reset: principle;
}
body.public-site.landing-redesign #principles .why-us-card {
    position: relative;
    min-height: 0;
    padding: 24px 0 26px 42px;
    border: 0 !important;
    border-bottom: 1px solid #dce3f4 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}
body.public-site.landing-redesign #principles .why-us-card::before {
    position: absolute;
    top: 27px;
    left: 0;
    color: #556add;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    counter-increment: principle;
    content: '0' counter(principle);
}
body.public-site.landing-redesign #principles .why-us-card__icon { display: none; }
body.public-site.landing-redesign #principles .why-us-card__title {
    margin-bottom: 8px;
    color: #20243a;
    font-size: 20px;
}
body.public-site.landing-redesign #principles .why-us-card__text {
    max-width: 31ch;
    color: #626a80;
    font-size: 14px;
    line-height: 1.55;
}
@media (max-width: 991.98px) {
    body.public-site.landing-redesign #principles .why-us-layout { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    body.public-site.landing-redesign #principles .why-us-grid { grid-template-columns: 1fr; }
    body.public-site.landing-redesign #principles .why-us-copy .section-title { max-width: 15ch; }
}

/* One white canvas; blue is reserved for meaningful accents and actions.
   Раньше только на главной (.landing-redesign) — остальные публичные
   страницы (/solutions/, /partners/, /projects/...) держались на тёплом
   пастельном --bg (#faf9f6, см. body.public-site выше), поэтому выглядели
   заметно теплее главной. Теперь тот же чистый белый везде. */
body.public-site,
body.public-site main,
body.public-site :is(#about-us, #services, #portfolio, #skills, #principles, #reviews, #contact) {
    background: #fff !important;
}
body.public-site { --bg: #fff; }

/* Services and stack: graphic markers replace ordinal labels. */
body.public-site.landing-redesign .service-explorer__number { display: none; }
body.public-site.landing-redesign .service-explorer__card {
    position: relative;
    grid-template-columns: minmax(0, 1fr) 120px;
    padding-left: 22px;
}
body.public-site.landing-redesign .service-explorer__card::before {
    position: absolute;
    top: 28px;
    left: 0;
    width: 3px;
    height: 32px;
    border-radius: 99px;
    background: #556add;
    content: '';
}
body.public-site.landing-redesign #skills .stack-card::before { display: none; content: none; }
body.public-site.landing-redesign #skills .stack-card .card-body { padding-left: 0 !important; }
body.public-site.landing-redesign #skills .stack-card h3::before {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: 10px;
    border-radius: 50%;
    background: #556add;
    content: '';
}

/* Reviews and contact use the same restrained, editorial layout. */
body.public-site.landing-redesign #reviews,
body.public-site.landing-redesign #contact {
    border-top: 1px solid #dce3f4;
    border-radius: 0;
}
body.public-site.landing-redesign #reviews > .blob { display: none; }
body.public-site.landing-redesign #reviews .reviews-hero { margin-bottom: clamp(28px, 4vw, 48px); }
body.public-site.landing-redesign #reviews .reviews-hero .section-title,
body.public-site.landing-redesign #contact .section-title {
    font-size: clamp(38px, 4.2vw, 58px);
    letter-spacing: -.055em;
}
body.public-site.landing-redesign #reviews .reviews-hero .section-title {
    max-width: none;
    white-space: nowrap;
}
body.public-site.landing-redesign #contact .section-title { max-width: 18ch; }
body.public-site.landing-redesign #reviews .gradient-text,
body.public-site.landing-redesign #contact .gradient-text-invert {
    background: none;
    color: #556add;
    -webkit-text-fill-color: #556add;
}
body.public-site.landing-redesign #reviews .review-card {
    border: 1px solid #dce3f4;
    border-left: 3px solid #556add;
    border-radius: 0;
    background: #fff;
    box-shadow: none !important;
    transform: none !important;
}
body.public-site.landing-redesign #reviews .review-card__avatar {
    background: #eef1ff;
    color: #556add;
}
body.public-site.landing-redesign #reviews .review-card__stars,
body.public-site.landing-redesign #reviews .review-card__stars .bi-star-fill { color: #556add; }
body.public-site.landing-redesign #contact .contact-panel { padding: 0; }
body.public-site.landing-redesign #contact .contact-layout { margin-top: clamp(28px, 4vw, 48px); }
body.public-site.landing-redesign #contact .contact-info { gap: 0; }
body.public-site.landing-redesign #contact .contact-info__card {
    padding: 18px 0;
    border: 0;
    border-top: 1px solid #dce3f4;
    border-radius: 0;
    background: transparent;
}
body.public-site.landing-redesign #contact .contact-info__icon { background: #eef1ff; color: #556add; }
body.public-site.landing-redesign #contact .contact-form--section {
    border: 1px solid #dce3f4;
    border-radius: 0;
    background: #f3f6ff;
}
@media (max-width: 991.98px) {
    body.public-site.landing-redesign .service-explorer__card {
        grid-template-columns: minmax(0, 1fr);
        padding-left: 20px;
    }
}
@media (max-width: 575.98px) {
    body.public-site.landing-redesign #skills .stack-heading > div::after { display: block; right: 0; }
    body.public-site.landing-redesign #reviews .reviews-hero .section-title,
    body.public-site.landing-redesign #contact .section-title { font-size: clamp(34px, 10vw, 46px); }
    body.public-site.landing-redesign #reviews .reviews-hero .section-title { white-space: normal; }
}

/* Keep the stack as a compact reference list, not a grid of cards. */
body.public-site.landing-redesign #skills .row {
    margin-inline: 0 !important;
    border-top: 1px solid #dce3f4;
    border-bottom: 0;
}
body.public-site.landing-redesign #skills .stack-card {
    min-height: 0;
    height: auto !important;
    border: 0 !important;
    border-bottom: 1px solid #dce3f4 !important;
    border-radius: 0 !important;
    background: transparent !important;
}
body.public-site.landing-redesign #skills .stack-card .card-body { padding: 20px 0 22px 40px !important; }
body.public-site.landing-redesign #skills .row { counter-reset: stack-category; }
body.public-site.landing-redesign #skills .stack-card::before {
    position: absolute;
    top: 22px;
    left: 0;
    color: #556add;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    counter-increment: stack-category;
    content: '0' counter(stack-category);
}
body.public-site.landing-redesign #skills .stack-card .d-flex.align-items-center { margin-bottom: 10px !important; }
body.public-site.landing-redesign #skills .stack-card .bi { display: none; }
body.public-site.landing-redesign #skills .stack-card h3 {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.02em;
}
body.public-site.landing-redesign #skills .stack-card .badge { font-size: 12px; }
@media (max-width: 575.98px) {
    body.public-site.landing-redesign #skills .stack-heading > div::after { display: none; }
}

/* Final layout safeguards: preserve the service grid while hiding ordinal text. */
body.public-site.landing-redesign .service-explorer__card {
    grid-template-columns: 38px minmax(0, 1fr) 120px;
    padding-left: 0;
}
body.public-site.landing-redesign .service-explorer__card::before { display: none; }
body.public-site.landing-redesign .service-explorer__number {
    display: block;
    width: 3px;
    height: 32px;
    margin-top: 4px;
    padding: 0;
    border-radius: 99px;
    background: #556add;
    color: transparent;
    font-size: 0;
}
body.public-site.landing-redesign #skills .stack-card::before { display: none; content: none; }
body.public-site.landing-redesign #skills .stack-card .card-body { padding: 20px 0 22px !important; }
body.public-site.landing-redesign #skills .stack-heading > div::after { display: block; }
@media (max-width: 991.98px) {
    body.public-site.landing-redesign .service-explorer__card { grid-template-columns: 30px minmax(0, 1fr); }
}
@media (max-width: 575.98px) {
    body.public-site.landing-redesign #skills .stack-heading > div::after { display: block; }
}

/* Footer: a compact dark sign-off instead of the legacy column layout —
   раньше только на главной (body.public-site.landing-redesign), из-за чего
   на остальных публичных страницах (/partners/, /solutions/ и т.д.)
   оставался старый футер (иконки в столбик, юридические ссылки отдельными
   кнопками-пилюлями) — теперь тот же самый футер везде. */
body.public-site .site-footer {
    padding: 28px 0 24px;
    color: rgba(237, 241, 255, .68);
}
body.public-site .site-footer__inner { max-width: var(--page-max-width); }
body.public-site .site-footer__top,
body.public-site .site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
body.public-site .site-footer__top {
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(190, 202, 255, .18);
}
body.public-site .site-footer__bottom { padding-top: 18px; }
body.public-site .site-footer__brand {
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.03em;
}
body.public-site .site-footer__brand span {
    margin-left: 8px;
    color: #8fa0ff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
}
body.public-site .site-footer__socials {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}
body.public-site .site-footer__socials li { margin: 0 !important; }
body.public-site .site-footer__socials a {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid rgba(190, 202, 255, .24);
    border-radius: 50%;
    color: #fff !important;
}
body.public-site .site-footer__socials svg { width: 16px; height: 16px; }
body.public-site .site-footer__meta,
body.public-site .site-footer__legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    align-items: center;
}
body.public-site .site-footer__meta { font-size: 12px; }
body.public-site .site-footer__legal-links { justify-content: flex-end; }
body.public-site .site-footer__legal-link {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: rgba(237, 241, 255, .74) !important;
    background: transparent;
    font-size: 12px;
}
body.public-site .site-footer__legal-link:hover,
body.public-site .site-footer__legal-link:focus-visible {
    color: #8fa0ff !important;
    background: transparent;
}
@media (max-width: 767.98px) {
    body.public-site .site-footer__top,
    body.public-site .site-footer__bottom { align-items: flex-start; flex-direction: column; }
    body.public-site .site-footer__top { gap: 18px; }
    body.public-site .site-footer__legal-links { justify-content: flex-start; }
}

/* /solutions/ (список решений без id, см. solution-page.js) переиспользует
   тот же .service-explorer, что и #services на главной, но без класса
   .landing-redesign (он завязан на .home-hero — тут его нет), поэтому
   карточки оставались на тёмной теме "по умолчанию" (background: #302d46,
   см. body.public-site .service-explorer__card выше), пока на главной их
   уже перекрасили в светлый редакторский список (border-top-разделители,
   без рамки карточки, номер = цветная палочка). Тут — те же самые
   финальные значения, что и в body.public-site.landing-redesign
   .service-explorer* (см. выше), но применённые по .solution-page, а не
   по .landing-redesign — самой карточной "рамки" тоже нет, поэтому
   .service-explorer-shell (обёртка, см. solution-page.js) тут прозрачная,
   а не отдельная плашка. */
body.public-site.solution-page .service-explorer-shell {
    border-radius: 0;
    background: transparent;
}
body.public-site.solution-page .service-explorer {
    gap: 0 clamp(32px, 5vw, 76px);
    border-bottom: 1px solid #dce3f4;
}
body.public-site.solution-page .service-explorer__item {
    border: 0;
}
body.public-site.solution-page .service-explorer__card {
    grid-template-columns: 38px minmax(0, 1fr) 120px;
    min-height: 0;
    padding: 26px 0;
    border: 0;
    border-top: 1px solid #dce3f4;
    border-radius: 0;
    background: transparent;
    color: var(--ink);
}
body.public-site.solution-page .service-explorer__card:hover,
body.public-site.solution-page .service-explorer__card:focus-visible {
    background: transparent;
    color: var(--ink);
}
body.public-site.solution-page .service-explorer__card:hover .service-explorer__title,
body.public-site.solution-page .service-explorer__card:focus-visible .service-explorer__title {
    color: #556add;
}
body.public-site.solution-page .service-explorer__number {
    width: 3px;
    height: 32px;
    margin-top: 4px;
    padding: 0;
    border-radius: 99px;
    background: #556add;
    color: transparent;
    font-size: 0;
}
body.public-site.solution-page .service-explorer__title {
    margin-bottom: 8px;
    font-size: clamp(21px, 2vw, 27px);
    line-height: 1.12;
}
body.public-site.solution-page .service-explorer__description {
    max-width: 31ch;
    margin-bottom: 14px;
    color: var(--ink-muted);
    font-size: 14px;
    line-height: 1.45;
}
body.public-site.solution-page .service-explorer__link {
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
}
body.public-site.solution-page .service-explorer__image {
    width: 120px;
    height: 84px;
    align-self: center;
    border: 1px solid #edf0f8;
    border-radius: 12px;
    background: #fbfcff;
    opacity: 1;
    transform: none;
}
body.public-site.solution-page .service-explorer__image img {
    object-fit: cover;
}
@media (max-width: 991.98px) {
    body.public-site.solution-page .service-explorer {
        grid-template-columns: 1fr;
    }
    body.public-site.solution-page .service-explorer__card {
        grid-template-columns: 30px minmax(0, 1fr);
        padding: 22px 0;
    }
    body.public-site.solution-page .service-explorer__image {
        display: none;
    }
}
