.wpcf7-not-valid-tip {
    font-size: 12px;
    padding: 5px 0 0;
}

.callback-button {
    position: relative;
}

.callback-button .wpcf7-spinner {
    position: absolute;
    right: 0;
    top: 18px;
    background-color: #fff;
}

.callback-button .wpcf7-spinner::before {
    background-color: #0661d6;
}

.form__agreement-error {
    color: #e02020;
    font-size: 13px;
    margin-top: 6px;
}

.contacts__submit {
    position: relative;
}

.contacts__submit .wpcf7-spinner {
    background-color: #0661d6;
    position: absolute;
    bottom: 9px;
}

.contacts__submit .wpcf7-spinner::before {
    background-color: #fff;
}

.file-attach.is-filled .file-attach__label {
    color: #191919;
    font-weight: 600;
}

.file-attach__filename {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 260px;
}

.about-body > p:first-child {
    color: #444;
    margin-bottom: 28px;
    font-size: 16px;
    font-weight: 350;
    line-height: 1.7;
}

.about-body h4 {
    margin-bottom: 14px;
    font-size: 16px;
    font-weight: 700;
}

.about-body h4 + p {
    color: #555;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 1.65;
}

.about-body ul {
    padding: 0;
    list-style: none;
    margin: 0 0 20px;
}

.about-body ul li {
    color: #555;
    border-bottom: 1px solid #eee;
    padding: 8px 0;
    font-size: 13px;
    font-weight: 350;
}

.about-body ul li::before {
    content: "— ";
    color: #0661d6;
    font-weight: 700;
}

/* Global reset is a{color:inherit;text-decoration:none} — links in free-form editor
   content (InnerBlocks/the_content) are otherwise invisible, same color as surrounding
   text. Every rich-content wrapper needs its own override; add one here whenever a new
   block introduces InnerBlocks/the_content on a light background, or below (dark) for one on a dark background. */
.about-body a {
    color: #0661d6;
    text-decoration: underline;
}

.about-body a:hover {
    color: #191919;
}

.company-hero-body p {
    color: #c0c8d8;
    margin-bottom: 16px;
    font-size: 16px;
    line-height: 1.7;
}

.company-hero-body a {
    color: #5fa0ff;
    text-decoration: underline;
}

.company-hero-body a:hover {
    color: #fff;
}

.cat-text__body a {
    color: #0661d6;
    text-decoration: underline;
}

.cat-text__body a:hover {
    color: #191919;
}

.cat-text__body p {
    margin: 0 0 20px;
}

.cat-text__body p:last-child {
    margin-bottom: 0;
}

.cat-text__body h2,
.cat-text__body h3,
.cat-text__body h4 {
    color: #191919;
    margin: 32px 0 16px;
    font-weight: 600;
    line-height: 1.3;
}

.cat-text__body h2 {
    font-size: 24px;
}

.cat-text__body h3 {
    font-size: 20px;
}

.cat-text__body h4 {
    font-size: 17px;
}

/* Глобальный сброс в основном style.css — ul,ol{list-style-type:none} — убирает
   маркеры/цифры у ЛЮБОГО списка. Явно возвращаем их здесь, иначе нумерованный
   список из редактора выглядит как обычные абзацы без цифр. */
.cat-text__body ul {
    margin: 0 0 20px;
    padding-left: 22px;
    list-style-type: disc;
}

.cat-text__body ol {
    margin: 0 0 20px;
    padding-left: 22px;
    list-style-type: decimal;
}

.cat-text__body li {
    margin-bottom: 8px;
}

.cat-text__body strong,
.cat-text__body b {
    color: #191919;
    font-weight: 700;
}

.cat-text__body img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 24px 0;
    display: block;
}

.equipment_text-container a {
    color: #0661d6;
    text-decoration: underline;
}

.equipment_text-container a:hover {
    color: #191919;
}

.requirements__content a {
    color: #5fa0ff;
    text-decoration: underline;
}

.requirements__content a:hover {
    color: #fff;
}

/* Generic long-form content on a dark background — used by article-page-content
   (single article) only. Original verstka never included rich content here (only
   plain <p> tags), so this fills the gaps for headings/lists/links/images that real
   editor content will actually use. */
.article-page-content p {
    margin: 0 0 20px;
}

.article-page-content p:last-child {
    margin-bottom: 0;
}

.article-page-content h2,
.article-page-content h3,
.article-page-content h4 {
    color: #fff;
    margin: 32px 0 16px;
    font-weight: 600;
    line-height: 1.3;
}

.article-page-content h2 {
    font-size: 24px;
}

.article-page-content h3 {
    font-size: 20px;
}

.article-page-content h4 {
    font-size: 17px;
}

.article-page-content ul {
    margin: 0 0 20px;
    padding-left: 22px;
    list-style-type: disc;
}

.article-page-content ol {
    margin: 0 0 20px;
    padding-left: 22px;
    list-style-type: decimal;
}

.article-page-content li {
    margin-bottom: 8px;
}

.article-page-content a {
    color: #5fa0ff;
    text-decoration: underline;
}

.article-page-content a:hover {
    color: #fff;
}

.article-page-content strong,
.article-page-content b {
    color: #fff;
    font-weight: 700;
}

.article-page-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 24px 0;
    display: block;
}

.article-page-content blockquote {
    border-left: 3px solid #0661d6;
    margin: 24px 0;
    padding-left: 20px;
    color: #fff;
    font-style: italic;
}

/* Обычные страницы (шаблон "По умолчанию", page.php) — светлая тема, как на карте сайта.
   Не применяется на главной (там свои блоки — hero/services/и т.д., без этой обёртки). */
.page-content-section {
    background: #fff;
    padding: 80px 0;
}

.page-content-section h1.page-h1 {
    color: #191919;
}

.page-content-body {
    color: #333;
    margin-top: 32px;
    font-size: 16px;
    line-height: 1.75;
}

.page-content-body p {
    margin: 0 0 20px;
}

.page-content-body p:last-child {
    margin-bottom: 0;
}

.page-content-body h2,
.page-content-body h3,
.page-content-body h4 {
    color: #191919;
    margin: 32px 0 16px;
    font-weight: 600;
    line-height: 1.3;
}

.page-content-body h2 {
    font-size: 24px;
}

.page-content-body h3 {
    font-size: 20px;
}

.page-content-body h4 {
    font-size: 17px;
}

.page-content-body ul {
    margin: 0 0 20px;
    padding-left: 22px;
    list-style-type: disc;
}

.page-content-body ol {
    margin: 0 0 20px;
    padding-left: 22px;
    list-style-type: decimal;
}

.page-content-body li {
    margin-bottom: 8px;
}

.page-content-body a {
    color: #0661d6;
    text-decoration: underline;
}

.page-content-body a:hover {
    color: #191919;
}

.page-content-body strong,
.page-content-body b {
    color: #191919;
    font-weight: 700;
}

.page-content-body img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 24px 0;
    display: block;
}

.page-content-body blockquote {
    border-left: 3px solid #0661d6;
    margin: 24px 0;
    padding-left: 20px;
    color: #191919;
    font-style: italic;
}

/* Карта сайта — светлая тема, в отличие от .text-page-section (тёмная, для статей/политики). */
.sitemap-page-section {
    background: #fff;
    padding: 80px 0;
}

.sitemap-page-section h1.page-h1 {
    color: #191919;
}

.sitemap-page-content {
    color: #333;
    margin-top: 8px;
    font-size: 15px;
    line-height: 1.6;
}

.sitemap-page-content > p a {
    color: #0661d6;
    text-decoration: underline;
}

.sitemap-page-content > p a:hover {
    color: #191919;
}

.sitemap-group {
    margin-bottom: 40px;
}

.sitemap-group h2 {
    margin: 0 0 20px;
    font-size: 20px;
    font-weight: 700;
    color: #191919;
}

.sitemap-group h2 a {
    color: inherit;
    text-decoration: none;
}

.sitemap-group h2 a:hover {
    text-decoration: underline;
}

.sitemap-cols {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 24px 32px;
}

.sitemap-col-title {
    display: block;
    margin-bottom: 12px;
    font-size: 15px;
    font-weight: 600;
    color: #191919;
    text-decoration: none;
}

.sitemap-col-title:hover {
    color: #0661d6;
}

.sitemap-col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sitemap-col li {
    margin-bottom: 10px;
}

.sitemap-flat {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px 32px;
}

.sitemap-col a,
.sitemap-flat a {
    color: #0661d6;
    text-decoration: none;
    font-size: 14px;
}

.sitemap-col a:hover,
.sitemap-flat a:hover {
    text-decoration: underline;
}

/* 404 — вёрстка со старого сайта */
.not-found {
    background: #191919;
    color: #fff;
    position: relative;
    min-height: 100vh;
}

.not-found__graphic-element {
    position: absolute;
    height: 100%;
    top: 0;
    right: 500px;
    z-index: 10;
}

.not-found__graphic-element img {
    height: 100%;
}

.not-found__inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
    min-height: 780px;
    padding-left: 100px;
}

.not-found__info {
    max-width: 520px;
    display: flex;
    flex-direction: column;
    z-index: 20;
}

.not-found__button,
.not-found__buttons {
    display: flex;
}

.not-found__title h1 {
    font-weight: 600;
    font-size: 165px;
    line-height: 115%;
}

.not-found__sub-title p {
    margin: 0;
    font-weight: 600;
    font-size: 32px;
    line-height: 139%;
}

.not-found__buttons {
    margin-top: 50px;
    display: flex;
    justify-content: start;
}

.not-found__button {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 15px 26px;
    margin-left: 60px;
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    line-height: 20px;
    background: #0661d6;
    border-radius: 100px;
    z-index: 100;
    transition: .3s;
}

/* Пункты меню без реальной ссылки рендерятся как <span class="mega-col__title"> —
   у него не должно быть hover-подсветки, как у настоящей ссылки. */
.mega-col__title:not(a):hover {
    color: #191919;
}

/* Блок "Калькулятор услуги" — перенесено со старого сайта (там этой секции нет в новой
   вёрстке вообще), значения (паддинги/цвета) взяты из старого style.css. */
.service-item__element-info-wrap.bg-white .service-item__element-info {
    background-color: #fff;
}

.service-item__element-info-wrap.bg-white .service-item__element-info .section-title {
    color: #000;
}

.service-item__element-info {
    padding: 100px 0 100px;
    background: #191919;
}

.service-item__element-info .section-title {
    max-width: 577px;
    margin-bottom: 60px;
    color: #fff;
}

.service-item__element-price-inner {
    margin-bottom: 60px;
}

.help-calc {
    padding: 25px 35px;
    color: #fff;
    background-color: #0661d6;
    border-radius: 5px;
    overflow: hidden;
}

.help-calc__box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.help-calc__ico {
    height: 110px;
    width: auto;
}

.help-calc__title {
    margin-bottom: 10px;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.23;
}

.help-calc__descr {
    font-size: 18px;
    line-height: 1.22;
}

.service-item__element-btn {
    transition: .3s;
    min-height: 50px;
    border-radius: 100px;
    background: #0661d6;
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    border: 0;
    outline: 0;
    padding: 16px 25px;
    margin-left: auto;
    flex-shrink: 0;
    cursor: pointer;
}

.service-item__element-btn:hover {
    color: #0661d6;
    background: #fff;
}

.help-calc .service-item__element-btn {
    border: 2px solid #000;
    background-color: #000;
}

.help-calc .service-item__element-btn:hover {
    background-color: transparent;
    border: 2px solid #fff;
    color: #fff;
}

@media (max-width: 768px) {
    .help-calc__box,
    .help-calc__text {
        text-align: center;
    }

    .help-calc__box {
        flex-direction: column;
        justify-content: center;
        gap: 30px;
    }

    .help-calc__btn {
        margin-left: initial;
    }
}

/* Ответ FAQ теперь редактируется как InnerBlocks (абзацы/списки/жирный/курсив/ссылки),
   а не как обычный текст — нужны те же восстановления после глобального сброса
   a{color:inherit} и ul,ol{list-style-type:none}, что и в остальном свободном контенте. */
.faq__answer-inner p {
    margin: 0 0 10px;
}

.faq__answer-inner p:last-child {
    margin-bottom: 0;
}

.faq__answer-inner ul {
    margin: 12px 0 0;
    padding-left: 22px;
    list-style-type: disc;
}

.faq__answer-inner ol {
    margin: 12px 0 0;
    padding-left: 22px;
    list-style-type: decimal;
}

.faq__answer-inner li {
    margin-bottom: 6px;
}

.faq__answer-inner a {
    color: #0661d6;
    text-decoration: underline;
}

.faq__answer-inner a:hover {
    color: #191919;
}

/* Гибкий блок-контейнер — хост для произвольных стандартных блоков (не yuppieprint/*).
   Контент внутри непредсказуем, поэтому восстанавливаем и ссылки, и списки после
   глобальных сбросов a{color:inherit} / ul,ol{list-style-type:none} на всякий случай. */
.yp-container-block {
    padding: 72px 0;
}

.yp-container-block--spacing-compact {
    padding: 32px 0;
}

.yp-container-block--spacing-none {
    padding: 0;
}

.yp-container-block--bg-light {
    background: #fff;
    color: #191919;
}

.yp-container-block--bg-dark {
    background: #191919;
    color: #fff;
}

.yp-container-block ul {
    list-style-type: disc;
    padding-left: 22px;
}

.yp-container-block ol {
    list-style-type: decimal;
    padding-left: 22px;
}

.yp-container-block a {
    color: #0661d6;
    text-decoration: underline;
}

.yp-container-block a:hover {
    color: #191919;
}

.yp-container-block--bg-dark a {
    color: #5fa0ff;
}

.yp-container-block--bg-dark a:hover {
    color: #fff;
}

/* Полная типографика для произвольных стандартных блоков внутри контейнера —
   заголовки/абзацы/кнопки/картинки/таблицы/цитаты, под общий стиль сайта. */
.yp-container-block h1,
.yp-container-block h2,
.yp-container-block h3,
.yp-container-block h4,
.yp-container-block h5,
.yp-container-block h6 {
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 20px;
}

.yp-container-block h1 {
    font-size: clamp(28px, 4vw, 40px);
}

.yp-container-block h2 {
    font-size: clamp(24px, 3.5vw, 32px);
}

.yp-container-block h3 {
    font-size: 22px;
}

.yp-container-block h4 {
    font-size: 18px;
}

.yp-container-block h5 {
    font-size: 16px;
}

.yp-container-block h6 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.yp-container-block p {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.7;
}

.yp-container-block p:last-child {
    margin-bottom: 0;
}

.yp-container-block strong,
.yp-container-block b {
    font-weight: 700;
}

.yp-container-block img {
    max-width: 100%;
    height: auto;
    display: block;
}

.yp-container-block figure {
    margin: 0 0 24px;
}

.yp-container-block figcaption {
    margin-top: 8px;
    font-size: 13px;
    opacity: .7;
}

.yp-container-block blockquote {
    border-left: 3px solid #0661d6;
    margin: 24px 0;
    padding-left: 20px;
    font-style: italic;
}

.yp-container-block hr {
    border: none;
    border-top: 1px solid rgba(0, 0, 0, .1);
    margin: 32px 0;
}

.yp-container-block--bg-dark hr {
    border-top-color: rgba(255, 255, 255, .15);
}

.yp-container-block table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 20px;
}

.yp-container-block table th,
.yp-container-block table td {
    padding: 10px 14px;
    border: 1px solid rgba(0, 0, 0, .1);
    text-align: left;
}

.yp-container-block--bg-dark table th,
.yp-container-block--bg-dark table td {
    border-color: rgba(255, 255, 255, .15);
}

.yp-container-block .wp-block-buttons,
.yp-container-block .wp-block-button {
    margin-bottom: 20px;
}

.yp-container-block .wp-block-button__link {
    background: #0661d6;
    color: #fff;
    border-radius: 100px;
    padding: 14px 32px;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    display: inline-block;
    transition: .3s;
}

.yp-container-block .wp-block-button__link:hover {
    background: #003a85;
    color: #fff;
}

.yp-container-block .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    border: 2px solid #0661d6;
    color: #0661d6;
}

.yp-container-block--bg-dark .wp-block-button.is-style-outline .wp-block-button__link {
    border-color: #fff;
    color: #fff;
}

.social__list svg {
    width: 20px;
    height: 20px;
}