/* Deviations from the cloned source CSS. Loaded last, after main/sections/chrome. */

/* 2026-07-29 — the trust stat row sat on a 45.6% first track at >=992px.
   Cause: a section deviation in the frozen sections.css (block 14c8438b) overrides
   the base grid. Owner asked to drop it, so the base 4-track grid is restored.
   Scope: sitewide — every page with the bare .trust__list carries 4 stats, so the four
   equal tracks fit; the About skin (.trust__list_about, 3 stats) outranks this and keeps
   its own 50.5% track. */
@media screen and (min-width: 992px) {
	.trust__list {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}
}

/* 2026-07-29 — trust stat row on phones ran three tracks per row.
   Cause: the base main.css rule at <=479px sets grid-template-columns:1fr 1fr 1fr.
   Owner asked for two. Scope: sitewide, every page carrying the bare .trust__list;
   the About skin (.trust__list_about) outranks this selector and is untouched. */
@media screen and (max-width: 479px) {
	.trust__list {
		grid-template-columns: 1fr 1fr;
	}
}

/* 2026-07-29 — the two forms now run on Contact Form 7 (see inc/cf7-forms.php, which
   unwraps CF7's control spans so the cloned markup and its adjacency CSS survive).
   Three CF7 leftovers still need dressing: its checkbox markup, its response box, and
   the success state. Scope: only inside the cloned .w-form / .form. */
.w-checkbox .wpcf7-checkbox,
.w-checkbox .wpcf7-list-item {
	display: contents;
}

.w-checkbox input[type="checkbox"] {
	display: none;
}

.w-checkbox .wpcf7-list-item-label {
	position: relative;
	display: inline-block;
	margin-bottom: 0;
	cursor: pointer;
	color: var(--accent-clr);
	font-size: 16px;
	font-weight: 400;
	line-height: 130%;
}

.w-checkbox input[type="checkbox"] + .wpcf7-list-item-label::before {
	content: "";
	position: relative;
	display: inline-block;
	width: 16px;
	height: 16px;
	margin: 0 8px 4px 0;
	cursor: pointer;
	vertical-align: middle;
	border: 1px solid rgba(44, 44, 44, 0.30);
	background-color: transparent;
}

.w-checkbox input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 5px;
	display: block;
	width: 6px;
	height: 9px;
	transform: rotate(45deg);
	border: solid var(--accent-clr);
	border-width: 0 2px 2px 0;
}

/* CF7 appends its response box as the last child of the form — i.e. a cell of the .form grid. */
.form .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 0;
}

/* On success the cloned .form-success panel owns the whole band, so CF7's own green box
   would double it; errors keep showing. */
.form.sent .wpcf7-response-output {
	display: none;
}

/* 2026-07-29 — the Project Type select drew as a 94×38 white pill with a second chevron.
   Cause: nice-select2.min.css is injected at runtime (head.js Controller.addStyle), so it
   lands after sections.css and beats every equal-specificity rule of the cloned skin.
   Scope: selects inside .form-group — one extra class level puts the cloned values back
   on top. Values are copied from sections.css, order kept. */
.form-group .nice-select {
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	line-height: 120%;
	white-space: wrap;
	border: 1px solid var(--form-bd-clr);
	border-radius: 0;
	background-color: transparent;
}

.form-group .nice-select::after {
	display: none;
}

.form-group .nice-select.open {
	border-color: var(--accent-clr);
}

.form-group .nice-select .nice-select-dropdown {
	width: 100%;
	margin-top: 6px;
	border-radius: 0;
	outline: 1px solid var(--accent-clr);
	box-shadow: none;
}

.form-group .nice-select .list {
	overflow: auto;
	width: 100%;
	max-height: 150px;
	padding: 0;
	border-radius: 0;
	background: var(--white);
	scrollbar-color: var(--accent-clr) var(--white-clr);
	scrollbar-width: thin;
}

.form-group .nice-select .option {
	line-height: 120%;
}

.form-group .nice-select .option:hover,
.form-group .nice-select .option.focus,
.form-group .nice-select .option.selected.focus {
	color: var(--accent-clr);
	background-color: var(--white-clr);
}

.form-group .nice-select .list li {
	width: 100%;
	padding: 5px 16px;
	font-size: 16px;
	transition: background .3s, color .3s;
}

.form-group .nice-select .list li:hover,
.form-group .nice-select .list li.focus {
	color: var(--white-clr);
	background: var(--accent-clr);
}

/* 2026-07-29 — /projects: фильтры категорий рендерились как серые системные кнопки.
   Причина: в sections.css незакрытый `.modal-overlay {` (стр. 2512, код донора),
   он глотает всё, что идёт ниже, включая правила .overview-case__button.
   Scope: только кнопки фильтра секции overview (вариант case). */
.overview-case__button {
	padding: 0;
	border: 0;
	background-color: transparent;
	color: #73736D;
	font-family: MontserratCustom, MontserratFallback, Arial, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 150%;
	letter-spacing: -0.5px;
	text-align: left;
	transition: color .3s;
}

.overview-case__button.active {
	color: var(--accent-clr);
}

@media screen and (hover: hover) {
	.overview-case__button:hover {
		color: var(--accent-clr);
	}
}

@media screen and (max-width: 991px) {
	.overview-case__button {
		font-size: 16px;
	}
}

/* 2026-07-29 — /projects: фильтр и Load More прячут карточки классом .hide (main.css).
   Симптом: .hide той же силы, что и правила самих карточек, и порядок файлов решает.
   Здесь оно решено явно. Scope: секция overview, вариант case. */
.overview-case__item.hide,
.overview-case__btn.hide {
	display: none;
}

/* 2026-08-03 — /projects: кладка карточек. Симптом: во вкладках и после Load More ряды
   рвались — ширина бралась из data-order, а его печатал PHP по всему набору сразу.
   Ширину задаёт сетка по месту карточки среди ВИДИМЫХ ("of :not(.hide)"), поэтому
   любой отбор перестраивает кладку сам. Scope: секция overview, вариант case. */
.overview-case__wrapper {
	display: grid;
	grid-template-columns: 29.2% 12.7% 39.3%;
	column-gap: 9.4%;
	row-gap: 72px;
}

.overview-case__item:nth-child(4n + 2 of :not(.hide)),
.overview-case__item:nth-child(4n + 3 of :not(.hide)) {
	grid-column: span 2;
}

.overview-case__item:nth-child(4n + 2 of :not(.hide)) .overview-case__img,
.overview-case__item:nth-child(4n + 3 of :not(.hide)) .overview-case__img {height: 416px}
.overview-case__item:nth-child(4n of :not(.hide)) .overview-case__img {height: 312px}

@media screen and (max-width: 991px) {
	.overview-case__wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
		row-gap: 24px;
	}

	.overview-case__item:nth-child(4n + 2 of :not(.hide)),
	.overview-case__item:nth-child(4n + 3 of :not(.hide)) {
		grid-column: span 1;
	}

	.overview-case__item:nth-child(4n + 2 of :not(.hide)) .overview-case__img,
	.overview-case__item:nth-child(4n + 3 of :not(.hide)) .overview-case__img,
	.overview-case__item:nth-child(4n of :not(.hide)) .overview-case__img {height: 306px}
}

/* 2026-07-29 — /projects/<кейс>: строка "Services:" в шапке шла столбиком, ссылка синей.
   Правила донора для .article-info__richtext лежат в мёртвой зоне sections.css (2860).
   Копия; в цвете развёрнута опечатка донора --text-defaut-clr (переменной нет, цвет
   всё равно наследовался от .article-info__item). Scope: hero, вариант case. */
.article-info__richtext ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
}

.article-info__richtext a {
	color: var(--text-default-clr);
	text-decoration: underline;
}

/* 2026-07-29 — /projects/<кейс>: слайдер "до/после" вылезал за колонку и давал
   горизонтальную прокрутку всей страницы (при 1280 документ мерился на 4232).
   Донорское .case-inner__swiper.swiper{overflow:hidden} лежит в мёртвой зоне
   sections.css (2852). Копия один в один. Scope: секция project, свайперы кейса. */
.case-inner__swiper.swiper {
	overflow: hidden !important;
}

/* 2026-07-29 — /projects/<кейс>: точки слайдера "до/после" остались дефолтом swiper.
   Правила донора (sections.css 2816-2826) лежат в мёртвой зоне. Копия, но с привязкой
   к .case-inner__swiper-control: у донора селекторы глобальные, зато сам блок правил
   отдаётся только на 12 страницах проектов — так другие карусели не задеты. */
.case-inner__swiper-control .swiper-pagination {
	width: auto !important;
	position: static;
	height: 26px;
}

.case-inner__swiper-control .swiper-pagination-bullet {
	width: 32px;
	height: 2px;
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.50);
}

/* 2026-07-29 — шапка на узких экранах: два телефона (IL, WI) переносились на вторую
   строку и вставали друг под другом. Причина: .phones разрешает перенос, а на 320px
   ряду не хватало ~2px. Держим их в одну строку и режем зазор. Порог по просьбе
   владельца поднят с 350px до 479px. Scope: только шапка. */
@media screen and (max-width: 479px) {
	.phones.header__phones {
		flex-wrap: nowrap;
		gap: 12px;
		height: auto;
	}

	.phones.header__phones .phones-item__phone[data-local] {
		gap: 4px;
		white-space: nowrap;
	}
}

/* 2026-07-30 — блок "When Working with Us": карточки .why-choose-item были разной
   высоты. Причина: swiper-bundle.css задаёт .swiper-slide{height:100%}, а высота
   у .why-choose__wrapper авто — процент не разрешается, зато явная высота отменяет
   растягивание флексом, и каждая карточка садилась по своему тексту. Scope: секция
   why_choose. */
.why-choose-item.swiper-slide {
	height: auto;
}

/* 2026-07-30 — /our-process/: вертикальная линия таймлайна с точками не рисовалась.
   Правила донора (sections.css 2597-2659) лежат в мёртвой зоне ниже незакрытой скобки.
   Копия один в один; мобильный довесок донора не переношу — на <=767px main.css и так
   держит .timeline-bar/.timeline-point в display:none. Scope: секция timeline. */
.timeline-bar {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%);
	height: 100%;
}

.timeline-line {
	position: absolute;
	top: 0;
	left: 50%;
	width: 2px;
	height: 100%;
	transform: translate(-50%);
	background-image: repeating-linear-gradient(
		to bottom,
		rgba(115, 115, 109, 0.30),
		rgba(115, 115, 109, 0.30) 19px,
		transparent 20px,
		transparent 35px
	);
	z-index: 0;
}

.timeline-indicator {
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 2;
	width: 16px;
	height: 16px;
	transform: translate(-50%);
	border: 2px solid #636262;
	border-radius: 50%;
	background-color: var(--white-clr);
}

.timeline-point {
	position: absolute;
	top: 115px;
	left: 50%;
	width: 30px;
	height: 30px;
	transform: translate(-50%) scale(0.5);
	border-radius: 50%;
	background-color: #EFEFEF;
	opacity: 0;
	transition: opacity .3s, transform .3s;
}

.timeline-point.visible {
	opacity: 1;
	transform: translate(-50%) scale(1);
}

.timeline-point::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 13px;
	height: 13px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background-color: #636262;
}

/* 2026-07-30 — /financing/: левый столбец калькулятора Enhancify начинался на 70px выше
   синей плашки справа. Причина: вендор сдвигает правый столбец вниз на top:100px, а плашка
   внутри него поднята на -30px, итого рассинхрон 70px. Ставим 30px — плашка встаёт ровно
   по верху левого столбца. Только двухколоночная раскладка: ниже 1024px вендор сам гасит
   top и переходит на margin-top:95px. Специфичность нарочно выше вендорской: свою таблицу
   стилей виджет тянет со своего домена в рантайме, она встаёт ПОСЛЕ overrides.css, и
   правило равной силы проиграло бы — та же ловушка, что с nice-select выше.
   Scope: секция calculator. */
@media screen and (min-width: 1024px) {
	#fullpagewidget .payment-calculator .payment-calculator__content > .payment-calculator__content-item:last-child {
		top: 30px;
	}
}

/* 2026-07-30 — /financing/: у каждого ползунка калькулятора висел лишний зелёный кружок
   и коробочка с сырым числом. Кружок — неактивная ручка ion.rangeSlider (.irs-slider.from
   /.to): её плагин должен прятать инлайном в одиночном режиме, у нас она осталась и стоит
   на месте НАЧАЛЬНОГО значения — сверил по скриншоту, все три позиции совпали с дефолтами
   20000 / 12.4 / 5, тянется только .single. Коробочка — исходный input.range__slider,
   который плагин должен глушить классом .irs-hidden-input. Прячем ровно эти два, живая
   ручка .single и текстовое поле с карандашом не тронуты. !important — потому что таблица
   вендора приходит с его домена ПОСЛЕ нашей и сама пользуется !important на этом же
   элементе. Scope: секция calculator, виджет full_page. */
#fullpagewidget .payment-calculator .range .irs-slider.from,
#fullpagewidget .payment-calculator .range .irs-slider.to,
#fullpagewidget .payment-calculator .range input.range__slider {
	display: none !important;
}

/* 2026-07-30 — /financing/: в каждой строке ползунка было по ДВА зелёных кружка.
   Причина: загрузчик виджета выполняется дважды — remote-скрипт из ACF-эмбеда
   (contact/calculator *_widget_code) и его локальная копия из head.js
   (vendor-paged/03-…fullpagewidget.js). Каждый прогон создаёт свой экземпляр
   ionRangeSlider на том же инпуте, и в .range появляется второй блок .irs со своей
   ручкой. Прошлая догадка (неактивные ручки .from/.to) была неверной — оставляю
   видимым первый блок .irs, остальные гасим. Тайминги и порядок загрузки не трогаем:
   рабочий ползунок остаётся, лишний просто не показывается.
   Scope: секция calculator, оба якоря виджета. */
#fullpagewidget .payment-calculator .range .irs ~ .irs,
#paymentcalculatorwidget .payment-calculator .range .irs ~ .irs {
	display: none !important;
}

/* 2026-08-04 — Cumulative Layout Shift на подмене шрифта. Симптом: до загрузки
   MontserratCustom/LoraCustom текст рисуется Arial (а где в стеке фолбэка нет — вообще
   Times), тот уже́е и ниже, строки переносятся иначе — при swap вёрстка прыгает.
   Причина: у фолбэка другие метрики. Ниже фолбэк с метриками, подогнанными под каждый
   вес (числа измерены на стенде, см. тело коммита), и он вставлен в каждый стек, где
   назван веб-шрифт. Scope: весь сайт. */
/* Донор гасил тот же CLS, пряча страницу целиком до fonts.ready. 2026-08-05 навешивание
   класса вырезано из chrome-header.js, но правило body.body-hidden осталось в
   chrome-header.css — это замороженная генерация. Страховка на случай, если класс
   когда-нибудь вернётся оттуда же: цена — одна строка, цена ошибки — белая страница. */
body.body-hidden {
	visibility: visible;
}

@font-face {
	font-family: MontserratFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 400;
	font-style: normal;
	size-adjust: 111.70%;
	ascent-override: 86.84%;
	descent-override: 22.38%;
	line-gap-override: 0%;
}

@font-face {
	font-family: MontserratFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 500;
	font-style: normal;
	size-adjust: 113.38%;
	ascent-override: 85.56%;
	descent-override: 22.05%;
	line-gap-override: 0%;
}

@font-face {
	font-family: MontserratFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 600;
	font-style: normal;
	size-adjust: 115.24%;
	ascent-override: 84.17%;
	descent-override: 21.69%;
	line-gap-override: 0%;
}

@font-face {
	font-family: LoraFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 400;
	font-style: normal;
	size-adjust: 104.08%;
	ascent-override: 97.04%;
	descent-override: 25.94%;
	line-gap-override: 0%;
}

@font-face {
	font-family: LoraFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 500;
	font-style: normal;
	size-adjust: 104.84%;
	ascent-override: 96.34%;
	descent-override: 25.75%;
	line-gap-override: 0%;
}

@font-face {
	font-family: LoraFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 600;
	font-style: normal;
	size-adjust: 105.59%;
	ascent-override: 95.66%;
	descent-override: 25.57%;
	line-gap-override: 0%;
}

@font-face {
	font-family: LoraFallback;
	src: local("Arial"), local("Helvetica Neue"), local("Helvetica"), local("Liberation Sans"), local("Nimbus Sans");
	font-weight: 400;
	font-style: italic;
	size-adjust: 100.72%;
	ascent-override: 100.28%;
	descent-override: 26.81%;
	line-gap-override: 0%;
}

/* Стеки. Селекторы — копия тех, что назначают веб-шрифт в main/sections/chrome/head;
   меняется только список семейств. В доноре два семейства чередуются по файлу, здесь
   собраны в две группы — разойтись это могло бы только на элементе, который попадает
   и в [class*="btn-"], и в .h2/.h3/.h4; на 13 страницах таких нет (проверено 2026-08-04). */
body,
.body,
.card-facade__title,
.file-err,
.form-label_file span,
blockquote,
.conclusion-article,
.tb-wrap td,
.tb-wrap th,
.color-plus-item,
.richtext li a,
.richtext > ul li,
.richtext > ol li,
[class*="btn-"],
.es-load-more-button,
.phones-item__phone[data-local]::after,
.footer__link,
.toc__button {
	font-family: MontserratCustom, MontserratFallback, Arial, sans-serif;
}

h1,
h2,
h3,
h4,
.h2,
.h3,
.h4,
.trust-item__title,
.cta-section-item__number,
.areas-badge__title,
.footer__title,
.phones-item__phone,
.menu-drop__title,
.galary-lp__text,
.menu-drop-card__text.h2,
.big-timer__real-price,
.big-timer__fail-price,
.big-timer__time.big-timer__seportor,
.big-timer__numb,
.hero-404__title,
.hero-404__text,
.color-plus__quote,
.areas-item__link,
.promise__richtext p em,
.aside-cta__rich > *:first-child,
.how-it-item::before,
.timeline-item.timeline-item_flex .timeline-item__content::before,
.background-text {
	font-family: LoraCustom, LoraFallback, Arial, sans-serif;
}

/* 2026-08-05 — PageSpeed «Font display», 120 мс на иконочном шрифте.
   Причина: в клоне у IconsSecond font-display:block, текст ждёт файл до 3 с.
   Охват: только это семейство, оно несёт одну иконку загрузки в форме ниже
   первого экрана; девять остальных @font-face клона уже со swap. */
@font-face {
	font-family: IconsSecond;
	src: url(../media/69702722df-6818a83d91a54af4c3778193_icons.woff) format("woff");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* 2026-08-11 — панель «Thank you!» уезжала за контейнер: у .form-success в клоне
   position:absolute + 100%×100% на всех ширинах, а контекстом ей служит section.contact-us,
   не полоса. Текст прижимался к краю окна, а высота в экран уводила заголовок под хедер.
   Охват: только эта панель внутри .contact-us. */
.contact-us__container {
	position: relative;
}

.contact-us .form-success {
	inset: 0 16px auto;
	width: auto;
	height: auto;
}

/* 2026-08-12 — свайпер project дёргался при перелистывании. Центральный слайд выше соседних
   (371/180/149 в sections.css) и его высота анимируется 0.3s: пока один растёт, а другой сжимается,
   максимум в строке проваливается до ~323px, и полоса вместе со всем ниже прыгает на 48px.
   Держим высоту строки — анимация идёт внутри неподвижного бокса. */
.project__wrapper {
	min-height: 371px;
}

@media screen and (max-width: 767px) {
	.project__wrapper {
		min-height: 180px;
	}
}

@media screen and (max-width: 479px) {
	.project__wrapper {
		min-height: 149px;
	}
}

/* 2026-08-12 — .tabs-content.active в клоне двух видов: секция option (материалы, .option-item)
   получает display:block, секция types-tabs (.types-tabs__tab) — display:flex. В склеенном
   sections.css побеждало последнее объявление и block уходил на все одиннадцать носителей;
   возвращаем каждому его собственное значение через классы, которые уже есть в разметке. */
.types-tabs__tab.tabs-content.active {
	display: flex;
}

.option-item.tabs-content.active {
	display: block;
}

/* 2026-08-12 — трастовые логотипы на LP растягивало: тема печатает width/height атрибутами (CLS,
   inc/img-dimensions.php), у донора их нет, и клонированный CSS рассчитан на auto — ширина из
   атрибута билась с height:50px у .hero_icon и с max-width/max-height у .image-2, пропорции
   ломались. Возвращаем auto: соотношение сторон берётся из тех же атрибутов, CLS не растёт. */
.hero_icon {
	width: auto;
	flex-shrink: 0;
}

.image-2 {
	width: auto;
	height: auto;
}

/* 2026-08-12 — большие слова-заголовки в fullscreen_pd вылезали за окно ниже ~1090px: это флекс-
   элементы с фиксированным 196px, а их min-content (самое длинное слово) — 1091px, сжиматься
   min-width:auto не даёт, и секция с overflow:clip их обрезала. Выше 1120px min() возвращает те же
   196px, ниже размер идёт от ширины окна. */
.fullscreen .fullscreen__block-text .background-text {
	font-size: min(196px, 17.5vw);
}

/* 2026-08-12 — заголовки двух калькуляторов в статьях переведены с h1 на h2 (на странице уже есть
   h1 — заголовок статьи). Правила клона висели на h1 внутри их обёрток, значения повторены здесь
   один в один, чтобы вид не изменился. */
#hx-roof-calc-wrapper .calculator-header h2 {
	color: #ca2424;
	font-size: 2.5rem;
	margin-bottom: 10px;
	font-weight: 700;
}

#hx-calc-wrapper .header h2 {
	color: #fff;
	margin: 0 0 10px;
	font-size: 28px;
	font-weight: 700;
}

/* 2026-08-12 — заголовок «Our Past Works» на LP переведён с h1 на h2 (h1 уже занят героем),
   а размер шрифта в клоне висел на теге: возвращаем прежние 72px и 32px ниже 992px. */
.project .heading-3 {
	font-size: 72px;
}

@media screen and (max-width: 991px) {
	.project .heading-3 {
		font-size: 32px;
	}
}

/* 2026-08-12 — строка бейджей на /about: в клоне колонки 50.5% 1fr 1fr, а бейдж — фиксированный
   бокс 215px, прижатый влево, поэтому после первого зияла дыра 439px (у донора так же). Считаем
   колонки от ширины бейджа, а не от их числа: сколько бейджей ни положат, они идут подряд с
   зазором 16px и переносятся на следующую строку, когда не влезают. На мобиле — равные доли. */
.trust__list.trust__list_about {
	grid-template-columns: repeat(auto-fit, 215px);
	justify-content: start;
}

@media screen and (max-width: 767px) {
	.trust__list.trust__list_about {
		grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
	}
}

/* 2026-08-12 — картинки в теле статей тянулись по вертикали (на james-hardie-vs-lp-smartside вторая
   была 855×1080 вместо 855×412). Тема печатает width/height атрибутами ради CLS, а клон для
   .w-richtext figure img задаёт только width:100% — высота оставалась атрибутной. Возвращаем auto:
   пропорция берётся из тех же атрибутов, место под картинку резервируется как раньше. */
.w-richtext figure img {
	height: auto;
}

/* 2026-08-12 — жёлтая плашка с адресом не проходила контраст: коричневый md-brown-500 (#795548)
   на md-amber-400 (#FFCA28) даёт 4.28:1 при норме 4.5 для текста 10px. Берём следующий тон той же
   палитры, md-brown-600 (#6D4C41) — 4.97:1, на глаз то же самое. */
.header-top__bottom {
	color: #6d4c41;
}

/* 2026-08-12 — декоративные слова в подвале печатает CSS, а не разметка: как текст они давали
   ошибку контраста (белый 10% на #1E1E1E — 1.35:1), хотя по WCAG 1.4.3 декор под норму не
   попадает. Проверялки видят только текстовые узлы, поэтому вид сохраняется, а ошибка уходит. */
.footer .background-text__footer.footer__left::before {
	content: "Home";
}

.footer .background-text__footer:not(.footer__left)::before {
	content: "Solutions";
}

/* 2026-08-13 — телефоны в полосе CTA внутри статьи стали чёрными на чёрном. Полосу рисует
   chrome-footer.js внутри .richtext, а там телефоны попадают под правило `.richtext li a`
   (оно специфичнее .phones-item__phone) и перекрашиваются в тёмный вместе с гарнитурой.
   Возвращаем полосе её собственный вид. */
.richtext .cta-article .phones-item__phone {
	color: var(--white-clr);
	text-decoration: none;
	font-family: LoraCustom, Arial, sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 120%;
	letter-spacing: normal;
}

/* 2026-08-13 — белая кнопка на тёмной полосе при наведении заливалась тем же #1E1E1E, что и фон,
   и пропадала: оставался только белый текст (CTA внутри статьи и боковая панель кейса). У кнопок
   на тёмном в клоне для этого есть свой рецепт — .btn_on-dark, заливка белым 30% (так ведут себя
   кнопки на /our-process и в тёмных полосах услуг). Даём его этим двум и подсвечиваем рамку. */
.cta-article__btn:hover,
.aside-cta__btn:hover {
	color: var(--white-clr);
	background-color: rgba(255, 255, 255, 0.3);
	border-color: rgba(255, 255, 255, 0.5);
}

/* 2026-08-13 — брендовые значки в карточках (.card-facade__wrapper) сплющивало: клон задаёт им
   только height:32px, а ширину подставлял атрибут width, который печатает тема ради стабильной
   вёрстки. Ширину считаем от высоты — пропорции берутся из тех же атрибутов. */
.card-facade__badge-img {
	width: auto;
}

/* 2026-08-14 — на мобиле стрелки слайдера «When Working with Us» стояли под слайдами: у этой
   секции обёртка кнопок в клоне идёт потоком (position:static, margin-top:24px), а у остальных
   слайдеров она абсолютная и лежит поверх слайдов. Ставим её так же — по бокам, по центру высоты. */
@media screen and (max-width: 991px) {
	.why-choose__swiper {
		position: relative;
	}

	.why-choose .swiper-buttons {
		position: absolute;
		z-index: 2;
		top: 50%;
		right: 0;
		left: 0;
		margin: 0;
		transform: translateY(-50%);
		justify-content: space-between;
		pointer-events: none;
	}

	.why-choose .swiper-btn {
		pointer-events: auto;
	}
}

/* 2026-08-25 — подпись карточки в «Our Past Works» пропадала: класс .overlay ловил правило
   мобильного меню из chrome-header.css (position:fixed, opacity:0). Скоуп — только эта галерея. */
.works-list .div-block-3.overlay {
	position: absolute;
	top: auto;
	bottom: 0;
	left: 0;
	width: auto;
	height: auto;
	background: #fdfaf7cc;
	opacity: 1;
	pointer-events: auto;
	z-index: auto;
	transition: none;
}

/* 2026-08-25 — правило flex:0 1 24% в sections.css пришло из custom-code лендингов, но
   применяется ко всем страницам: при трёх карточках справа оставалась пустота. Возвращаем
   заполнение ряда; на лендингах (why-choose__wrapper_lp) четвертинки сохраняются. */
@media screen and (min-width: 993px) {
	.why-choose__swiper:not(.swiper-initialized) .why-choose__wrapper:not(.why-choose__wrapper_lp) .why-choose-item {
		flex: 1 1 0;
		min-width: 0;
	}
}

/* 2026-08-31 — панель «Thank you!» ложилась поверх заголовка полосы (/windows). У донора
   заголовок там без хука .contact-us__title-block, а клонированное правило прячет только его.
   Охват: заголовок внутри .contact-us, когда панель успеха активна. */
.contact-us:has(.form-success.active) .title-block {
	display: none;
}

/* Имя файла и сообщение об ошибке в подписи загрузки: подчёркивание и серый цвет там
   у ссылки-приглашения, а эти строки не ссылки. */
.form-label_file .file-name,
.form-label_file .file-err {
	text-decoration-line: none;
}

.form-label_file .file-name {
	color: var(--accent-clr);
}

.form-label_file .file-err {
	color: #d00e0e;
}
