/* kd-edinyj-2026-10.css — общие правила оформления сайта (единый вид).
   Файл: общий стиль, подключается последним <link> перед </head> во всех HTML (кроме tuning*.html).
   Зачем: единый вид ссылок в тексте, карточек услуг и плиток без фото, ряда кнопок под сеткой карточек.
   Дата: 22.10.2026. Решение владельца: единый вид сайта.
   Связано: css/kraken-*.webflow.*.css (база Webflow, там конфликтующие правила), js/kd-netto.js (плашки brutto).
   НЕ переписывать на `a{...}` без ограничений: кнопки, чипы и навигация должны остаться как были.
   Веса: префикс `html body` и !important — перебивают Webflow-правила, которые грузятся раньше. */

/* a) Ссылки внутри текста: не красные, подчёркнутые тонкой линией. Кнопки, чипы и навигацию исключаем. */
html body :is(.c2-sec,.c2-hero,.pk-sec,.pk-wrap,.w-richtext,article,main,.kdt-sec,.kda-wrap) :is(p,li,dd,td) a:not([class*="btn"]):not([class*="button"]):not(.pk-link):not(.card-post-cta):not(.c2-btn):not(.c2-btn2):not(.pk-choice):not(.cell):not(.kd-chip):not(nav a):not(.kd-bc a) {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-decoration-color: rgba(255,255,255,.35) !important;
  text-underline-offset: 3px !important;
}
html body :is(.c2-sec,.c2-hero,.pk-sec,.pk-wrap,.w-richtext,article,main,.kdt-sec,.kda-wrap) :is(p,li,dd,td) a:not([class*="btn"]):not([class*="button"]):not(.pk-link):not(.card-post-cta):not(.c2-btn):not(.c2-btn2):not(.pk-choice):not(.cell):not(.kd-chip):not(nav a):not(.kd-bc a):hover {
  color: #ff2020 !important;
  text-decoration-color: #ff2020 !important;
}

/* a2) Ссылки внутри текста с классом pk-link (статьи Poradnik: <p class="pk-p">…<a class="pk-link">).
   Правило a) их исключает (:not(.pk-link)), а локальное `.pk-link{color:#ff2020}` в статье красит их красным.
   Здесь только ссылки внутри p, li, .kda-p, .pk-p. Отдельно стоящие a.pk-link (чипы, ряды кнопок) не трогаем. */
html body p a.pk-link,
html body li a.pk-link,
html body .kda-p a,
html body .pk-p a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-decoration-color: rgba(255,255,255,.35) !important;
  text-underline-offset: 3px !important;
}
html body p a.pk-link:hover,
html body li a.pk-link:hover,
html body .kda-p a:hover,
html body .pk-p a:hover {
  color: #ff2020 !important;
  text-decoration-color: #ff2020 !important;
}

/* b) Карточки услуг: фото (::before с отрицательными отступами) не вылезает за рамку карточки. */
html body .grid-2-services > .cell {
  overflow: hidden;
  text-align: left;
}

/* c) Плитки без фото: заголовок и цена по левому краю, цена сразу под заголовком, кнопка внизу карточки. */
html body .grid-2-services .kd-tile-price {
  text-align: left !important;
  align-self: flex-start !important;
  margin-top: 8px !important;
}
.grid-2-services .card-post-cta {
  margin-top: auto !important;
  padding-top: 14px;
}

/* d) Блок «Sprawdź ceny albo zacznij od poradnika»: сетка карточек на всю ширину контейнера, 3 колонки от 992px.
   Отступ 24px до ряда кнопок — только там, где ряд кнопок стоит сразу за сеткой (pl/services.html).
   На index.html ряд кнопок отделён другой секцией, правило там ничего не меняет. */
html body .pk-heat > .pk-wrap > .pk-grid3 {
  width: 100%;
}
@media (min-width: 992px) {
  html body .pk-heat > .pk-wrap > .pk-grid3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
html body .pk-grid3 + .pk-cta-row {
  margin-top: 24px;
}

/* e) «Czytaj dalej» (details.c2-more > summary): один вид — таблетка как на wash.html.
   Раньше на pranie/ozonowanie/about summary был подчёркнутым текстом, на wash — таблеткой.
   Локальные правила страниц могут остаться: здесь !important, и они перебиваются. */
html body details.c2-more > summary {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 44px !important;
  padding: 0 16px !important;
  border: 1px solid #3a3a40 !important;
  border-radius: 999px !important;
  background: #141416 !important;
  color: #f2f0ec !important;
  font: 700 14px/1.2 Montserrat, sans-serif !important;
  text-decoration: none !important;
  text-shadow: none !important;
  list-style: none;
  cursor: pointer;
}
html body details.c2-more > summary::-webkit-details-marker { display: none; }
html body details.c2-more > summary::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .15s;
}
html body details.c2-more[open] > summary::after { transform: rotate(225deg) translateY(-1px); }
html body details.c2-more > summary:hover { border-color: #e6032a !important; }
html body details.c2-more[open] > summary { margin-bottom: 14px !important; }

/* f) Плашка .krk-vrezka: её вставляет site-analytics.js inline-стилями (max-width 640px, по центру, тёмный фон).
   Выравниваем по левому краю контейнера контента, карточка как у c2-карточек. !important нужен: перебиваем inline-стиль. */
html body .krk-vrezka {
  box-sizing: border-box !important;
  max-width: 1140px !important;
  margin: 28px auto !important;
  padding: 22px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  background: rgba(16,17,21,.86) !important;
  text-align: left !important;
}
/* На телефоне плашка на всю ширину экрана без полей: боковые поля 16px, как у текста c2-wrap/pk-wrap. */
@media (max-width: 767px) {
  html body .krk-vrezka {
    max-width: none !important;
    margin: 24px 16px !important;
  }
}

/* g) Фото в статьях Poradnik. Портретные кадры 720×1078 растягивались на всю высоту экрана.
   Общее правило: figure 720px по центру, кадр 4:3 с обрезкой (как в pl/ceramika-czy-warto.html), подпись мелким курсивом.
   Область: только польские статьи (html[lang^="pl"]) с inline-стилем у figure (в статьях он есть, на услугах figure.kda-fig без style).
   НЕ убирать атрибут [style] из селектора: без него правило зацепит pl/services/*, где фото уже нормальные.
   !important нужен: перебиваем inline-стили figure/img прямо в статьях (inline править нельзя — статьи не трогаем). */
html[lang^="pl"] body figure.kda-fig[style],
html[lang^="pl"] body figure.kda-fig:has(> img[src*="/images/poradnik/"]) {
  max-width: 720px !important;
  margin: 26px auto 30px !important;
}
html[lang^="pl"] body figure.kda-fig[style] img,
html[lang^="pl"] body figure.kda-fig:has(> img[src*="/images/poradnik/"]) img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 14px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
}
html[lang^="pl"] body figure.kda-fig[style] figcaption,
html[lang^="pl"] body figure.kda-fig:has(> img[src*="/images/poradnik/"]) figcaption {
  font-size: 13px !important;
  font-style: italic !important;
  line-height: 1.5 !important;
  margin-top: 9px !important;
}

/* h) Сетки из 6 карточек (pk-grid3) и 7-я карточка, вынесенная под сетку (ppf-czy-powloka-ceramiczna, zwrot-leasingu-tabela). */
/* Сетка ровно из 4 карточек на ≥992px: 2×2 вместо 3+1 с дыркой (аудит, класс 3). Текст не меняется. */
@media (min-width: 992px) {
  html body .pk-grid3:has(> :nth-child(4):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
html body .pk-grid3 + .pk-feat,
html body .pk-grid3 + .pk-card {
  margin-top: 14px;
  margin-bottom: 24px;
  /* 7-я карточка идёт текстом под сеткой, а не плиткой: без фона, рамки и отступов. */
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* i) Блок «Ile trwa usługa u nas» (wolne-terminy): две полосы с подзаголовком h3 между ними.
   Полоса из 3 ячеек — на десктопе 3 колонки, иначе 4-я колонка пустая дыркой. На телефоне базовая сетка 1fr 1fr. */
html body .pk-spec-sub {
  font-size: 18px;
  line-height: 1.3;
  margin: 26px 0 12px;
}
@media (min-width: 768px) {
  html body .pk-spec-strip.pk-spec-strip-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* j) polityka-prywatnosci.html: оглавление и ссылки в тексте — не красные (правило a), подчёркивание тонкое.
   Класс .wrap есть только на этой странице, поэтому область узкая. Кнопок на странице нет. */
html body .wrap a {
  color: inherit !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-decoration-color: rgba(255,255,255,.35) !important;
  text-underline-offset: 3px !important;
}
html body .wrap a:hover {
  color: #ff2020 !important;
  text-decoration-color: #ff2020 !important;
}

/* k) Фоновое видео первого экрана на телефоне (≤767px). Жалоба владельца 23.10.2026: «слишком сильно затемнено, не видно видео».
   Что темнило: главная — #Home::after до 70% (.45→.7) поверх видео; PPF/мойка/хим-чистка — карточка .c2-wrap
   непрозрачная rgba(10,10,10,.86), на 390px она занимает почти весь экран, и .kd-c2-video стоит на .45.
   Здесь: оверлей не темнее .35 (солидный низ только в последних 15%, это переход в следующую секцию);
   карточка полупрозрачная с blur; видео не прячем (display:none только в prefers-reduced-motion, в инлайне страниц).
   Десктоп не трогаем. НЕ поднимать оверлей обратно «для читаемости»: читаемость держат text-shadow ниже. */
@media (max-width: 767px) {
  html body #Home::after {
    background: linear-gradient(180deg, rgba(8,8,10,.2) 0%, rgba(8,8,10,.35) 85%, #0a0a0a 100%) !important;
  }
  html body .kd-c2-video {
    opacity: .75 !important;
  }
  /* Как на главной: текст сидит прямо на видео, без карточки. Поля 16px задаёт сам hero (как #Home). */
  html body .c2-hero {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  html body .c2-hero > .c2-wrap {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Полоса цифр в hero — полупрозрачная панель, как карточки на главной. */
  html body .c2-hero .c2-slab {
    background-color: rgba(10,10,12,.55) !important;
  }
  /* Текст первого экрана поверх видео: заголовок, лид, цифры-подписи. Без тени на светлом кадре буквы сливаются. */
  html body .c2-hero :is(h1, .c2-h1, .c2-lead, .c2-num, .kd-cap-m),
  html body .section.hero :is(h1, .hero-heading, .c2-num, .kd-cap-m) {
    text-shadow: 0 1px 8px rgba(0,0,0,.7) !important;
  }
}

/* l) Голые плитки в сетках (kd-zk/kd-oz/kd-tw/kd-dc и stack-варианты): карточка эталона pk-feat.
   Было: плоские прямоугольники без рамки и скругления на фоне секции. Ячейки c2-slab (полоса цифр) сюда не входят: у них свой стиль.
   У .c2-mini отступы даёт внутренний .c2-mini-body (22px), поэтому у самой карточки padding 0. Колонки сетки задают сами классы, здесь только gap и мобильная 1 колонка. */
html body :is(.kd-zk-grid,.kd-oz-grid,.kd-tw-grid,.kd-dc-grid,.kd-zk-stack,.kd-tw-stack,.kd-dc-stack) > :is(.c2-mini,.c2-q,.c2-step,.c2-tier,.c2-warn) {
  box-sizing: border-box !important;
  background-color: rgba(16,17,21,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}
html body :is(.kd-zk-grid,.kd-oz-grid,.kd-tw-grid,.kd-dc-grid,.kd-zk-stack,.kd-tw-stack,.kd-dc-stack) > :is(.c2-q,.c2-step,.c2-tier,.c2-warn) {
  padding: 22px !important;
}
html body :is(.kd-zk-grid,.kd-oz-grid,.kd-tw-grid,.kd-dc-grid,.kd-zk-stack,.kd-tw-stack,.kd-dc-stack) > .c2-mini {
  padding: 0 !important;
}
html body :is(.kd-zk-grid,.kd-oz-grid,.kd-tw-grid,.kd-dc-grid) {
  width: 100%;
  gap: 16px !important;
}
@media (max-width: 767px) {
  html body :is(.kd-zk-grid,.kd-oz-grid,.kd-tw-grid,.kd-dc-grid) {
    grid-template-columns: minmax(0,1fr) !important;
  }
}

/* m) Перечисление из 3–6 пунктов (ul.c2-ul прямо в секции): каждый пункт — карточка эталона с красной галочкой ✓.
   Текст пункта не меняется. Раскладка: 3 колонки от 992px; 4 и 2 пункта — 2 колонки (2×2, без дыры); 5 — 3+2, последний на 2 колонки.
   На телефоне и планшете 1 колонка. Правило из class c2-li-b (тонкая полоска слева) здесь перебиваем. */
html body .c2-sec > .c2-wrap > ul.c2-ul {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 16px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 20px 0 0 !important;
  width: 100%;
}
html body .c2-sec > .c2-wrap > ul.c2-ul > li {
  position: relative !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  /* круг 3, п.5: отступ слева 44px (галочка на 22px, текст не налезает на неё) */
  padding: 22px 22px 22px 44px !important;
  background-color: rgba(16,17,21,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  list-style: none !important;
  color: #dcdcdc;
}
html body .c2-sec > .c2-wrap > ul.c2-ul > li::before {
  content: "✓" !important;
  position: absolute !important;
  left: 22px !important;
  top: 20px !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  color: #e6032a !important;
  font: 700 17px/1.4 Montserrat, sans-serif !important;
}
@media (min-width: 992px) {
  html body .c2-sec > .c2-wrap > ul.c2-ul {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  }
  html body .c2-sec > .c2-wrap > ul.c2-ul:has(> li:nth-child(4):last-child),
  html body .c2-sec > .c2-wrap > ul.c2-ul:has(> li:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
  html body .c2-sec > .c2-wrap > ul.c2-ul:has(> li:nth-child(5):last-child) > li:last-child {
    grid-column: span 2;
  }
}

/* n) Абзацы секции без карточек (h2 + 1–3 абзаца): обёртка .kd-tile-box (вставлена в html) — карточка эталона на всю ширину. Кнопки под карточкой с отступом 20px. */
html body .kd-tile-box {
  box-sizing: border-box;
  width: 100%;
  padding: 22px;
  background-color: rgba(16,17,21,.86);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
}
html body .kd-tile-box > p:last-child {
  margin-bottom: 0 !important;
}
html body .kd-tile-box + .c2-ctarow {
  margin-top: 20px !important;
}

/* kd-perf: content-visibility — секции ниже первого экрана не рисуются до прокрутки. Секции с якорями (#kd-form и т.п.) исключены, иначе переход по ссылке не доезжает до них. Круг 3, п.17: этот текст раньше стоял после закрывающей звёздочки комментария и ломал правило. */
.c2-sec:not(:first-of-type):not(#a_h):not(#adm):not(#ai):not(#bezp):not(#cele):not(#contacts-land):not(#cookies):not(#dobrowolnosc):not(#email-form):not(#eog):not(#formularz):not(#jakie):not(#kd-czego-nie-zrobi):not(#kd-demo-row-5):not(#kd-form):not(#kd-form-v2):not(#kd-form-v3):not(#kdt-app):not(#marketing):not(#meta):not(#odbiorcy):not(#pakiety):not(#prawa):not(#skad):not(#wycena):not(#zdjecia):not(#zmiany):not(:has(#a_h,#adm,#ai,#bezp,#cele,#contacts-land,#cookies,#dobrowolnosc,#email-form,#eog,#formularz,#jakie,#kd-czego-nie-zrobi,#kd-demo-row-5,#kd-form,#kd-form-v2,#kd-form-v3,#kdt-app,#marketing,#meta,#odbiorcy,#pakiety,#prawa,#skad,#wycena,#zdjecia,#zmiany)),.pk-sec:not(#a_h):not(#adm):not(#ai):not(#bezp):not(#cele):not(#contacts-land):not(#cookies):not(#dobrowolnosc):not(#email-form):not(#eog):not(#formularz):not(#jakie):not(#kd-czego-nie-zrobi):not(#kd-demo-row-5):not(#kd-form):not(#kd-form-v2):not(#kd-form-v3):not(#kdt-app):not(#marketing):not(#meta):not(#odbiorcy):not(#pakiety):not(#prawa):not(#skad):not(#wycena):not(#zdjecia):not(#zmiany):not(:has(#a_h,#adm,#ai,#bezp,#cele,#contacts-land,#cookies,#dobrowolnosc,#email-form,#eog,#formularz,#jakie,#kd-czego-nie-zrobi,#kd-demo-row-5,#kd-form,#kd-form-v2,#kd-form-v3,#kdt-app,#marketing,#meta,#odbiorcy,#pakiety,#prawa,#skad,#wycena,#zdjecia,#zmiany)){content-visibility:auto;contain-intrinsic-size:auto 800px}

/* ===== ФАЗА 1 — правки ревью 25.10.2026 (общие классы, одним правилом) =====
   Здесь только общие правила; страничные правила не трогаем. Префикс html body и !important — перебивают Webflow и локальные стили страниц. */

/* 1) brutto-строка под ценой (kd-netto.js): без серой пилюли, строкой мелким серым; не переносится. */
html body .kd-vat {
  display: block !important;
  background: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  color: #8a8a8a !important;
  margin: 2px 0 0 !important;
  text-align: inherit !important;
  white-space: nowrap !important;
}
html body .kd-vat-inl,
html body .c2-tier-price,
html body .c2-num { white-space: nowrap !important; }
/* «netto» рядом с крупной ценой: не меньше 11px (раньше ~8–9px, не читалось), серый, без прозрачности */
html body .kd-net {
  font-size: max(11px, .5em) !important;
  color: #a3a3a3 !important;
  opacity: 1 !important;
  margin-left: .3em !important;
}

/* 2) Шрифт заголовков: на folia-ppf и wash inline-правило body *{Open Sans} перебивало заголовки. Тот же шрифт, что у керамики (Montserrat). */
html body :is(h1, h2, h3, .c2-h1, .c2-h2, .c2-h3, .c2-cellh, .c2-mini-title, .c2-tier-price, .pk-h1, .pk-h2) {
  font-family: Montserrat, sans-serif !important;
}

/* 3) Финальный заголовок «Skontaktuj się…» (.heading-11): как заголовок секции — жирный, влево, по ширине контейнера. */
html body #contacts12 .heading-11 {
  font-family: Montserrat, sans-serif !important;
  font-weight: 700 !important;
  text-align: left !important;
  font-size: clamp(26px, 3.2vw, 36px) !important;
  line-height: 1.2 !important;
  max-width: 1140px;
}

/* 4) Красный не на кнопках: подпись и продукт в плитках цен — светло-серый. */
html body :is(.c2-tier-prod, .c2-tier-sub) { color: #cfcfcf !important; }

/* 5) Крошки: без отступа слева (сдвиг 20px и перенос с «/» на мобильном). Последний пункт не переносится, длинный — с многоточием. */
html body .kd-bc { padding-left: 0 !important; margin-left: 0 !important; }
html body .kd-bc li { white-space: nowrap; }
html body .kd-bc li[aria-current="page"] {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 6) Ссылки внутри текста не раздвигают строки (line-height и padding как у текста). Кнопки ([class*="btn"]) не трогаем. */
html body :is(.c2-sec, .pk-sec, .c2-hero, .pk-wrap) :is(p, .pk-p, .c2-p) a:not([class*="btn"]) {
  line-height: inherit !important;
  padding: 0 !important;
  font-weight: inherit !important;
}

/* 7) Кнопки в нижнем CTA-блоке (телефон и т.п.): одна высота, текст по центру. */
html body .c2-cta .c2-ctarow > a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 0 30px !important;
  line-height: 1.2 !important;
  box-sizing: border-box !important;
}

/* 8) Мобильный левый край: 16px у всех контейнеров (раньше 16/24/32 вперемешку). Hero-обёртка задаётся правилом k) в kd-edinyj. */
@media (max-width: 767px) {
  html body :is(.c2-wrap, .pk-wrap) {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  html body #contacts12 .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* 9) Подпись плиток hero (.c2-cap) на телефоне видна: без неё плитки непонятны (window-tinting, pranie, ozonowanie). */
html body .c2-hero .c2-cap { display: block !important; }

/* 10) Карточки в колонке: кнопка/ссылка прижата к низу, одинаковый «низ» в ряду. */
html body :is(.pk-card, .cell, .c2-card, .c2-mini, .fixd-card) {
  display: flex !important;
  flex-direction: column;
}
html body :is(.pk-card, .cell, .c2-card, .c2-mini, .fixd-card) > :is(.pk-btn, .pk-cta, .c2-btn, .c2-btn2, .card-post-cta, a.pk-link) {
  margin-top: auto !important;
}

/* 11) Абзац сразу после сетки карточек или ряда кнопок — с отступом 16px, не прилипает. */
html body :is(.pk-grid, .pk-grid3, .c2-g2, .c2-g3, .c2-g4, .c2-slab, .c2-ctarow, .pk-cta-row) + :is(p, .pk-p, .c2-p) {
  margin-top: 16px !important;
}

/* 12) Таблицы на телефоне → карточки (правило из korekta-lakieru, вынесено в общее). На desk таблица как есть. */
@media (max-width: 767px) {
  html body .c2-tablewrap { overflow: visible !important; }
  html body .c2-tablewrap table,
  html body .c2-tablewrap tbody,
  html body .c2-tablewrap tr,
  html body .c2-tablewrap td {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  html body .c2-tablewrap thead { display: none !important; }
  html body .c2-tablewrap tr {
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    padding: 10px 14px;
    margin: 0 0 12px;
    background: rgba(255,255,255,.03);
  }
  html body .c2-tablewrap td {
    display: flex !important;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    border: 0 !important;
    padding: 6px 0 !important;
    text-align: right !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  html body .c2-tablewrap td::before {
    content: attr(data-label);
    color: #9a9a9a;
    font-size: 13px;
    text-align: left;
    flex: 0 0 auto;
    max-width: 48%;
  }
  html body .c2-tablewrap td:first-child {
    font-weight: 700;
    font-size: 16px;
    justify-content: flex-start;
    text-align: left !important;
  }
  html body .c2-tablewrap td:first-child::before { content: none; }
}

/* 13) Блок «Fixd» на телефоне: отступ 16px, как у всего текста. */
@media (max-width: 767px) {
  html body .fixd-sec .pk-wrap { padding-left: 16px !important; padding-right: 16px !important; }
}

/* 14) Список «Przydatne linki» не сдвинут: без полей и без отступа слева. */
html body .pk-clu-list { margin: 0 !important; padding: 0 !important; max-width: none !important; }

/* 15) Список «Co obejmuje / lease» — галочки вместо точек, рамка как у карточек; на desk 2 колонки. */
html body .pk-lease-list {
  list-style: none !important;
  margin: 16px 0 0 !important;
  padding: 18px 22px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  background: rgba(16,17,21,.86) !important;
}
html body .pk-lease-list > li {
  position: relative;
  padding: 6px 0 6px 26px;
  list-style: none !important;
}
html body .pk-lease-list > li::marker { content: "" !important; }
html body .pk-lease-list > li::before {
  content: "\2713" !important;
  position: absolute;
  left: 0;
  top: 5px;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border-radius: 0 !important;
  color: #e6032a;
  font-weight: 700;
}
@media (min-width: 992px) {
  html body .pk-lease-list {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 4px 28px;
  }
}

/* 16) Полоса доверия (trustbar): текст по центру. */
html body .pk-trustbar, html body .pk-trust { text-align: center !important; }

/* 17) Подписи радио-кнопок (варианты пакетов в форме): перенос разрешён, не вылезают за рамку. */
html body .radio-button-label { white-space: normal !important; max-width: 100%; box-sizing: border-box; }

/* 18) Контакт-блок внизу (Webflow, на всех страницах) — в стиле карточек c2: фон, рамка, радиус 14. */
html body #contacts12 .cont_left .bl_14,
html body #contacts12 .cont_button {
  background: rgba(16,17,21,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  padding: 16px 18px !important;
  box-sizing: border-box;
}
/* подписи (ADRES, NIP, NUMER, часы) — без капса, мелко и серо, как в остальных подписях */
html body #contacts12 .text-block-23 {
  text-transform: none !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  color: #9a9a9a !important;
}
/* поля формы: рамка и скругление 10px, без красной кромки */
html body #contacts12 input.text-field,
html body #contacts12 input.phone {
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 10px !important;
  background: #0f0f12 !important;
}
/* красная кромка формы — это border-left у колонки формы (.grid-item._50), не у .form-block */
html body #contacts12 .form-block,
html body #contacts12 .grid-item._50 {
  border-left: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 767px) {
  html body #contacts12 .cont_top { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 12px; }
  html body #contacts12 .cont_top .bl_14 { width: 100% !important; }
}

/* 19) Заглушка карты до загрузки: фон как у карточек, высота не схлопывается (ленивый iframe). */
html body iframe.kd-map-dark { min-height: 320px; background: #141416; display: block; }

/* 20) Плавающая WhatsApp-кнопка (вставляет whatsappstickytrackv2).
   WhatsApp виден сразу, как на бою: канал заявки с первого экрана (ревью заявок 25.10). */
/* Кнопка создаётся только на телефоне (whatsappstickytrackv2). Высоту над липкой панелью задаёт сам скрипт (inline bottom) — здесь не переопределяем. */
/* липкая панель записи — после прокрутки (kd-scrolled от kd-ui.js), чтобы не закрывать CTA первого экрана */
html.kd-js body:not(.kd-scrolled) .pk-sticky { display: none !important; }

/* 21) FAQ-аккордеон (kd-ui.js ставит класс kd-faq на вопрос с ответом; класс kd-open — раскрыт).
   Единый вид: карточка на всю ширину, одна колонка, стрелка справа. Без JS (класса kd-js на html нет) — ответы раскрыты. */
html body .c2-slab:has(> .kd-faq) { grid-template-columns: minmax(0, 1fr) !important; }
html body .kd-faq {
  background: rgba(16,17,21,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  padding: 18px 22px !important;
  margin: 0 !important;
  box-sizing: border-box;
  width: 100%;
}
html body .kd-faq > :is(.c2-q-t, .pk-q) {
  position: relative;
  margin: 0 !important;
  padding-right: 34px !important;
  cursor: pointer;
  user-select: none;
}
html body .kd-faq > :is(.c2-q-t, .pk-q)::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 2px solid #e6032a;
  border-bottom: 2px solid #e6032a;
  transform: translateY(-70%) rotate(45deg);
  transition: transform .15s;
}
html body .kd-faq.kd-open > :is(.c2-q-t, .pk-q)::after { transform: translateY(-30%) rotate(225deg); }
html.kd-js body .kd-faq:not(.kd-open) > :not(.c2-q-t):not(.pk-q) { display: none !important; }
html.kd-js body .kd-faq.kd-open > :not(.c2-q-t):not(.pk-q) { margin-top: 10px !important; }
/* Страховка к kd-ui.js: текстовую стрелку ▾/▸ трекера site-analytics (span с inline opacity в h3) прячем, если она всё же появится.
   Рисуем одну стрелку — ::after выше. kd-ui.js ставит трекеру метку __krkAcc, так что обычно span не возникает. */
html body .kd-faq > :is(.c2-q-t, .pk-q) > span[style*="opacity"] { display: none !important; }

/* 22) Гекс-фон на всю высоту страницы — см. страничные правила; здесь не меняется. */

/* 23) Шапка на телефоне (≤479): адрес скрыт (он есть в футере и контакт-блоке), телефон в одну строку. */
@media (max-width: 479px) {
  html body .div-block-8-copy > a.link-block-2-copy { display: none !important; }
}
html body .div-block-8-copy a.link-block-2,
html body .div-block-8-copy .text-block-13-1copy { white-space: nowrap !important; }

/* ===== КРУГ 3 (25.10.2026), Часть 1: общие правки CSS. Пункты — по BRIEF-SHARED.md, Часть 1.
   Префикс html body и !important — как в остальном файле. Новые правила ниже старых, поэтому выигрывают при равной специфичности. */

/* п.2 — сетки с FAQ-аккордеоном или с блоком data-kd-faq="off": карточки не растягиваются до высоты соседней, пустоты в коробке нет. */
html body :is(.c2-g2,.c2-g3,.c2-g4,.c2-slab,.pk-grid,.pk-grid3,.kd-zk-grid,.kd-oz-grid,.kd-tw-grid,.kd-dc-grid,.kd-zk-stack,.kd-tw-stack,.kd-dc-stack):has(.kd-faq, [data-kd-faq="off"]) {
  align-items: start !important;
}

/* п.3 — контакт-блок #contacts12 (все страницы): одна рамка на весь блок, внутренние карточки без рамки.
   Раньше рамка была на каждой карточке (три bl_14 и cont_button) — отсюда «тройная рамка». */
html body #contacts12 .cont_left {
  box-sizing: border-box !important;
  background: rgba(16,17,21,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  padding: 18px !important;
  box-shadow: none !important;
}
html body #contacts12 .cont_left .bl_14,
html body #contacts12 .cont_button {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
/* карточка контакта: иконка и текст в ряд, одна высота плиток в ряду */
html body #contacts12 .cont_top { align-items: stretch !important; }
html body #contacts12 .cont_left .bl_14 {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  height: 100%;
  text-align: left !important;
}
/* «Godziny otwarcia»: без пустого места снизу, по верхнему краю (не тянется до высоты формы) */
html body #contacts12 .cont_button {
  min-height: 0 !important;
  height: auto !important;
  align-self: flex-start !important;
}
/* поля формы: текст не прилипает к левому краю */
html body #contacts12 input.text-field,
html body #contacts12 input.phone { padding: 0 16px !important; }
/* кнопка формы — как .c2-btn (15px / 700), перенос разрешён; на телефоне на всю ширину */
html body #contacts12 input.submit-button-2 {
  font-size: 15px !important;
  font-weight: 700 !important;
  white-space: normal !important;
  padding-left: 30px !important;
  padding-right: 30px !important;
}
/* чекбокс согласия — к левому краю; spacer перед ним (32px) не даёт большого отступа */
html body #contacts12 .form-block .spacer { height: 0 !important; margin: 0 !important; }
html body #contacts12 label.w-checkbox {
  margin: 8px 0 0 0 !important;
  padding: 0 !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
}
html body #contacts12 label.w-checkbox .w-checkbox-input { margin-left: 0 !important; }
/* Webflow ставит псевдоэлементы :before/:after у .w-checkbox как флекс-элементы: они сдвигают галочку на ~12px вправо */
html body #contacts12 label.w-checkbox::before,
html body #contacts12 label.w-checkbox::after { content: none !important; display: none !important; }
/* форма: одна рамка (внешняя .form_button), внутренние .grid-item._50 и .form-block без рамки и отступов (раньше две рамки в рамке и отступ 22px внутри каждой).
   Высота по содержимому: без пустоты под кнопкой (колонка тянулась до высоты соседней, отсюда пустое место под кнопкой). */
html body #contacts12 .form_button {
  background: rgba(16,17,21,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  padding: 22px !important;
  height: auto !important;
  box-shadow: none !important;
}
html body #contacts12 .grid-item._50,
html body #contacts12 .form-block {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  height: auto !important;
  align-self: start !important;
}
/* список городов в «Skontaktuj się…» — один стиль на всех страницах: серый, без подчёркивания */
html body #contacts12 .contacts-text-wrapper p a {
  color: #a9a9a9 !important;
  text-decoration: none !important;
}
@media (max-width: 767px) {
  html body #contacts12 input.submit-button-2 { width: 100% !important; }
}

/* п.6 — мобильный левый край 16px: отступы секции (.c2-sec, 24px) не складываются с .c2-wrap (16px) → текст был на 40px.
   Горизонтальный отступ секции на телефоне снимаем, поля задаёт .c2-wrap. */
@media (max-width: 767px) {
  html body .c2-sec { padding-left: 0 !important; padding-right: 0 !important; }
  /* крошки на телефоне: на линии 16px (правило 5 обнуляет padding, без этого на cennik строка уходила к краю 0) */
  html body .kd-bc { padding-left: 16px !important; padding-right: 16px !important; }
}

/* п.4 — карта: тёмный фон и рамка блока как у карточек; iframe без светлой заливки (после инверсии фильтра заливка становилась светлой плитой). Высота заглушки = высоте iframe (450px, атрибут height). */
html body .code-embed:has(> .kd-map-ph),
html body .kd-map-host {
  background: #101115 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 14px !important;
  overflow: hidden;
  min-height: 0 !important;
}
html body .code-embed:has(> .kd-map-ph) .kd-map-ph { height: 450px !important; }
html body iframe.kd-map-dark {
  background: transparent !important;
  height: 450px !important;
  min-height: 450px !important;
  width: 100%;
}

/* п.7 — крошки: разделитель «/» с одинаковыми отступами, [aria-current] того же размера, что и остальные пункты. */
html body .kd-bc li { gap: 0 !important; }
html body .kd-bc li + li::before { content: "/" !important; margin: 0 6px; color: #6b6b6b; }
html body .kd-bc [aria-current] { font-size: inherit !important; font-weight: inherit !important; }

/* п.8 — подпись плиток hero: на desk видна длинная (без kd-cap-m), на телефоне короткая (kd-cap-m), длинная прячется. */
@media (min-width: 768px) {
  html body .c2-hero .c2-cap.kd-cap-m { display: none !important; }
}
@media (max-width: 767px) {
  html body .c2-hero .c2-cap:not(.kd-cap-m) { display: none !important; }
}

/* п.9 — плавающие элементы. Трекер px.js вставляет #krk-sticky («Wyceń auto online / Zadzwoń»), это измеряемая кнопка заявки.
   Когда она есть, шаблонная .pk-sticky скрыта, а кнопка WhatsApp поднята над ней (inline bottom из kd-ui/px не переопределяем вручную, здесь !important). */
html body:has(#krk-sticky) .pk-sticky { display: none !important; }
html body:has(#krk-sticky) a[aria-label="WhatsApp"] { bottom: calc(84px + env(safe-area-inset-bottom)) !important; }
/* Webflow-чат на desk: один плавающий элемент (как на pakiety: html body .chat-icon, .w-webflow-badge — правило там же). Обобщено на страницы с плавающей панелью. */
@media (min-width: 768px) {
  html body:has(#krk-sticky, .pk-sticky) .chat-icon,
  html body:has(#krk-sticky, .pk-sticky) .w-webflow-badge { display: none !important; }
}

/* п.10 — видео-кнопка в hero: внутри карточки, отступ 16px от края. */
html body #kd-hero-vidbtn { top: 16px !important; right: 16px !important; }

/* п.11 — «Szczegóły ▾» в тарифах: светло-серый, как подписи (#cfcfcf), не красный. Пилюля «Nie wiesz, PPF czy powłoka…»: строчный блок, без подчёркивания. */
html body .c2-tier-summary { color: #cfcfcf !important; }
html body .kd-vs-link .kd-chip {
  display: inline-block !important;
  padding: 8px 14px !important;
  text-decoration: none !important;
}

/* п.12 — таблицы на телефоне: без рамки обёртки (строки уже карточки с рамкой). */
@media (max-width: 767px) {
  html body .c2-tablewrap {
    border: 0 !important;
    background: none !important;
    padding: 0 !important;
  }
}

/* п.14 — подвал (контакт-страница): телефон и адрес в строку с иконкой, разделитель приглушён, ссылки на телефоне сеткой 2 колонки, пустая полоса снизу убрана. */
html body footer#contacts-land hr {
  border: 0 !important;
  height: 1px !important;
  background: rgba(255,255,255,.08) !important;
}
html body footer#contacts-land .div-block-8-copy-copy-copy > a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
html body footer#contacts-land .footer-bottom-wrapper:not(:has(a)) { display: none !important; }
@media (max-width: 767px) {
  html body footer#contacts-land .links-container {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px 12px !important;
  }
}

/* п.15 — hero без постера (folia-ppf-krakow, wash, korekta-lakieru): фон-постер под видео. Видео уже несёт тот же poster, фон держит кадр, пока видео не загрузилось. */
html body .c2-hero:has(video[poster*="fon-2026-10-poster"]) {
  background-image: url("/images/site-2026-10/fon-2026-10-poster.webp") !important;
  background-size: cover !important;
  background-position: center !important;
}

/* п.18 — «Opinie klientów» на телефоне: ответ обрезан 6 строками, кнопка «Czytaj dalej» добавляет kd-ui.js. Без JS (нет класса kd-js) текст полный. */
@media (max-width: 767px) {
  html.kd-js section#opinie .c2-q-a:not(.kd-clamp-open) {
    display: -webkit-box !important;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  html.kd-js body .kd-clamp-btn {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 8px;
    padding: 0 16px;
    border: 1px solid #3a3a40;
    border-radius: 999px;
    background: #141416;
    color: #f2f0ec;
    font: 700 14px/1.2 Montserrat, sans-serif;
    cursor: pointer;
  }
}
html body .kd-clamp-btn { display: none; }
@media (max-width: 767px) {
  html.kd-js body .kd-clamp-btn { display: inline-flex; }
}

/* Круг 3: p.pk-card-name выглядит как прежний h3 (SEO: h3 карточек заменены на p) */
html body p.pk-card-name {
  font-family: Montserrat, sans-serif !important; /* нужен !important и html body: инлайн-правило html body :not(...) с !important ставит Open Sans на все p, его специфичность (0,1,2) выше голого p.pk-card-name (0,1,1) */
  font-size: 17px;
  font-weight: 700;
  line-height: 22.1px;
  letter-spacing: normal;
  color: #fff;
  margin-top: 0;
  margin-bottom: 6px;
  text-transform: none;
}

/* Круг 4: крошки на телефоне — ol и li тоже без отступа, иначе текст сдвинут на 16px правее h1 (folia-ppf-krakow, mob-fold). */
@media (max-width: 767px) {
  html body .kd-bc ol, html body .kd-bc li { padding-left: 0 !important; margin-left: 0 !important; }
}

/* Круг 4: крошки статьи на десктопе — в контейнер 1140, как тело страницы. */
@media (min-width: 768px) {
  html body .page-wrapper > .kd-bc { max-width: 1140px !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
}

/* Круг 4: главная на телефоне — секции Services и about: текст с левым краем 16px (был у x=0). */
@media (max-width: 767px) {
  html body #Services, html body #about._4 .container { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Круг 4: плашка-номер на карточках (pk-choice-tag) не нужна. */
html body .pk-choice-tag { display: none !important; }

/* Круг 4: кнопка «Czytaj dalej» (cennik, мобильный клэмп) — отступ снизу 12px. */
html body .kd-clamp-btn { margin-bottom: 12px; }

/* Круг 4: строки под CTA (.pk-trust) — по левому краю, везде. */
html body .pk-trust { text-align: left !important; }

/* Круг 4: «więcej informacji» в плитках услуг — отступ сверху 8px (правило margin auto у CTA не трогаем, только padding). */
html body .grid-2-services .card-post-cta { padding-top: 8px !important; }

/* Круг 4: плитки услуг — цена kd-tile-p: как крупная цена (.kd-tile-price), вынесена из h3 в отдельный span. */
html body .grid-2-services .kd-tile-p { display: block !important; margin-top: 6px !important; font-size: 15px !important; font-weight: 700 !important; color: #ff2020 !important; text-shadow: none !important; }

/* Круг 4: сетки карточек 2-в-3 и 3+2 (2 или 5 детей) — две колонки, а не пустое место в третьей. */
html body .pk-grid3:has(> :nth-child(2):last-child),
html body .pk-grid3:has(> :nth-child(5):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

/* Круг 4: «Sprawdź szczegóły / Powiązane tematy» — карточки по верху (высоты не разъезжаются), фото убрано у средней. */
html body .pk-grid3 { align-items: start; }
html body .pk-grid3 > .pk-choice:nth-child(2)::before { display: none !important; }

/* Круг 4: подвал — строка с ©/NIP видна (правило «пустой блок скрыт» её не трогает). */
html body footer#contacts-land .footer-bottom-wrapper:has(.kd-copy) { display: block !important; }
html body footer#contacts-land .kd-copy { margin: 0; padding: 16px 0 0; color: #7a7a80; font-size: 13px; line-height: 1.5; }

/* Круг 4: контакт-блок — часы в ряд «день … часы» с промежутком 16px (иначе слипалось «piątek9:00»). */
html body #contacts12 .div-block-11 { display: flex !important; justify-content: space-between !important; gap: 16px !important; }
/* Круг 4: NIP без иконки — текст с тем же отступом, что у адреса и телефона (иконка 25 + gap 10). */
html body #contacts12 .cont_left .bl_14:not(:has(> img)) { padding-left: 35px !important; }
/* Круг 4: подпись чекбокса — отступ снизу 12px. */
html body #contacts12 label.w-checkbox { margin-bottom: 12px !important; }
/* Круг 4: на телефоне у контакт-блока нет свечения (тени и псевдоэлементы секции убраны). */
@media (max-width: 767px) {
  html body #contacts12 .form_button, html body #contacts12 .cont_left { box-shadow: none !important; }
  html body #contacts12::before, html body #contacts12::after { display: none !important; }
}

/* Круг 4: чек-лист — маркер кружком 8x8 вместо галочки. */
html body .kda-check li:before { content: "" !important; width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #e6032a !important; top: 0.55em !important; left: 4px !important; font-size: 0 !important; font-weight: 400 !important; }

/* Круг 4б: мобильный левый край 16px. Лишние 16 давали две вещи сразу: инлайн-правило страницы контактов (margin 16 на .c2-hero/.c2-sec > .c2-wrap) и padding секции .pk-sec / героя. Обнуляем обёртку или секцию, поля остаются одни (16 от .c2-wrap/.pk-wrap). Крошки внутри героя своих 16 не добавляют. Не трогать для cennik и главной: там секция без отступа, и обёртка уже даёт 16. */
@media (max-width: 767px) {
  html body .c2-hero > .c2-wrap, html body .c2-sec > .c2-wrap { margin-left: 0 !important; margin-right: 0 !important; }
  /* герой .pk-hero не трогаем: его .pk-wrap — рамка-карточка (border 1px), секция держит её на 16 */
  html body .pk-sec:not(.pk-hero):has(> .pk-wrap) { padding-left: 0 !important; padding-right: 0 !important; }
  html body :is(.c2-hero, .pk-hero) .kd-bc { padding-left: 0 !important; padding-right: 0 !important; }
}
