/*
Theme Name: Bizmaster Child
Theme URL: https://wpcoders.in/bizmaster/
Description: Bizmaster Digital Agency WordPress Theme
Author: wpcodersthemes
Author URI: https://themeforest.net/user/wpcodersthemes
Template: bizmaster
Version: 1.0.4
License: GNU General Public License v2 or later
License URL: http://www.gnu.org/licenses/gpl-2.0.html
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: bizmaster-child
*/

/* ============ Русская типографика ============ */
/* Тема капитализирует каждое слово (text-transform: capitalize).
   Для английского это норма, для русского — ошибка: «Полезные Статьи».
   Отключаем везде, кроме случаев, где капитализация задана осознанно. */
.navbar-area .custom-container .navbar-collapse .navbar-nav li,
.navbar-area .custom-container .navbar-collapse .navbar-nav li a,
.navbar-area .custom-container .nav-right-content ul li.nav-btn .btn-boxed,
.theme-section-title .title,
.breadcrumb-wrap .page-title,
.widget .widget-headline,
.theme-recent-post-wrap li.theme-recent-post-item .content .author a,
.wp-block-search__label,
.no-results.not-found .page-title,
h1, h2, h3, h4, h5, h6,
.global-btn,
.theme-btn{
    text-transform: none;
}

/* ============ Логотип ============ */
/* Слот под лого — 190x60. Задаём обе стороны и object-fit: contain,
   чтобы знак вписался целиком и не растянулся при смене файла.
   max-width снимаем — иначе тема ужимает картинку до нечитаемой. */
.logo-wrapper .custom-logo,
.logo-wrapper .site-logo img,
.navbar-area .logo-wrapper img{
    width: 190px;
    height: 60px;
    max-width: none;
    object-fit: contain;
    object-position: left center;
}
@media (max-width: 991px){
    .logo-wrapper .custom-logo,
    .logo-wrapper .site-logo img,
    .navbar-area .logo-wrapper img{ width: 150px; height: 48px; }
}

/* ============ Индикатор выпадающего меню ============ */
/* В теме «плюс» собран из двух полосок: :before — вертикальная, :after — горизонтальная.
   Селектор темы очень специфичный (.navbar.navbar-area.navbar-expand-lg.navigation-style-01
   .navbar-default ...), поэтому повторяем его целиком — иначе её height/width/background
   перебивают наши правила и вместо треугольника остаётся чёрточка. */
.navbar.navbar-area.navbar-expand-lg.navigation-style-01.navbar-default .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children:before{
    display: none;
}
.navbar.navbar-area.navbar-expand-lg.navigation-style-01.navbar-default .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children:after{
    content: "";
    position: absolute;
    right: 2px;
    top: 50%;
    height: 0;
    width: 0;
    background: none;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid var(--heading-color);
    transform: translateY(-50%);
    transition: transform .25s ease-in, border-top-color .25s ease-in;
    z-index: 1;
}
.navbar.navbar-area.navbar-expand-lg.navigation-style-01.navbar-default .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children:hover:after{
    /* Тема на наведение заливает :after фоном. У треугольника боковые границы
       прозрачные, фон проступает сквозь них — и вместо стрелки виден квадрат.
       Поэтому фон гасим и здесь, меняем только цвет и поворот. */
    background: none;
    transform: translateY(-50%) rotate(180deg);
    border-top-color: var(--main-color-one);
}
/* внутри выпадающего списка треугольник поменьше и ближе к краю */
.navbar.navbar-area.navbar-expand-lg.navigation-style-01.navbar-default .custom-container .navbar-collapse .navbar-nav .sub-menu li.menu-item-has-children:after{
    right: 14px;
    border-left-width: 3.5px;
    border-right-width: 3.5px;
    border-top-width: 4.5px;
}

/* ============ Шрифт Ubuntu ============ */
/* Тема держит всю типографику на трёх переменных — переопределяем их,
   этого достаточно, чтобы шрифт сменился по всему сайту.
   Файлы шрифта лежат локально в /fonts, внешних запросов нет. */
:root{
    --heading-font: "Raleway", sans-serif;
    --secondary-font: "Raleway", sans-serif;
    --body-font: "Raleway", sans-serif;
}
/* Elementor задаёт свою типографику отдельно от переменных темы */
.elementor-widget-container,
.elementor-widget-container h1, .elementor-widget-container h2,
.elementor-widget-container h3, .elementor-widget-container h4,
.elementor-widget-container h5, .elementor-widget-container h6,
.elementor-widget-container p, .elementor-widget-container li,
.elementor-widget-container a, .elementor-widget-container span{
    font-family: "Raleway", sans-serif;
}

/* ============ Выпадающее меню: направление и длинные пункты ============ */
/* Тема раскрывала вложенный уровень влево (left: -240px) — он уезжал
   за пределы родителя и налезал на соседние пункты. Открываем вправо. */
.navbar-area .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children > .sub-menu{
    left: 100%;
    right: auto;
    top: 0;
}
/* третий уровень и глубже — тоже вправо */
.navbar-area .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu .menu-item-has-children > .sub-menu .sub-menu .sub-menu{
    left: 100%;
    right: auto;
}

/* Длинные названия («Сканирование плёнок и слайдов») не влезали в колонку
   и лезли на стрелку. Ограничиваем ширину и обрезаем многоточием. */
.navbar-area .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu{
    min-width: 260px;
    max-width: 300px;
}
.navbar-area .custom-container .navbar-collapse .navbar-nav li.menu-item-has-children .sub-menu li > a{
    display: block;
    max-width: 100%;
    padding-right: 26px;      /* место под стрелку у пунктов с вложением */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* ============ Бежевая палитра ============ */
/* В теме ДВА независимых набора переменных:
     main-style.css — --main-color-one, --heading-color, --paragraph-color
                      (ими управляют настройки темы, там уже бежевые)
     master.css     — --theme-color, --title-color, --smoke-color и т.д.
                      именно они красят кнопки, подложки и большинство блоков
   Второй набор настройками не управляется, поэтому задаём его здесь. */
:root{
    --theme-color: #ed7c23;      /* акцент: фирменный оранжевый */
    --theme-color2: #fad9c0;     /* светлый оттенок акцента */
    --title-color: #2B2620;      /* заголовки: тёплый почти-чёрный */
    --body-color: #5A5148;       /* текст: тёплый серо-коричневый */
    --smoke-color: #F6F1E8;      /* основная светлая подложка: крем */
    --smoke-color2: #FAF6EF;
    --smoke-color3: #F7F3EB;
    --smoke-color4: #F4EFE6;
    --smoke-color5: #F1EBE0;
    --black-color: #1F1B16;
    --gray-color: #2B2620;
    --light-color: #A79C8D;
    --yellow-color: #ed7c23;
    --border-color: #E6DDCE;
}

/* Кнопки: белый текст на бежевом читается плохо — берём тёмный */
.global-btn,
.global-btn:hover,
.theme-btn,
.btn-boxed,
.wp-block-button__link,
input[type="submit"]{
    color: #2B2620;
}

/* ============ Декор героя ============ */
/* Часть фигур в master.css залита цветом напрямую, мимо переменных:
   лаймовый треугольник (#C4F500) и бирюзовая рамка (#196164). */
.hero-1 .hero-image-wrapp .hero-shape4{
    background: #fad9c0;
}
.hero-1 .hero-image-wrapp .hero-shape5{
    border-color: #C7B499;
}

/* ============ Иконки в карточках героя ============ */
/* Иконки Lucide (лицензия ISC) в фирменном золоте-беж.
   Ставим фоном: Icons_Manager в Elementor 4.x отрисовывает иконку этого
   виджета непредсказуемо, а свою вставку он перекрывает своей же. */
.hero-card_icon{
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    margin-bottom: 14px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.hero-card_icon svg{ display: none; }   /* прячем иконку Elementor, чтобы не двоилось */
.hero-card:nth-child(1) .hero-card_icon{ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNlZDdjMjMiIHN0cm9rZS13aWR0aD0iMS45IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiID4gPHBhdGggZD0iTTE0IDE4VjZhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2MTFhMSAxIDAgMCAwIDEgMWgyIiAvPiA8cGF0aCBkPSJNMTUgMThIOSIgLz4gPHBhdGggZD0iTTE5IDE4aDJhMSAxIDAgMCAwIDEtMXYtMy42NWExIDEgMCAwIDAtLjIyLS42MjRsLTMuNDgtNC4zNUExIDEgMCAwIDAgMTcuNTIgOEgxNCIgLz4gPGNpcmNsZSBjeD0iMTciIGN5PSIxOCIgcj0iMiIgLz4gPGNpcmNsZSBjeD0iNyIgY3k9IjE4IiByPSIyIiAvPiA8L3N2Zz4="); }
.hero-card:nth-child(2) .hero-card_icon{ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNlZDdjMjMiIHN0cm9rZS13aWR0aD0iMS45IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiID4gPHBhdGggZD0iTTMgN1Y1YTIgMiAwIDAgMSAyLTJoMiIgLz4gPHBhdGggZD0iTTE3IDNoMmEyIDIgMCAwIDEgMiAydjIiIC8+IDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+IDxwYXRoIGQ9Ik03IDIxSDVhMiAyIDAgMCAxLTItMnYtMiIgLz4gPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIgLz4gPHBhdGggZD0iTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCIgLz4gPC9zdmc+"); }
.hero-card{ align-items: flex-start; }

/* ============ Карточки в герое ============ */
/* Подложка и градиент зашиты в master.css мятным и бирюзовым. */
.hero-card_wrapper{
    background: #FBF8F3;      /* светлее прежнего #F3EADC */
}
.hero-card{
    background: transparent;  /* у самих карточек фона нет — только у обёртки */
}
.hero-card_wrapper:before,
.hero-card_wrapper:after{
    /* верхняя кромка была заметно темнее блока — ослабляем заливку */
    background-image: linear-gradient(180deg, rgba(237, 124, 35, 0.16) 0%, rgba(255, 255, 255, 0) 80%);
}

/* ============ Кнопки ============ */
/* Кнопки на фирменном оранжевом: контраст белого к #ed7c23 около 3,4:1 —
   для крупного текста кнопок этого достаточно. На наведении темнее. */
.global-btn,
.global-btn-one,
.theme-btn,
.btn-boxed,
.wp-block-button__link,
input[type="submit"]{
    background-color: #ed7c23;
    border-color: #ed7c23;
    color: #FFFFFF;
}
.global-btn:hover,
.global-btn-one:hover,
.theme-btn:hover,
.btn-boxed:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover{
    background-color: #c96a19;
    border-color: #c96a19;
    color: #FFFFFF;
}
/* у темы бывает заливка через псевдоэлемент — красим и его */
.global-btn:after,
.global-btn:before,
.global-btn-one:after,
.global-btn-one:before{
    background-color: #c96a19;
}

/* ============ Шрифт в шапке и остальном master.css ============ */
/* У master.css свои переменные шрифтов, отдельные от настроек темы.
   --title-font осталась Inter — её используют 68 правил, включая меню шапки. */
:root{
    --title-font: "Raleway", sans-serif;
    --body-font: "Raleway", sans-serif;
}
/* меню и элементы шапки — на случай, если правило перебивается */
.main-menu a,
.navbar-area .custom-container .navbar-collapse .navbar-nav li a,
.navbar-area .custom-container .navbar-collapse .navbar-nav .sub-menu li a,
.header-links li,
.header-links span,
.nav-right-content li,
.nav-right-content a{
    font-family: "Raleway", sans-serif;
}
/* в теме один блок жёстко на Poppins */
[class*="header"] [class*="shape"],
.hero-style1 .hero-subtitle{
    font-family: "Raleway", sans-serif;
}

/* ============ Пункты меню шапки ============ */
/* Повторяем селектор темы целиком, чтобы совпасть по специфичности (0,4,2)
   и перебить её правило порядком подключения. */
.navbar-area .custom-container .navbar-collapse .navbar-nav li a{
    font-family: "Raleway", sans-serif;
    font-weight: 400;
    font-size: 18px;
}

/* ============ Типографика заголовков ============ */
.hero-title{
    font-weight: 500;
}
.box-title{
    font-size: 24px;
    line-height: 1.417;
    font-weight: 500;
    margin-top: -0.3em;
}
.hero-card .box-title{
    font-size: 20px;
    margin-bottom: 5px;
}
.hero-card_text{
    font-size: 17px;
    margin-bottom: -0.4rem;
    color: var(--body-color);
}

.sec-title.style2{
    font-size: 60px;
    line-height: 70px;
    font-weight: 500;
}
.service-card_title{
    margin-top: -0.2em;
    margin-bottom: 15px;
    font-weight: 500;
    font-size: 21px;
}
.service-card_text{
    font-size: 16.6px;
    font-family: var(--title-font);
    margin-bottom: 18px;
    color: var(--body-color);
}

/* ============ Фото в карточке услуги ============ */
.service-card_img{
    /* Ширину фиксируем: контейнер во флексе растягивался и тянул картинку.
       height: 100% из темы во флекс-строке считается от auto-высоты родителя
       и ломает штатное растягивание — заменяем на align-self: stretch. */
    max-width: 270px;
    min-width: 0;
    flex: 0 0 270px;
    height: auto;
    align-self: stretch;
}
/* Elementor задаёт .elementor img{height:auto} и перебивает правило темы —
   поэтому селектор берём специфичнее (0,3,1). */
.service-card .service-card_img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ============ Заголовки секций ============ */
/* Русские заголовки длиннее английских, под которые вёрстан шаблон: на 60px
   они разъезжаются на четыре строки. Расширяем блок и уменьшаем кегль.
   Селектор с тегом (0,2,1) специфичнее правила .sec-title.style2 (0,2,0)
   выше, поэтому перебивает его. */
.title-area,
.title-area.text-center,
.theme-section-title.text-center{
    max-width: 1050px;
    margin-left: auto;
    margin-right: auto;
}
.title-area .sec-title{
    max-width: none;
}
.theme-section-title .title,
h2.sec-title.style2{
    font-size: 40px;
    line-height: 1.22;
}
@media (max-width: 1199px){
    h2.sec-title.style2{ font-size: 34px; }
}
@media (max-width: 767px){
    h2.sec-title.style2{ font-size: 28px; }
}

/* ============ Заголовок блока «о студии» ============ */
.about-content-wrap .sec-title{
    font-size: 48px;
    line-height: 60px;
    font-weight: 500;
    margin-bottom: 30px;
    margin-right: 0;
}

/* ============ Карточки «четыре шага» ============ */
/* В теме карточка — это padding 50/40/44 с маленькой иконкой и номером в строке.
   Перестраиваем: фото занимает верхние ~65% на всю ширину, номер ложится
   поверх карточки в правом нижнем углу. */
.process-card{
    position: relative;
    display: flex;
    flex-direction: column;
    height: 400px;
    padding: 0;
    overflow: hidden;
    border-radius: 20px;
}
/* верхний блок с фото */
.process-card_wrapp{
    position: relative;      /* точка отсчёта для номера — сам блок с фото */
    flex: 0 0 65%;
    display: block;
    margin-bottom: 0;
    min-height: 0;
}
.process-card-icon{
    width: 100%;
    height: 100%;
}
/* селектор с родителем — Elementor задаёт .elementor img{height:auto} */
.process-card .process-card-icon img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 0;
}
/* текст под фото */
.process-card_content{
    flex: 1 1 auto;
    padding: 22px 28px 26px;
}
/* номер поверх карточки */
/* номер лежит в углу фотографии, а не всей карточки */
.process-card_number{
    position: absolute;
    right: 18px;
    bottom: 12px;
    margin: 0;
    z-index: 2;
    font-size: 52px;
    line-height: 1;
    color: #FFFFFF;
    opacity: .9;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
    pointer-events: none;
}

/* ============ Карточки услуг на мобильных ============ */
/* На узких экранах карточка перестраивается в колонку, и фиксированные
   270px по ширине и растяжка по высоте только мешают — отпускаем размеры. */
@media (max-width: 991px){
    .service-card_img{
        max-width: none;
        width: auto;
        height: auto;
        flex: 0 0 auto;
        align-self: auto;
    }
    .service-card .service-card_img img{
        width: 100%;
        height: auto;
        object-fit: cover;
    }
}

/* ============ Кнопки аккордеона в FAQ ============ */
/* Плашка «+» залита лаймом (#C4F500) прямо в master.css, мимо переменных. */
.accordion-card .accordion-button:after{
    background: #fad9c0;
    color: #2B2620;
}
.accordion-card .accordion-button:not(.collapsed):after{
    background: #ed7c23;
    color: #FFFFFF;
}

/* ============ Карточка услуги: планшет ============ */
/* Тема на ≤1199px жёстко задаёт height: 300px !important — из-за этого
   картинка не подстраивается под карточку. Снимаем, скругление оставляем. */
@media (max-width: 1199px){
    .service-card .service-card_img{
        height: auto !important;
    }
}

/* Правовая приписка в самом низу подвала.
   Мелко и приглушённо: это обязательный юридический текст, он не должен
   спорить по весу с навигацией и копирайтом над ним. */
.footer-legal {
    /* Своего фона нет: приписка живёт в контейнере копирайта и наследует
       его подложку. Отделяем только тонкой линией сверху. */
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.footer-legal small {
    display: block;
    font-size: 11px;
    line-height: 1.55;
    /* Тот же серый, что у копирайта темы, — приписка не должна выделяться */
    color: #8a8a8a;
}

/* Отзывы без аватара: подставная фотография рядом с именем добавляет
   достоверности, которой за ней нет. Имя и услуга — достаточно. */
.testi-card-profile .testi-profile_thumb {
    display: none;
}

.testi-card-profile {
    padding-left: 0;
}

.testi-card-profile .testi-card-profile-details {
    padding-left: 0;
    border-left: 3px solid #ed7c23;
    padding-left: 14px;
}

/* Соцсети в карточках команды. Тема ставит их со ссылками на «#» —
   кнопки, которые никуда не ведут, только сбивают с толку. */
.team-card .team-social {
    display: none;
}

/* ============ Карточки преимуществ баннера ============ */
/* Блок переехал из полосы под баннером в колонку с текстом (inc/hero.php).
   Там ему не нужны ни ограничение ширины, ни прижатие вправо. */
.hero-style1 .hero-item-content{
    max-width: none;
    margin: 0 0 40px;
}
.hero-style1 .hero-card_wrapper{
    display: flex;
    flex-direction: column;
    gap: 22px;
    margin-top: 0;
    padding: 0;
    background: none;
}
/* Подложка собрана из двух псевдоэлементов с градиентом — без неё они лишние. */
.hero-style1 .hero-card_wrapper:before,
.hero-style1 .hero-card_wrapper:after{ display: none; }
/* Отступ между карточками задаёт gap, иначе к нему добавится ещё 30px темы. */
.hero-style1 .hero-card:not(:last-child){ margin-bottom: 0; }

/* ============ Баннер: размеры ============ */
/* Заголовок темы в 78px под русский текст велик — он забирает весь первый
   экран. 48px хватает, чтобы H1 читался первым, и оставляет место описанию. */
.hero-title{
    font-size: 48px;
}
.hero-style1{
    padding: 0 0 60px 0;
    margin-top: 16px;
}
/* Картинка с фигурами — цельная композиция: фигуры расставлены в процентах
   и в пикселях, поэтому уменьшаем блок целиком, а не одну картинку. */
.hero-1 .hero-image-wrapp{
    transform: scale(0.95);
    /* Точка отсчёта снизу: при масштабировании от центра под снимком
       оставалась щель, а фигура должна стоять на нижней границе блока. */
    transform-origin: bottom center;
}
/* На узких экранах у темы свои размеры — возвращаем их, иначе наши правила
   перебьют медиазапросы темы (они той же специфичности, но идут раньше). */
@media (max-width: 991px){
    .hero-title{ font-size: 38px; line-height: 47px; }
    .hero-style1{ padding: 100px 0 60px 0; }
    .hero-1 .hero-image-wrapp{ transform: none; }
}

/* ============ Баннер: только фотография ============ */
/* Тема собирает вокруг снимка композицию из кругов, треугольника и ромба,
   а под ним держит белый круг-подложку. Нужен один снимок без обвязки. */
.hero-1 .hero-image-wrapp .hero-shape1,
.hero-1 .hero-image-wrapp .hero-shape2,
.hero-1 .hero-image-wrapp .hero-shape3,
.hero-1 .hero-image-wrapp .hero-shape4,
.hero-1 .hero-image-wrapp .hero-shape5{
    display: none;
}
.hero-1 .hero-image-wrapp{ overflow: visible; }
.hero-1 .hero-image-wrapp .hero-thumb{
    display: flex;
    align-items: flex-end;
    width: auto;
    height: auto;
    max-width: 100%;
    margin-left: auto;
    background: none;
    border-radius: 0;
    clip-path: none;
}
.hero-1 .hero-image-wrapp .hero-thumb img{
    width: auto;
    height: auto;
    max-width: 100%;
    margin-left: 0;
    border-radius: 0;
    object-fit: contain;
}

/* ============ Новости ============ */
/* Карточка новости: снимок, дата, заголовок — как в образце.
   Служебную мету убрал фильтр в inc/news.php, здесь оформление. */
.news-block .blog-card{
    background: none;
    box-shadow: none;
}
.news-block .blog-img{
    overflow: hidden;
    border-radius: 12px;
    margin-bottom: 14px;
}
.news-block .blog-img img{
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .4s ease;
}
.news-block .blog-card:hover .blog-img img{ transform: scale(1.04); }
.news-block .blog-date{
    margin-bottom: 6px;
    font-size: 14px;
    color: #A79C8D;
}
.news-block .blog-title{
    font-size: 18px;
    line-height: 1.35;
    margin: 0;
}
.news-block .blog-title a{ color: var(--title-color); }
.news-block .blog-title a:hover{ color: #ed7c23; }
.news-block_footer{
    margin-top: 26px;
    text-align: center;
}

/* ============ Подписка в подвале ============ */
/* Форма стоит в подвале, то есть на всех страницах, поэтому стили здесь,
   а не в наборе главной. Подвал у темы светлый, поэтому текст тёмный:
   белым по кремовому не читалось. */

.sub-form{ max-width: 340px; }
.sub-form_heading{
	margin: 0 0 15px;
	color: var(--title-color);
	font-family: var(--heading-font);
	font-size: 19px;
	font-weight: 500;
	line-height: 28px;
}
.sub-form_field input{
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid #E6DDCE;
    border-radius: 8px;
    background: #fff;
    color: #2B2620;
    font: inherit;
    font-size: 15px;
}
.sub-form_field input::placeholder{ color: #A79C8D; }
.sub-form_field input:focus{ outline: none; border-color: #ed7c23; }

.sub-form_check{
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 12px 0 14px;
    font-size: 13px;
    line-height: 1.35;
    color: #5A5148;
    cursor: pointer;
}
.sub-form_check input{ margin-top: 3px; }
.sub-form_check a{ color: #ed7c23; text-decoration: underline; }

.sub-form_submit{
    width: 100%;
    height: 48px;
    border: 0;
    border-radius: 8px;
    background: #ed7c23;
    color: #fff;
    font: inherit;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s;
}
.sub-form_submit:hover{ background: #c96a19; }

.sub-form_done{
    padding: 14px 16px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #E6DDCE;
    color: #2B2620;
    font-size: 15px;
}

/* Поле-ловушка для роботов используется и формой подписки. */
.hb-form_trap{
    position: absolute;
    left: -5000px;
    height: 0;
    overflow: hidden;
}

/* Иконки контактов в подвале: один набор svg вместо разнобоя Font Awesome.
   Стили здесь, а не в home-blocks.css: подвал есть на всех страницах. */
.ft-ico{
	display: inline-flex;
	flex: 0 0 20px;
	align-items: center;
	justify-content: flex-start;
	width: 20px;
	margin-right: 8px;
	vertical-align: -4px;
	color: var(--theme-color);
}

.ft-ico svg{
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	stroke: currentColor;
}

/* Кнопка «наверх»: тема оставила её в старом бронзовом цвете. */
.back-to-top,
.scroll-top,
.back-to-top .back-top{
	background-color: var(--theme-color);
	color: #fff;
}

/* Заголовки виджетов подвала */
.widget.footer-widget .widget-headline{
	color: #fff;
	position: relative;
	margin-bottom: 15px;
	font-size: 26px;
	font-family: var(--heading-font);
	line-height: 28px;
	padding-left: 0;
	z-index: 0;
}

.footer-style-2 .widget.footer-widget .widget-headline{
	color: var(--title-color);
	font-weight: 500;
	font-size: 19px;
}

/* Заголовок подписки — тот же вид, что у остальных заголовков подвала. */
.sub-form_heading{
	margin: 0 0 15px;
	color: var(--title-color);
	font-family: var(--heading-font);
	font-size: 19px;
	font-weight: 500;
	line-height: 28px;
}

/* На экранах уже 1400px заголовок обложки не помещается в две строки. */
@media (max-width: 1399px){
	.hero-title{
		font-size: 42px;
		margin-top: 30px;
	}
}

/* Боковые поля на узких экранах.
   Отступ держит только внешний контейнер секции: у Bootstrap это .container,
   у Elementor — .e-con-inner верхнего уровня. Вложенным контейнерам поля
   обнуляем, иначе они складываются и содержимое уезжает к центру. */
@media (max-width: 1400px){
	.container,
	.container-fluid,
	.e-con.e-parent > .e-con-inner,
	.ogeo-blocks{
		max-width: 100%;
		padding-left: 50px;
		padding-right: 50px;
	}

	.e-con.e-child > .e-con-inner,
	.e-con .e-con .e-con-inner,
	.hb > .container .container{
		padding-left: 0;
		padding-right: 0;
	}
}

@media (max-width: 968px){
	.container,
	.container-fluid,
	.e-con.e-parent > .e-con-inner,
	.ogeo-blocks{
		padding-left: 20px;
		padding-right: 20px;
	}
}

/* Обложка на экранах до 1200px: карточки преимуществ и снимок встают
   по центру колонки, но текст внутри карточки остаётся прижатым влево —
   центрированные две строки описания читаются хуже. */
@media (max-width: 1200px){
	.hero-style1 .hero-card_wrapper{ align-items: center; }

	.hero-card{
		max-width: 500px;
		margin-left: auto;
		margin-right: auto;
	}

	.hero-card_content,
	.hero-card .box-title,
	.hero-card_text{ text-align: left; }

	.hero-1 .hero-image-wrapp,
	.hero-1 .hero-thumb{
		display: flex;
		justify-content: center;
	}

	.hero-1 .hero-thumb img{ margin: 0 auto; }
}

@media (max-width: 480px){
	.hero-style1{
		padding: 50px 0 60px 0;
	}

	h2.sec-title.style2{
		font-size: 24px;
		margin-top: -13px;
	}
}

/* Шапка страниц: отступы вокруг заголовка. */
.breadcrumb-wrap .breadcrumb-content{
	padding: 70px 0 66px 0 !important;
}

/* Похожие статьи под записью */
.related-posts{
	margin-top: 60px;
}

.related-posts_grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-top: 26px;
}

.related-post{
	display: block;
	color: var(--title-color);
	text-decoration: none;
}

.related-post_thumb{
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: 12px;
	background: var(--smoke-color);
}

.related-post_thumb img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s ease;
}

.related-post:hover .related-post_thumb img{ transform: scale(1.04); }

.related-post_title{
	display: block;
	margin-top: 14px;
	font-family: var(--heading-font);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.35;
}

.related-post:hover .related-post_title{ color: var(--theme-color); }

@media (max-width: 767px){
	.related-posts_grid{ grid-template-columns: 1fr; gap: 18px; }
}

/* Кнопка отправки комментария — в фирменном оранжевом. */
.comment-form .submit,
.comment-respond .submit{
	background-color: var(--theme-color);
	border-color: var(--theme-color);
	color: #fff;
}

/* Хлебные крошки в шапке страницы — в фирменном оранжевом.
   Ссылке цвет тема задаёт своим селектором, поэтому усиливаем. */
.breadcrumb-wrap .page-list,
.breadcrumb-wrap .page-list li,
.breadcrumb-wrap .page-list li span,
.breadcrumb-wrap .page-list li a,
.breadcrumb-wrap .breadcrumb-content .page-list li a{
	color: var(--theme-color);
}

.breadcrumb-wrap .page-list a:hover{ color: var(--theme-color2); }

/* Заголовок страницы и домик в крошках: правила темы лежат в main-style.css,
   который подключается после дочернего файла — без !important не перебить. */
.breadcrumb-wrap .page-title{
	font-weight: 400 !important;
}

.breadcrumb-wrap .page-list li:first-child:after{
	color: var(--theme-color) !important;
}

/* Единый шрифт на внутренних страницах.
   Виджеты Elementor тянут Inter и Roboto из набора темы — на главной наши
   блоки нарисованы своей разметкой и используют Ubuntu, поэтому страницы
   выглядели чужими. Приводим к одному семейству. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-image-box .elementor-image-box-title,
.elementor-widget-image-box .elementor-image-box-description,
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-description,
.elementor-widget-icon-list .elementor-icon-list-text{
	font-family: var(--heading-font) !important;
}

/* Один размер для всех заголовков и текста на внутренних страницах.
   Виджеты Elementor настраивались по отдельности, поэтому на соседних
   секциях заголовки были то 30, то 24, то 40 пикселей. */
.single-service .elementor-widget-heading h2.elementor-heading-title,
.page .elementor-widget-heading h2.elementor-heading-title{
	font-size: 34px !important;
	font-weight: 400 !important;
	line-height: 1.25 !important;
}

.single-service .elementor-widget-heading h3.elementor-heading-title,
.page .elementor-widget-heading h3.elementor-heading-title{
	font-size: 24px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
}

.single-service .elementor-widget-heading p.elementor-heading-title,
.page .elementor-widget-heading p.elementor-heading-title,
.single-service .elementor-widget-text-editor,
.page .elementor-widget-text-editor,
.single-service .elementor-widget-text-editor p,
.page .elementor-widget-text-editor p,
.single-service .checklist li,
.page .checklist li{
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
}

@media (max-width: 767px){
	.single-service .elementor-widget-heading h2.elementor-heading-title,
	.page .elementor-widget-heading h2.elementor-heading-title{
		font-size: 26px !important;
	}
}

/* Внутренний контейнер статьи: боковые поля задаёт внешний .e-con-inner,
   вложенный добавлял их второй раз и текст уезжал к центру. */
.single-service .e-con.e-parent > .e-con-inner > .e-con.e-child,
.single-post .e-con.e-parent > .e-con-inner > .e-con.e-child{
	padding-left: 0;
	padding-right: 0;
}

/* Заголовки внутренних страниц: у виджетов без своей настройки цвета
   Elementor подставляет голубой из набора темы. */
.single-service .elementor-widget-heading h2.elementor-heading-title,
.single-service .elementor-widget-heading h3.elementor-heading-title,
.page .elementor-widget-heading h2.elementor-heading-title,
.page .elementor-widget-heading h3.elementor-heading-title{
	color: var(--title-color) !important;
}

/* Заголовки внутри текстовых виджетов (их добавляет плагин с текстами
   страниц) идут без классов, поэтому правила выше их не покрывали. */
body:not(.home) .single-service .elementor-widget-container > h2,
body:not(.home) .elementor-widget-text-editor h2,
body:not(.home) .elementor-widget-container > h2{
	font-size: 34px !important;
	font-weight: 400 !important;
	line-height: 1.25 !important;
	color: var(--title-color) !important;
}

body:not(.home) .elementor-widget-text-editor h3,
body:not(.home) .elementor-widget-container > h3{
	font-size: 24px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	color: var(--title-color) !important;
}

body:not(.home) .elementor-widget-text-editor p,
body:not(.home) .elementor-widget-text-editor li{
	font-size: 16px !important;
	line-height: 1.6 !important;
}

@media (max-width: 767px){
	body:not(.home) .elementor-widget-text-editor h2,
	body:not(.home) .elementor-widget-container > h2{ font-size: 26px !important; }
}

/* Служебная строка под заголовком статьи (автор, дата, счётчик
   комментариев, рубрика) — в блоге она ничего не добавляет. */
.post-meta-wrap{
	display: none;
}

/* Экран загрузки темы: его прятал отдельный скрипт, который мы сняли
   ради скорости. Без скрипта белая заглушка висела до конца загрузки —
   убираем саму заглушку. */
.preloader{
	display: none !important;
}

/* OCIFROVKA: вес заголовков 400 */
h1, h2, h3, h4, h5, h6 {
    font-weight: 400;
}

/* OCIFROVKA: базовый шрифт Raleway */
:root{--heading-font:'Raleway',sans-serif;--title-font:'Raleway',sans-serif;--body-font:'Raleway',sans-serif;}
body, button, input, select, textarea,
h1, h2, h3, h4, h5, h6,
.global-btn, .theme-btn { font-family: 'Raleway', sans-serif; }

/* OCIFROVKA: локальный абзац города */
.ogeo-local-intro { max-width: 900px; margin: 14px auto 0; line-height: 1.6; opacity: .92; }

/* OCIFROVKA: точечная типографика (правки Дениса).
   font-size 40px и line-height 1.22 у sec-title.style2 уже заданы выше —
   здесь добиваем только вес; специфичность совпадает с исходной (0,2,1). */
.theme-section-title .title,
h2.sec-title.style2 { font-weight: 400; }
h1.hero-title,
.hero-title { font-weight: 400; }
.hdr-city .hdr-city-name,
.hdr-city-name { font-weight: 400; }

/* OCIFROVKA (Денис): единый вес текста 400 везде, кроме иконочных шрифтов */
h1, h2, h3, h4, h5, h6,
p, a, li, ul, ol, dt, dd, td, th, caption, figcaption, blockquote, cite, small,
label, button, input, select, textarea, strong, b, em,
.elementor-heading-title, .elementor-widget-text-editor, .elementor-button,
.related-post_title, .tw-comments_title,
[class*="-title"], [class*="_title"], [class*="-text"],
span:not([class*="fa"]):not([class*="icon"]):not([class*="ico-"]):not(.elementor-icon):not(.material-icons) {
    font-weight: 400 !important;
}
/* иконки не трогаем */
i, .fa, [class^="fa-"], [class*=" fa-"], .elementor-icon, .elementor-icon i, .material-icons {
    font-weight: revert !important;
}

/* ============ Читаемость текстовых страниц ============ */
/* Сайдбар на услугах и страницах снят (inc/single.php), и колонка контента
   идёт во всю ширину контейнера. Ширину абзацев по решению заказчика
   не ограничиваем — читаемость добираем ритмом: отбивами между абзацами
   и отступами вокруг подзаголовков. */

/* Заголовки внутри текста короче строки: так они читаются как врезка,
   а не как ещё одна строка абзаца. */
.single-service .elementor-widget-heading h2.elementor-heading-title,
.page:not(.home) .elementor-widget-heading h2.elementor-heading-title,
.single-service .elementor-widget-heading h3.elementor-heading-title,
.page:not(.home) .elementor-widget-heading h3.elementor-heading-title{
    max-width: 22ch;
}

/* Воздух между абзацами: без отбива они слипались в один кусок.
   Размер и интерлиньяж здесь не трогаем — выше по файлу они уже заданы
   правилом с !important (16px / 1.6), и дублировать их значило бы держать
   в файле строки, которые ни на что не влияют. */
.single-post .entry-content{
    line-height: 1.75;
}
.single-service .elementor-widget-text-editor p,
.page:not(.home) .elementor-widget-text-editor p,
.single-post .entry-content > p{
    margin-bottom: 1.15em;
}
.single-service .elementor-widget-text-editor p:last-child,
.page:not(.home) .elementor-widget-text-editor p:last-child{
    margin-bottom: 0;
}

/* Отбив перед подзаголовком больше, чем после него: раздел визуально
   прилипает к своему тексту, а не висит между двумя одинаковыми щелями. */
.single-service .elementor-widget-heading h2.elementor-heading-title,
.page:not(.home) .elementor-widget-heading h2.elementor-heading-title,
.single-post .entry-content h2{
    margin-top: .6em;
    margin-bottom: .5em;
    line-height: 1.25;
}

/* Списки внутри текста: маркеры не должны наезжать на левый край меры. */
/* Отступ под маркер даёт сама тема (.content-area ul li{padding-left:15px}),
   поэтому здесь только вертикальный ритм — иначе отступ удвоится. */
.single-service .elementor-widget-text-editor ul,
.page:not(.home) .elementor-widget-text-editor ul,
.single-service .elementor-widget-text-editor ol,
.page:not(.home) .elementor-widget-text-editor ol{
    margin: 0 0 1.15em;
}
.single-service .elementor-widget-text-editor .checklist ul,
.page:not(.home) .elementor-widget-text-editor .checklist ul{
    margin: 0;
}
.single-service .elementor-widget-text-editor li,
.page:not(.home) .elementor-widget-text-editor li,
.single-post .entry-content li{
    margin-bottom: .45em;
}

/* ============ Списки с галочками ============ */
/* Иконка в .checklist задана как блок 22×22 с margin-top: 2px, а строка
   текста при line-height 1.5 выше — галочка вставала над строкой, а не
   на её уровне. Отдаём иконке высоту строки: глиф центрируется в ней
   и попадает ровно на первую строку текста при любом размере шрифта. */
.checklist li{
    align-items: flex-start;
}
.checklist li i,
.checklist li svg{
    height: auto;
    margin-top: 0;
    line-height: inherit;
}
/* Точка рядом с галочкой — две пометки об одном и том же.
   Маркер рисует не список (list-style у .checklist снят), а тема:
   main-style.css вешает на .content-area ul li:before кружок 5×5 и
   отодвигает текст на 15px. Для списков с галочками это лишнее —
   гасим кружок и возвращаем отступ. Специфичность (0,2,3) против
   (0,1,3) у темы, поэтому !important не нужен. */
.content-area .checklist ul li{
    padding-left: 0;
}
.content-area .checklist ul li:before{
    display: none;
    content: none;
}
.content-area .checklist ul li + li{
    margin-top: 0;
}

/* ============ Кнопка «Смотреть все» под лентой блога ============ */
/* .style-border в master.css делает кнопку прозрачной с обводкой — на
   бежевом фоне она читалась как подпись, а не как действие. */
.global-btn.style-border,
.news-block_footer .global-btn{
    background-color: #ed7c23;
    border-color: #ed7c23;
    color: #FFFFFF;
}
.global-btn.style-border:hover,
.news-block_footer .global-btn:hover{
    background-color: #c96a19;
    border-color: #c96a19;
    color: #FFFFFF;
}

/* ============ Кнопка заявки под сравнением «было и стало» ============ */
.ba-cta{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-top: 22px;
    text-align: center;
}
.ba-cta_btn{
    border: 0;
    cursor: pointer;
}
.ba-cta_note{
    font-size: 15px;
    line-height: 1.5;
    color: var(--body-color);
    opacity: .8;
}

/* OCIFROVKA (Денис): breadcrumb-wrap p — только нужные свойства, лишнее убрано */
.breadcrumb-wrap p {
    display: inline-block;
    font-size: 18px;
    line-height: 20px;
    margin-bottom: 20px;
    padding: 0;
    text-transform: none;
    background-color: transparent;
    max-width: none;
    color: inherit;
}
