/* Телефон. Подключается <link media="(max-width:760px)">, style.css не правится.
   Классы страниц — хеши (.s7e047c0), поэтому правила идут по тегам и структуре, а не по хешам. */

.d4 img{max-width:100%;height:auto}
.d4 *{grid-column:auto !important;min-width:0;max-width:100%;overflow-wrap:break-word;white-space:normal !important}
.d4>div:not(:empty),.d4>main>div:not(:empty),.d4 section,.d4 footer{height:auto !important;padding-left:20px !important;padding-right:20px !important}
.d4 section>div:not(:empty),.d4 footer>div:not(:empty){height:auto !important;padding-left:0 !important;padding-right:0 !important}
/* карточки-секции с рамкой (десктопный отступ 48–64 сжимал колонку до 172–180 px): поле страницы 20 */
/* золотые вертикальные линии на полях листа (left/right 96 px) режут текст — на телефоне уходят в поле страницы */
.d4 .s7cf2aa2{left:8px !important}
.d4 .s2dd8086{right:8px !important}
.d4 .sc16b4c0{display:none !important}
/* обёртки рисунков с десктопным выносом за поле (−24 px): поле одно, вынос не нужен */
.d4 :is(.s3552897,.sf4343ed,.s502bd12,.sadd1d17){margin-left:0 !important;margin-right:0 !important}
.d4 section.s10e4559{margin:0 20px 32px !important}
.d4 section.s00ca25a{margin:0 0 32px !important}
.d4 div,.d4 section,.d4 a,.d4 ul{flex-wrap:wrap}

/* герой: текст прижат к низу листа абсолютно — на телефоне идёт потоком под шапкой */
.d4 section:has(>header){min-height:0 !important}
.d4 section:has(>header)>div:has(h1){background:linear-gradient(rgba(8,9,10,.6),rgba(8,9,10,.88))}
.d4 section:has(>header)>div:has(h1),.d4 section:has(>header)>div:last-child:not(:has(svg,img)){position:relative !important;inset:auto !important;padding-top:24px !important;padding-bottom:32px !important}

/* крупные заголовки листа (64–140 px) на телефоне */
.d4 h1,.d4 h2,.d4 h3{font-size:clamp(28px,9vw,40px) !important;line-height:1.1 !important}
.d4 h1 *,.d4 h2 *,.d4 h3 *{font-size:inherit !important}

/* крупные цифры и лид вне заголовков: классы style.css (хеш меняется с правкой правила — переполнение поймает checks/mobile_overflow.py) */
.d4 .s025ef15,.d4 .sa7c3763{font-size:64px !important;line-height:1 !important}
.d4 .s3d150f6,.d4 .s3a9eb5a,.d4 .s4d0b009,.d4 .sd31f802,.d4 .s106ca49{font-size:34px !important;line-height:1.15 !important}

/* ряд из пяти панелей-услуг: на телефоне стопкой, без раскрытия по наведению */
.d4 .strips{flex-direction:column !important}
.d4 .strips .strip,.d4 .strips:hover .strip,.d4 .strips .strip:hover{flex:none !important;height:auto !important;min-height:320px;display:flex !important;flex-direction:column;justify-content:flex-end;border-left:0 !important}
.d4 .strips .strip>.s1157691{position:relative;left:auto;right:auto;bottom:auto;margin:48px 30px 34px}

.d4>div>div:not(:empty),.d4>div>div>div:not(:empty),.d4>main>div>div:not(:empty),.d4>main>div>div>div:not(:empty){padding-left:0 !important;padding-right:0 !important}

/* блоки в одну колонку */
.d4 div,.d4 section,.d4 article,.d4 ul,.d4 form,.d4 footer{grid-template-columns:minmax(0,1fr) !important}

/* шапка: логотип и «Menü»; ряд ссылок и кнопки уходят в <details class="nav navm"> */
.d4 header{flex-wrap:wrap;height:auto !important;min-height:56px;padding:4px 16px !important;gap:0 !important}
.d4 header>nav,.d4 header>a:not(:first-child){display:none !important}
.d4 header>a:first-child{margin-right:auto !important}
.d4 header details.navm{display:block;margin-left:auto}
.d4 header{position:sticky !important;top:0;z-index:50 !important;background:#0B0C0E !important}
.d4 header>span:has([hreflang]){margin:0 8px 0 0 !important}
.d4 section>header{position:fixed !important;left:0;right:0;width:auto !important;padding-left:16px !important;padding-right:16px !important}
.d4 section:has(>header){padding-top:56px !important}
.d4 header details.navm[open]{flex:1 1 100%;order:3;background:#0b0c0e;margin:0 -16px;padding:0 16px 12px;box-shadow:0 20px 40px rgba(0,0,0,.6);box-sizing:border-box;max-width:none;flex:0 0 calc(100% + 32px)}
.d4 details.navm>summary{display:flex;align-items:center;min-height:48px;padding:0 4px;cursor:pointer;list-style:none;font-size:15px}
.d4 details.navm>summary::-webkit-details-marker{display:none}
/* подпись: закрытое — «Menü», открытое — «Schließen ×» (обе в summary, видна одна) */
.d4 details.navm>summary .nmc,.d4 details.navm[open]>summary .nmo{display:none}
.d4 details.navm[open]>summary .nmc{display:inline}
.d4 details.navm[open]>summary{justify-content:flex-end}
.d4 details.navm nav{display:flex !important;flex-direction:column;align-items:stretch;gap:0 !important;width:100%}
.d4 details.navm>a{display:flex !important;flex-direction:column;align-items:center;justify-content:center;width:100%}
/* переключатель языка остаётся в шапке: копия внутри меню на телефоне не нужна (лист Mobile) */
.d4 details.navm>span:has([hreflang]){display:none !important}
.d4 details.navm a{display:flex !important;align-items:center;min-height:48px;margin:0 !important;padding:0 4px !important}

/* нажимаемые зоны не ниже 44 px: переключатель языка, оглавление, ссылки меню */
.d4 [hreflang]{display:inline-flex !important;align-items:center;min-height:44px;padding:0 8px}
.d4 nav a,.d4 summary,.d4 button{display:flex;align-items:center;min-height:44px}

/* таблицы шире окна листаются внутри себя, страница не растягивается */
.d4 table{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
/* верхняя полоса карточек и концептов: «Konzepte», «Anfrageliste», «Schließen» — хеш-классы style.css */
.d4 .s6d0f785>a,.d4 .s92b91c9>a,.d4 .sabd64d9>a{display:inline-flex !important;align-items:center;min-height:44px;padding:0 6px}

/* нижняя панель листа Mobile: WhatsApp · Telefontermin · Anfrage (<nav class="mbar"> ставит сборщик) */
.d4{padding-bottom:56px}
.d4 nav.mbar{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;background:#131518;border-top:1px solid rgba(232,229,222,.16);font-size:14px;text-align:center;padding-bottom:env(safe-area-inset-bottom)}
.d4 nav.mbar a{display:flex !important;align-items:center;justify-content:center;min-height:56px;margin:0 !important;padding:0 8px !important;line-height:1.2;border-right:1px solid rgba(232,229,222,.16);color:#E8E5DE}
.d4 nav.mbar a:last-child{border-right:0;background:#C9B27C;color:#0B0C0E}

/* фокус с клавиатуры не прячется под нижней панелью (НТ-66): поле в фокусе браузер доводит до верха панели, а не за неё */
html{scroll-padding-bottom:72px}
:target{scroll-margin-top:57px}

/* карточка чертежа производителя (НТ-69): в колонке flex рамка карточки с чертежом (aspect-ratio) считалась ниже содержимого, и подпись под ней ложилась на текст; колонка — сеткой, зазор тот же */
.d4 :has(>.sc251ba8){display:grid !important}

/* шаги «So geht es weiter» (НТ-71): метка-кружок стояла вплотную к абзацу предыдущего шага и в 22 px от своего заголовка — шагу снизу воздух, метке зазор до заголовка поменьше */
.d4 .scf8697c{gap:8px;padding:0 0 28px}
.d4 .scf8697c>.s00c4297+*{margin-top:0}

/* пункты с маркером (НТ-73): общее правило «колонка на всю ширину» складывало строку «маркер 28 px + текст» в колонку, и маркер оказывался над текстом — строка остаётся двумя колонками */
.d4 .s46f2675,.d4 .s42c6d4d{grid-template-columns:28px minmax(0,1fr) !important}

/* блок «Angebot für die Planung» на konzepte (НТ-74): десктопное поле 48 px оставляло узкую колонку 254 из 390 — на телефоне рамка идёт от края до края окна, текст — на поле 20 как у остальных секций */
.d4 section.s01f3c28{margin-left:-20px;margin-right:-20px;max-width:calc(100% + 40px)}

/* верхняя полоса produkte и konzepte (НТ-75): как шапка остальных страниц — липкая, в одну строку 56 px; подпись раздела и «хлебные крошки» сжимаются с многоточием,
   стрелки соседних концептов — значками (текст ссылки остаётся для чтения с экрана) */
.d4 .s3422aec,.d4 .s15b1fb5{position:sticky !important;top:0;z-index:50;background:#0B0C0E;flex-wrap:nowrap !important;gap:12px;min-height:56px;padding:0 16px !important;box-sizing:border-box}
.d4 .s7e047c0,.d4 .s15b1fb5>.s92b91c9{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap !important}
.d4 .s15b1fb5>.s92b91c9 *{white-space:nowrap !important}
.d4 .s3422aec>.s6d0f785,.d4 .s15b1fb5>.sabd64d9{flex:none;flex-wrap:nowrap !important;gap:4px 12px !important}
.d4 .s15b1fb5>.sabd64d9>a:first-child,.d4 .s15b1fb5>.sabd64d9>a:nth-child(2){position:relative;overflow:hidden;white-space:nowrap !important;color:transparent !important;font-size:12px !important;width:44px;min-width:44px;max-width:44px}
.d4 .s15b1fb5>.sabd64d9>a:first-child::before,.d4 .s15b1fb5>.sabd64d9>a:nth-child(2)::before{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;color:#E8E5DE;font-size:18px}
.d4 .s15b1fb5>.sabd64d9>a:first-child::before{content:"\2190"}
.d4 .s15b1fb5>.sabd64d9>a:nth-child(2)::before{content:"\2192"}
@media (max-width:600px){.d4 .s7e047c0{display:none}.d4 .s3422aec>.s6d0f785{flex:1 1 auto;justify-content:space-between}}

/* заголовки не рвутся по слогам (П2-30): причина — узкие колонки и крупный кегль, а не нехватка переноса. Рамки-призывы ablauf и geschaeftskontakte шли узкой колонкой 124 и 60 px из-за десктопного поля 112/144 px (как konzepte, НТ-74) — на всю ширину; h1 anfrage-vorbereiten брал 84 px из встроенного стиля страницы; «Schlussbestimmungen» на agb не вмещалось в 310 px при 35 px.
   Затем на телефоне снят автоперенос: слово переходит целиком */
.d4 section.s9fd701f,.d4 section.s47bb4da{margin-left:0;margin-right:0}
html .d4 h1{font-size:clamp(28px,9vw,40px) !important;line-height:1.1 !important}
.d4 h2.s113bb6e,.d4 h2.s62d3c9c{font-size:clamp(22px,7.6vw,35px) !important}
@media (max-width:600px){.d4 h1,.d4 h2,.d4 h3{hyphens:manual !important}}

/* цель касания ссылки не ниже 24 px (НТ-77, WCAG 2.2): одиночные блочные ссылки в списках были 22 px; min-height строчных ссылок в тексте не действует */
.d4 a{min-height:24px}

/* стрелки ← → галереи produkte (НТ-78): были 13×20 px — цель касания 44×44 */
.d4 .sa4aea48 [aria-label=Zurück],.d4 .sa4aea48 [aria-label=Weiter],.d4 .sa4aea48 [aria-label=Назад],.d4 .sa4aea48 [aria-label=Вперёд]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}

/* плашка цвета «Materialpalette» (konzepte): пустой span с aspect-ratio в колонке flex не берёт растянутую ширину и схлопывался в 0 px высотой (П2-40) */
.d4 .sa4aea48>span:empty{width:100%}
/* закрытие «×» окна konfigurator: контейнер переносил ссылку под текст, цель была 15 px — в строку с заголовком, справа, 44×44 (П2-42) */
.d4 .s606a4f7:has(>a.sdafc52e){flex-wrap:nowrap;gap:12px}
.d4 .s606a4f7>a.sdafc52e{flex:0 0 44px;align-self:flex-start;display:flex;align-items:flex-start;justify-content:center;min-height:44px}
/* схема «Wer liefert, wer baut» (ablauf): подпись связи стоит на 34 px выше линии, а зазор между карточками 20 — она ложилась на рамку карточки выше; зазор над коннектором шире подписи (П2-41) */
.d4 .sd2fabcf>.s8e56980{margin-top:24px}
/* рамки с линией сбоку: правило «section>div без бокового поля» занулило их padding-left/right, текст стоял вплотную к линии (П2-46) */
html body .d4 div:is(.s4bfcf6e,.s1298cb1,.s44bc406,.s2117d65,.s09bae41,.sb5188a8,.sf720597,.se762be4){padding-left:16px !important;padding-right:16px !important}
/* окно Beratung: панель в листе прижата абсолютно (right/top/bottom), и при height:auto корня окно схлопывается в 0 — на телефоне панель идёт потоком */
.d4 [data-beratung]>div:last-child{position:relative !important;inset:auto !important;width:100% !important;border-left:0 !important;padding:24px 20px !important}

/* блок-призыв на фото (index): текст прижат абсолютно к листу, при height:auto секция схлопывалась в 0 — текст идёт потоком, фото остаётся фоном;
   золотые линии (пустые aria-hidden) лежат поперёк текста — на телефоне скрыты, подпись к фото встаёт под текст */
.d4 section:not(:has(>header)):has(>img):has(>div[aria-hidden="true"])>div[aria-hidden="true"]{display:none !important}
.d4 section:not(:has(>header)):has(>img):has(>div[aria-hidden="true"])>div:has(h2){position:relative !important;inset:auto !important;padding:48px 0 16px !important}
.d4 section:not(:has(>header)):has(>img):has(>div[aria-hidden="true"])>div:last-child:not(:has(h2)){position:relative !important;inset:auto !important;padding:0 0 24px !important}

/* полоса фактов (dl: Region · Gewerbe · Ihre Verträge) до 700 px — колонки друг под другом: в трёх по 117 px слова рвались посреди */
@media (max-width:700px){.d4 dl{grid-template-columns:minmax(0,1fr) !important}.d4 dl.s1525580>div{padding:24px 0 !important;border-left:0 !important}.d4 dl.s1525580>div+div{border-top:1px solid rgba(232,229,222,.16)}}

/* impressum/agb/datenschutz: поля по 144 px оставляли тексту 5–60 px (НТ-50) — на узком окне без боковых полей */
@media (max-width:700px){.d4 section.s59a2d5d,.d4 section.s5d7d4d6{margin-left:0 !important;margin-right:0 !important}}

/* шапка konzepte (НТ-51): до 1023 подпись под заголовком, а не столбиком в 65–120 px рядом; на телефоне заголовок 44 px; полоса «← … | … → | DE·RU | Schließen ×» в две строки без разрыва пунктов */
@media (max-width:1023px){.d4 .s89f0918{left:20px !important;right:20px !important;flex-direction:column !important;align-items:flex-start !important;gap:20px !important}.d4 .s89f0918 .s433f357{align-items:flex-start !important}}
@media (max-width:600px){.d4 .s89f0918 .sa7c3763{font-size:44px !important}.d4 .sabd64d9{flex-wrap:wrap !important;gap:8px 20px !important}.d4 .sabd64d9>*{white-space:nowrap !important}}

/* geschaeftskontakte: колонка с картой — flex-колонка фиксированной высоты, обёртка карты в ней сжималась до 174 px, а карта (растёт с окном) ложилась на полосу фактов — колонка обычным потоком */
.d4 .se5f46a3{display:block !important;height:auto !important}.d4 .se5f46a3>.sadd1d17{margin-top:56px}

/* таблица «Serien im Vergleich» (НТ-52): до 1023 шапка скрыта, у каждой ячейки своя подпись (data-label из шапки, site.js), строка — в две колонки; строка-пояснение (без столбцов) — друг под другом */
@media (max-width:1023px){.d4 [data-head]{display:none !important}.d4 [data-row]{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px 16px !important;padding:16px 0 !important}.d4 [data-row]>:first-child,.d4 [data-row]>:last-child,.d4 [data-row=note]>*{grid-column:1/-1 !important}.d4 [data-row]>:empty{display:none !important}.d4 [data-row]>[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:#9A978F}}

/* таблица «Welche Terrassentür passt zu Ihnen?» (НТ-70): до 1023 шапка скрыта, подпись столбца в каждой ячейке (data-label, site.js), ячейки строки — в две колонки, заголовок строки — на всю ширину */
@media (max-width:1023px){.d4 .sb468078,.d4 .sb468078 tbody{display:block;overflow:visible}.d4 .sb468078 thead{display:none}.d4 .sb468078 tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding:16px 0;border-bottom:1px solid rgba(232,229,222,.16)}.d4 .sb468078 td{display:block;padding:0;border:0}.d4 .sb468078 tr>:first-child{grid-column:1/-1 !important;color:#E8E5DE}.d4 .sb468078 td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:#9A978F}}

/* шаги kontakt / foerderungen / projekte (НТ-53): шаги стоят друг под другом, а маркер выступает вверх на 6–10 px — без отступа снизу он ложится на последнюю строку предыдущего шага */
@media (max-width:1023px){.d4 .s69d26b8,.d4 .s3c949b4,.d4 .s353fea0{padding-bottom:20px !important}}

/* правовые страницы (НТ-54): до 1023 карточка с адресом стоит под текстом, а не сбоку, — без sticky она не ползёт поверх заголовков при прокрутке */
@media (max-width:1023px){.d4 .s5340c5e,.d4 .sb105350{position:static !important}}

/* чат в мокапе телефона (index, НТ-57): общее .d4 div{flex-wrap:wrap} при фиксированной высоте переносило сообщения во вторую колонку за край экрана — чат остаётся столбцом */
@media (max-width:1023px){.d4 .s2da159d{flex-wrap:nowrap}}

/* главная (НТ-58): общее .d4 div{flex-wrap:wrap} переносит кнопку под заголовок «Vom Gedanken zum klaren Angebot» вплотную — как в листе Mobile, между ними 20 px */
@media (max-width:1023px){.d4 .s81e9723{row-gap:20px}}

/* значки ✓ / ☐ и единицы «mm», «Stück» (№П2-11): общее .d4 div{flex-wrap:wrap} и grid 1fr роняли значок над текст, а «mm» рвало на «m/m»; значок и текст — одна строка, чекбокс 20 px с зазором 10 */
@media (max-width:1023px){.d4 :is(.s82c17f6,.s4499a1c){flex-wrap:nowrap}.d4 :is(.s82c17f6,.s4499a1c)>:last-child{min-width:0;flex:1 1 0}.d4 .s62a1366{flex:none}
.d4 .se6ec4a9{grid-template-columns:24px minmax(0,1fr) !important}
.d4 .s56968b3{width:20px;height:20px;margin-top:1px}
.d4 .se34f0f5>.s92b91c9{flex:none;white-space:nowrap;margin-left:8px}.d4 .se34f0f5>.kin{min-width:0}
.d4 .s6b5abee>input[type=checkbox]{width:20px;height:20px;margin:0 10px 0 0;vertical-align:-5px}}

/* планы «Grundrisse» и схема «Wer was übernimmt» (№П2-12): план на телефоне одной колонкой, а не 114 px рядом со списком комнат; легенда схемы с зазором 16 от «Sie» и от золотой линии, а не вплотную */
@media (max-width:1023px){.d4 .sbc8bb10{padding-left:0 !important;padding-right:0 !important}.d4 figure.s2755f67{grid-template-columns:minmax(0,1fr) !important;gap:20px}.d4 figure.s2755f67 .s94c1def{height:auto;padding:12px}.d4 figure.s2755f67 .seb1ec53{height:auto;width:auto;min-width:100%}
.d4 .s22959ce .s606a4f7{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:16px}.d4 .s22959ce .s606a4f7 .s5b9951e{border-bottom:1px solid #E8E5DE}.d4 .s22959ce .s606a4f7 .s72b2674{flex-direction:column;gap:12px}}

/* цели касания и мелкий текст (№П2-13): ссылки подвала, «Impressum/Datenschutz/AGB», «Mehr erfahren», чипы и «×» были 17–38 px высотой; подписи 10–11 px */
@media (max-width:1023px){.d4 :is(footer a,a.s040759c,a.s23788a0,a.s02863b7,a.sdafc52e,a.s0cbd3d1){display:inline-flex;align-items:center;min-height:44px}
.d4 a.s979519e{display:flex;align-items:center;min-height:44px;margin-bottom:0}.d4 a.s02863b7{padding:12px 16px}
.d4 :is(.s411b68c,.sd9f4f51,.s5cd7197,.s56f75f5,.sd646772,.s0918a5c,.s2d8d625,.s6699c58,.s293fc73,.s5959ada){font-size:12px}}

/* ритм секций по листу Mobile (№П2-17): отступы 72–150 px с десктопа сведены к 56 */
@media (max-width:1023px){.d4 section.s00ca25a,.d4 section.s017ba9e,.d4 section.s01f3c28,.d4 section.s05f5ae9,.d4 section.s10e4559,.d4 section.s12d3b7a,.d4 section.s15ff321,.d4 section.s189d9d6,.d4 section.s1c185a1,.d4 section.s22959ce,.d4 section.s2bc2883,.d4 section.s2fc650c,.d4 section.s47bb4da,.d4 section.s4dc5bba,.d4 section.s540bcb0,.d4 section.s5daa25b,.d4 section.s631e321,.d4 section.s66f9ad9,.d4 section.s6f3c657,.d4 section.s72a56f0,.d4 section.s7be48cf,.d4 section.s7f23bb2,.d4 section.s849e4b8,.d4 section.s85fe2c6,.d4 section.s861f1b4,.d4 section.s871f285,.d4 section.s88f4099,.d4 section.s8a3a445,.d4 section.s9adc0f7,.d4 section.s9c1ef28,.d4 section.s9fd701f,.d4 section.sa774f74,.d4 section.sae737c0,.d4 section.sb15d400,.d4 section.sb28cdc8,.d4 section.sc577293,.d4 section.se0e4f44,.d4 section.sf0c76b5,.d4 section.sf0fa1c8,.d4 section.sf119498,.d4 section.sfabea75{padding-top:56px}
.d4 section.s00ca25a,.d4 section.s017ba9e,.d4 section.s01f3c28,.d4 section.s05f5ae9,.d4 section.s10e4559,.d4 section.s12d3b7a,.d4 section.s15ff321,.d4 section.s1692d4d,.d4 section.s189d9d6,.d4 section.s1b409c7,.d4 section.s1c185a1,.d4 section.s1ce7ef4,.d4 section.s22959ce,.d4 section.s2bc2883,.d4 section.s2eecffa,.d4 section.s2fc650c,.d4 section.s32149a6,.d4 section.s33e1f41,.d4 section.s3bf137d,.d4 section.s47bb4da,.d4 section.s4949340,.d4 section.s4dc5bba,.d4 section.s540bcb0,.d4 section.s5daa25b,.d4 section.s624edae,.d4 section.s631e321,.d4 section.s66f9ad9,.d4 section.s70a689b,.d4 section.s72a56f0,.d4 section.s77c1593,.d4 section.s7be48cf,.d4 section.s849e4b8,.d4 section.s85fe2c6,.d4 section.s861f1b4,.d4 section.s871f285,.d4 section.s88f4099,.d4 section.s8a3a445,.d4 section.s90f75df,.d4 section.s9adc0f7,.d4 section.s9c1ef28,.d4 section.s9fd701f,.d4 section.sa774f74,.d4 section.sae737c0,.d4 section.saf84085,.d4 section.sb15d400,.d4 section.sb28cdc8,.d4 section.sba6c9a5,.d4 section.sbc8bb10,.d4 section.sc342ee6,.d4 section.scc95161,.d4 section.sd1901d6,.d4 section.se0e4f44,.d4 section.sf0c76b5,.d4 section.sf0fa1c8,.d4 section.sf119498,.d4 section.sf5efa88,.d4 section.sfabea75{padding-bottom:56px}}

/* галерея produkte лентой (№П2-17): лента — ряд фото после главного кадра (класс у страниц разный), кадр 85%, фото целиком; диалог проекта не задет */
@media (max-width:1023px){.d4 .sa4aea48:has(>.s9e9d1a3+div>img){container-type:inline-size}
.d4 .sa4aea48:has(>.s9e9d1a3+div>img)>.s9e9d1a3{height:75cqw}
.d4 .sa4aea48>.s9e9d1a3+div:has(>img){display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;-webkit-overflow-scrolling:touch}
.d4 .sa4aea48>.s9e9d1a3+div:has(>img)>*{flex:0 0 85%;width:85%;height:85cqw;aspect-ratio:1/1;scroll-snap-align:start;object-fit:contain;background:#17191C}}

/* карточки концептов index лентой (№П2-17): кадр 85%, одинаковая высота */
@media (max-width:1023px){.d4 .s9cf0272{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;align-items:stretch}
.d4 .s9cf0272>.s7c07ed4{flex:0 0 85%;min-width:0;scroll-snap-align:start}}

/* кнопки CTA во всю ширину, одной высоты (№П2-17) */
@media (max-width:1023px){.d4 :is(a,button).sf036f71,.d4 :is(a,button).sb6ba8e2{display:flex;width:100%;box-sizing:border-box;justify-content:center;text-align:center;white-space:normal;padding:8px 16px !important;line-height:1.3;min-height:60px}}

/* hero index не выше окна (№П2-17): плотнее поля и ступени, текст и порядок прежние */
@media (max-width:1023px){.d4 .se1152b9{gap:12px}.d4 section:has(>header)>div.se1152b9.se1152b9{padding-top:16px !important;padding-bottom:12px !important}.d4 .se8e1e1c{gap:20px;margin-top:8px}.d4 .s65ccd48 text{display:none}.d4 .sb0d4f05{font-size:16px;line-height:1.45}.d4 section:has(>header)>div.sc85ef01.sc85ef01{padding-top:0 !important;padding-bottom:12px !important}}
/* реквизиты юридических страниц (№П2-28): рамка на всю ширину, как заголовок, а не поле 144 при 701–1023 */
@media (min-width:701px) and (max-width:1023px){.d4 section.s59a2d5d,.d4 section.s5d7d4d6{margin-left:0 !important;margin-right:0 !important}}

/* стрелки ← → окна просмотра: цель касания не меньше 44×44 (№П2-22) */
@media (max-width:1023px){#dlg-projektansicht :is(.s4af97ba,.s59a6541){display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}}


/* блок «Weitere Objekte» produkte: ширина по колонке, а не по естественной ширине фото — иначе высота блока короче фото (НТ-82, №П2-48) */
@media (max-width:1023px){.d4 .s78a76d3{width:100%}}
/* главная и меню на ≤760 по листу Mobile (П2-67): блоки data-m строит сборка, старые узлы data-mhide прячутся */
@media (max-width:760px){
.d4 [data-m]{display:block !important}
.d4 details.navm:not([open]) [data-m]{display:none !important}
.d4 header details.navm[open]{max-height:calc(100dvh - 125px);overflow-y:auto;overscroll-behavior:contain}
.d4 [data-mhide],.d4 details.navm [data-mflat]{display:none !important}
.d4 .mh{margin-top:20px}
.d4 .mh-lead{margin:0 0 20px;font-size:14px;line-height:1.6;color:#D3D0C8}
.d4 .mh-h{margin:22px 0 10px;font-size:13px;color:#C9B27C}
.d4 .mh-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:6px}
.d4 .mh-tile{position:relative;display:block;height:104px;overflow:hidden;border:1px solid rgba(232,229,222,.16);background:#131518;color:#E8E5DE;text-decoration:none}
.d4 .mh-tile img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6)}
.d4 .mh-tile:nth-child(3) img{object-fit:contain;padding:6px 6px 34px;box-sizing:border-box}
.d4 .mh-tile span{position:absolute;left:10px;right:10px;bottom:8px;display:flex;justify-content:space-between;gap:6px;font-size:14px;line-height:1.25}
.d4 .mh-tile b{flex:none;font-weight:400;color:#C9B27C}
.d4 .mh-row{display:flex !important;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:0 0 6px !important;padding:8px 12px !important;border:1px solid rgba(232,229,222,.16);color:#E8E5DE;text-decoration:none}
.d4 .mh-rt{display:flex;flex-direction:column;gap:2px}
.d4 .mh-rs{font-size:12px;color:#9A978F}
.d4 .mh-ra{color:#C9B27C}
.d4 .mh-chips{display:flex;flex-wrap:wrap;gap:6px}
.d4 .mh-chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid rgba(232,229,222,.16);font-size:14px;color:#E8E5DE;text-decoration:none}
.d4 .mm{padding:0 4px 8px}
.d4 .mm .mh-h:first-child{margin-top:4px}
.d4 .mm-note{margin:14px 0;font-size:13px;line-height:1.5;color:#9A978F}
.d4 .mm-btns{display:flex;gap:8px}
.d4 details.navm .mm-btns a{flex:1;justify-content:center;border:1px solid rgba(232,229,222,.16);color:#E8E5DE;text-decoration:none}
}


/* шаги «1 · 2 · 3» на leistungen: у всех трёх линия слева и один отступ, цифра не липнет к тексту выше (НТ-85, №П2-51) */
@media (max-width:1023px){.d4 .s7350964,.d4 .s763bda9{padding:20px 0 20px 20px;border-left:1px solid rgba(232,229,222,.16)}}

/* шкала шагов «So geht es weiter» на konzepte: горизонтальная линия десктопа при ≤1023 одна пересекает первый кружок (НТ-79, №П2-38) */
@media (max-width:1023px){.d4 .s99dea87>.sf1ef577{display:none}}

/* линия над заголовком финальной секции не режет первую строку h2 (НТ-127, №П2-87, №П2-95) */
@media (max-width:1023px){.d4 .s6ed5dc8{top:28px}}

/* стрелка между фото окна «Ihr Vorhaben» не выходит за окно (НТ-110, №П2-78) */
@media (max-width:760px){.d4 .sde9c838{right:6px}}

/* лента проектов на projekte: одна строка плиток с прокруткой вместо восьми экранов высотой 560 (НТ-121, №П2-89) */
@media (max-width:760px){
.d4 .s2598d37{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.d4 .s2598d37>.s97b0ff9{flex:0 0 200px;height:200px;scroll-snap-align:start}
.d4 .s2598d37 .s5fe45ce{writing-mode:horizontal-tb;transform:none;left:12px;right:12px;bottom:12px;font-size:18px;white-space:normal;line-height:1.15}
.d4 .s2598d37 .sbd8202a{top:10px;bottom:auto;right:10px;font-size:12px}
}

/* цели касания konfigurator не меньше 44 px по меньшей стороне: чипы товара, галочки, ссылки, кнопки корзины, переключатель языка, поля (НТ-107, №П2-75) */
@media (max-width:1023px){body:has([data-konfig]) .d4 .s61f3886>span{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:44px;min-height:44px}body:has([data-konfig]) .d4 .kcheck{min-height:44px;align-items:center}body:has([data-konfig]) .d4 a.sc01a55f,body:has([data-konfig]) .d4 a.s344f014,body:has([data-konfig]) .d4 [data-basket] a{display:inline-flex;align-items:center;min-height:44px}body:has([data-konfig]) .d4 [data-basket] button,body:has([data-konfig]) .d4 [data-files] button{min-width:44px;min-height:44px}body:has([data-konfig]) .d4 .s040759c{display:inline-flex;align-items:center;justify-content:center;min-width:44px}body:has([data-konfig]) .d4 .s64331e0 a{display:inline-flex;align-items:center;justify-content:flex-start;min-width:44px;margin-right:-10px}body:has([data-konfig]) .d4 .kin{padding:12px 0;margin:-12px 0}body:has([data-konfig]) .d4 .sd19aedf{min-height:44px}}
/* карточки услуг (planung, НТ-124): общее .d4 div{flex-wrap:wrap} уводило длинный пункт под галочку — строка пункта не переносится, текст переносится внутри */
.d4 .s222fec5{flex-wrap:nowrap}
@media (max-width:760px){.d4 .s5430abf{width:auto;min-width:100%}}

/* Mobile navigation: one scroll surface and an always reachable close control. */
@media(max-width:1023px){
 html.pb-mobile-menu-open,html.pb-mobile-menu-open body{overflow:hidden;overscroll-behavior:none}
 .d4 header details.navm[open]{height:calc(100dvh - 122px);max-height:calc(100dvh - 122px);padding:0 20px max(24px,env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:#66583e #0b0c0e;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y}
 .d4 details.navm[open]>summary{position:sticky;top:0;z-index:2;min-height:52px;background:#0b0c0e;border-bottom:1px solid #c9b27c26;margin-bottom:18px;color:#d0bc93}
 .d4 .mm{padding:0 0 16px}
 .d4 .mm .mh-h{font-size:12px;letter-spacing:.5px;color:#b9a379;margin:26px 0 10px}
 .d4 details.navm .mh-row{min-height:54px;padding:11px 2px!important;border:0;border-bottom:1px solid #c9b27c20;margin:0!important;font-size:16px;line-height:1.4}
 .d4 .mh-rs{font-size:12px;line-height:1.45;color:#99958c}
 .d4 .mh-ra{font-size:18px;color:#bca780}
 .d4 details.navm .mh-row:focus-visible,.d4 details.navm summary:focus-visible{outline:1px solid #c9b27c;outline-offset:-2px;background:#c9b27c08}
 .d4 .mm .mh-chips{margin-top:20px;gap:8px}
 .d4 details.navm .mh-chips a{padding:10px 12px!important;border-color:#c9b27c30;min-height:46px}
 .d4 details.navm .mm-btns a{min-height:48px;border-color:#c9b27c45;padding:10px!important}
}

/* A fixed root header stays visible when the menu locks the document scroll. */
@media(max-width:1023px){
 html body .d4>header{position:fixed!important;top:0!important;left:0!important;right:0!important;width:auto!important}
 html body .d4:has(>header){padding-top:56px!important}
}

/* Mobile QA: concise photo grids, a usable viewer, and compact footer sections. */
@media(max-width:1023px){
 html body #dlg-projektansicht{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 24px)!important;height:fit-content!important;min-height:0!important;margin:auto!important;padding:0!important;overflow:auto;overscroll-behavior:contain;background:#111517;scrollbar-width:thin;scrollbar-color:#887451 #111517}
 html body #dlg-projektansicht .sfa19a89{display:flex!important;flex-direction:column;gap:12px;min-height:0!important;height:auto!important;padding:0 14px 16px!important}
 html body #dlg-projektansicht .sdaee3b2{position:sticky;top:0;z-index:3;display:flex;flex-direction:column;gap:8px;padding:10px 0;background:#111517;font-size:13px;line-height:1.4}
 html body #dlg-projektansicht .sdaee3b2>span:first-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 html body #dlg-projektansicht .sdaee3b2>span:last-child{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}
 html body #dlg-projektansicht .s2437111{position:relative;width:100%;height:auto!important;aspect-ratio:4/3;margin:0;flex:none;background:#0b0e10}
 html body #dlg-projektansicht .s2437111>img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain}
 html body #dlg-projektansicht .s6c954aa{display:flex!important;flex-wrap:nowrap!important;gap:8px;overflow-x:auto;padding:4px 0!important;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#887451 #111517}
 html body #dlg-projektansicht .s6c954aa>img{flex:0 0 80px!important;min-width:80px!important;width:80px!important;height:60px!important;object-fit:cover;scroll-snap-align:start;box-sizing:border-box;cursor:pointer}
 html body #dlg-projektansicht .sf120801{display:flex!important;flex-direction:column;gap:12px;margin:0;padding:0!important}
 html body #dlg-projektansicht .sd4a9f20{font-size:13px;line-height:1.45}
 html body .d4 section#ansichten{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}
 html body .d4 #ansichten>.s553c796{grid-column:1/-1!important;display:flex;align-items:baseline;gap:8px;justify-content:space-between;flex-wrap:wrap}
 html body .d4 #ansichten :is(.s5bcb259,.sd726313,.s1e14ef3){display:contents!important}
 html body .d4 #ansichten a.ph{height:auto!important;min-height:0!important;aspect-ratio:4/3;position:relative;overflow:hidden}
 html body .d4 #ansichten a.sbba3224{grid-column:1/-1!important}
 html body .d4 #ansichten a.ph>img{width:100%!important;height:100%!important;object-fit:cover}
 html body .d4 #ansichten .sd64c3a6{font-size:12px;line-height:1.3;left:8px;right:8px;bottom:8px;max-height:3.9em;overflow:hidden}
 html body .d4 #ansichten .s411b68c{display:none}
 html body .d4 .pb-footer-navigation{display:block!important;padding:16px 0!important}
 html body .d4 .pb-footer-column+.pb-footer-column{padding-top:0;border-top:1px solid #ffffff18}
 html body .d4 .pb-footer-fold>summary{display:flex;align-items:center;justify-content:space-between;min-height:58px;list-style:none;cursor:pointer}
 .pb-footer-fold>summary::-webkit-details-marker{display:none}
 .pb-footer-fold>summary::after{content:'+';font-size:22px;color:#c9b27c}
 .pb-footer-fold[open]>summary::after{content:'−'}
 html body .d4 .pb-footer-fold summary h2{padding-bottom:0!important}
 .pb-footer-fold-body{padding-bottom:12px}
 html body .d4 footer.pb-footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))!important}
 html{scroll-padding-top:76px;scroll-padding-bottom:90px}
 html body .d4 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),html body .d4 textarea,html body .d4 select{font-size:16px!important}
 html body .d4 .pb-cart-floating{bottom:calc(76px + env(safe-area-inset-bottom))}
}
@media(min-width:1024px){.pb-footer-fold>summary{list-style:none;pointer-events:none}.pb-footer-fold>summary::-webkit-details-marker{display:none}}

/* One persistent request action on phones; desktop floating cart stays intact. */
@media(max-width:1023px){
 body:has(nav.mbar) .pb-cart-floating{display:none!important}
}
/* Visible mobile footer: every destination is a real link, without accordion controls. */
@media(max-width:1023px){
 html body .d4 footer.pb-footer{padding:40px 20px calc(92px + env(safe-area-inset-bottom))!important}
 html body .d4 .pb-footer-top{gap:25px!important;padding-bottom:28px!important}
 html body .d4 .pb-footer-brand p{font-size:15px!important;line-height:1.65!important;margin-top:18px!important;color:#aaa69b}
 html body .d4 .pb-footer-contact{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;padding:20px;border:1px solid #bba47730;background:linear-gradient(140deg,#1b201b,#101517)}
 html body .d4 .pb-footer-contact h2{margin-bottom:8px!important}
 html body .d4 .pb-footer-contact a{display:flex;align-items:center;min-height:44px;padding:5px 0;font-size:16px;line-height:1.4}
 html body .d4 .pb-footer-navigation{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px 20px!important;padding:28px 0!important}
 html body .d4 .pb-footer-column,html body .d4 .pb-footer-column+.pb-footer-column{display:flex!important;flex-direction:column;min-width:0;padding:14px 0 0!important;border-top:1px solid #bba47760!important}
 html body .d4 footer.pb-footer .pb-footer-column h2{font-size:15px!important;line-height:1.35!important;min-height:42px!important;padding:0 0 10px!important;gap:8px!important}
 html body .d4 footer.pb-footer .pb-footer-link{font-size:15px!important;line-height:1.4!important;min-height:44px!important;padding:10px 0!important;gap:4px;color:#c8c3b7}
 .pb-footer-link-note{font-size:12px;line-height:1.4;color:#969287}
 html body .d4 .pb-footer-bottom{gap:14px!important;padding-top:20px!important;font-size:13px}
 html body .d4 .pb-footer-bottom nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 20px!important;width:100%}
 .pb-footer-bottom nav a{display:flex;align-items:center;min-height:44px;font-size:13px;line-height:1.4}
}
/* Business stages are compact explanations, without slanted decorative placeholders. */
@media(max-width:1023px){
 html body .d4 .pb-business-steps .s083b3fc{gap:20px!important;margin-bottom:28px!important}
 html body .d4 .pb-business-steps .s519eafd{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
 html body .d4 .pb-business-steps .se911df3{display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;gap:10px 14px!important;padding:20px!important;border:1px solid #c9b27c28;background:#121819;min-height:0!important}
 html body .d4 .pb-business-steps .pb-business-step-icon{grid-column:1;grid-row:1/4;width:40px;height:40px;color:#bfa778}
 html body .d4 .pb-business-step-icon svg{width:40px!important;height:40px!important;min-width:0!important;aspect-ratio:1!important}
 html body .d4 .pb-business-steps .se911df3>.sc01a55f{display:none}
 html body .d4 .pb-business-steps .se9ede43{grid-column:2;font-size:20px!important;line-height:1.25!important}
 html body .d4 .pb-business-steps .sf8e29aa{grid-column:2;font-size:15px!important;line-height:1.5!important;min-height:0!important}
 html body .d4 .pb-business-steps .s65f8dbe{grid-column:2;font-size:13px!important;line-height:1.45!important;margin-top:4px;padding-left:10px}
 html body .d4 .pb-business-map{padding:12px!important;overflow:visible!important}
 html body .d4 .pb-business-scroll{width:100%!important;max-width:100%!important;overflow:hidden!important}
 html body .d4 .pb-business-scroll>svg.pb-business-city{width:100%!important;min-width:0!important;max-width:100%!important;height:auto!important;aspect-ratio:1200/510!important}
 html body .d4 .pb-business-detail{position:static!important;min-height:0!important;padding:18px 4px!important;display:block!important}
 html body .d4 .pb-business-detail strong{font-size:25px!important}
 html body .d4 .pb-business-detail p{font-size:15px!important;line-height:1.55!important;margin-top:8px!important}
 html body .d4 .pb-business-document{padding:22px!important;min-height:0!important;box-shadow:6px 6px 0 #c9b27c06}
 html body .d4 .pb-document-row{gap:12px;padding:16px 0}
 html body .d4 .s88f4099:has(.pb-business-document){gap:30px!important}
 html body .d4 .scc95161 :is(.sf720597,.se762be4){padding:22px!important}
}
@media(max-width:1023px){html body .d4 .pb-business-steps .se9ede43{min-height:0!important}html body .d4 footer.pb-footer .pb-footer-column h2{min-height:32px!important}}
/* Contacts remain typography on the page, without a decorative card. */
@media(max-width:1023px){html body .d4 .pb-footer-contact{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}}
/* B2B keeps the desktop illustrations and open text layout on phones. */
@media(max-width:1023px){
 html body .d4 .pb-business-map{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
 html body .d4 .pb-business-detail{border:0!important;background:transparent!important;padding:18px 0!important}
 html body .d4 .sf0fa1c8 .sb8061d4{padding:20px 0!important;border:0!important;background:transparent!important;box-shadow:none!important}
 html body .d4 .scc95161 :is(.sf720597,.se762be4){padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
 html body .d4 .sf0fa1c8 .s923dac0{font-size:23px!important;min-height:0!important}
 html body .d4 .scc95161{gap:32px!important}
}
/* Product detail pages: title first, one hero image, compact thumbnails. */
@media(max-width:1023px){
 html body .d4 .se4d0c31 .se01d8da{display:flex!important;flex-direction:column!important;gap:24px!important}
 html body .d4 .se4d0c31 .se01d8da>.s243f7f3{display:contents!important}
 html body .d4 .se4d0c31 .se01d8da>.s243f7f3>.se911df3{order:-1;gap:14px!important;min-height:0!important}
 html body .d4 .se4d0c31 .se01d8da>.sa4aea48{order:0;min-width:0;gap:12px!important}
 html body .d4 .se4d0c31 .se01d8da>.sa4aea48>.s9e9d1a3{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:4/3;position:relative;overflow:hidden}
 html body .d4 .se4d0c31 .s9e9d1a3>img{display:block;width:100%!important;height:100%!important;object-fit:contain!important}
 html body .d4 .se4d0c31 .se01d8da>.sa4aea48>.s6c954aa{display:flex!important;flex-flow:row nowrap!important;gap:8px!important;width:100%!important;min-width:0!important;overflow-x:auto!important;padding:4px 0!important;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#887451 #111517}
 html body .d4 .se4d0c31 .se01d8da .s6c954aa>:is(img,.s14d4387){position:relative;flex:0 0 80px!important;width:80px!important;min-width:80px!important;max-width:80px!important;height:60px!important;min-height:0!important;aspect-ratio:auto!important;box-sizing:border-box;overflow:hidden;scroll-snap-align:start;object-fit:contain!important}
 html body .d4 .se4d0c31 .s14d4387>img{width:100%!important;height:100%!important;object-fit:contain!important}
 html body .d4 .se4d0c31 .s14d4387>.s56f75f5{display:none!important}
 html body .d4 .se4d0c31 .s74a429b{font-size:12px!important;line-height:1.4!important;gap:8px;flex-wrap:wrap}
 html body .d4 .se4d0c31 .s19e64c0{font-size:13px!important;line-height:1.5!important}
}
@media(max-width:1023px){
 html body .d4 .se4d0c31 .s90543b1:has(.sfba309f){background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
 html body .d4 .se4d0c31 .s48b1d24>:is(.s509c681,.s92180ad){background:transparent!important;border:0!important;box-shadow:none!important;padding:16px 0!important}
}
