/* ── запасные переменные темы ──────────────────────────────────────────────
   Страницы прайса собраны без инлайнового блока с переменными, поэтому
   .btn-gold с градиентом из var(--gold) рисовался прозрачным. Задаём те же
   значения здесь. На обычных страницах инлайновый блок идёт позже и просто
   перекрывает эти — там ничего не меняется.
   ───────────────────────────────────────────────────────────────────────── */
:root{--gold:#c89b3c;--gold-hi:#e6c876;--ink:#f4efe3;--muted:#a89f8a;
 --muted-2:#79725f;--line:#332f25;--line-2:#443f31;--card:#1f1c16;--bg:#141310}

/* ═══ Оформление поверх существующей разметки ═══════════════════════════════
   Ни одного слова текста не трогаем: 19 заголовков, 46 абзацев, 63 пункта,
   32 якоря цен, 28 внутренних ссылок и 11 вопросов остаются как есть.
   Меняются только стили. Для SEO это нулевой риск — Google видит тот же
   документ, а человек видит нормальную страницу.
   ════════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700&family=Manrope:wght@400;500;600;700&display=swap');

:root{
 --sk-gold:#c89b3c; --sk-gold-lt:#e6c876; --sk-gold-dk:#8a6a22;
 --sk-card:#221e16; --sk-card2:#2a251b; --sk-line:#352f24; --sk-line2:#473f30;
 --sk-txt:#f4efe3; --sk-mut:#a89f8a; --sk-dim:#7d7463; --sk-green:#3fbf74;
 --sk-r:14px; --sk-sh:0 1px 2px rgba(0,0,0,.35),0 10px 30px rgba(0,0,0,.25);
}
body{font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
 -webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Bricolage Grotesque",Manrope,sans-serif;
 letter-spacing:-.02em;text-wrap:balance}

/* ── шапка страницы ───────────────────────────────────────── */
.page-hero{position:relative;padding-block:54px 42px;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:-45% 46% auto -18%;
 height:600px;pointer-events:none;
 background:radial-gradient(ellipse at 32% 42%,rgba(200,155,60,.16),transparent 62%)}
.page-hero>*{position:relative}
.page-hero h1{font-size:clamp(1.95rem,5vw,3.15rem);line-height:1.06;
 margin:0 0 16px;max-width:min(22ch,100%)}
.page-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;
 font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
 color:var(--sk-gold);background:rgba(200,155,60,.1);
 border:1px solid rgba(200,155,60,.26);padding:6px 13px;border-radius:999px;
 margin-bottom:18px}
.page-hero .eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;
 background:var(--sk-green);box-shadow:0 0 0 3px rgba(63,191,116,.2)}
.page-hero .lead{font-size:clamp(1rem,1.9vw,1.14rem);line-height:1.62;
 color:var(--sk-mut);max-width:62ch}
.page-hero .lead [data-p]{color:var(--sk-gold-lt);font-weight:700;
 white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chips .chip{background:var(--sk-card);border:1px solid var(--sk-line2);
 border-radius:999px;padding:8px 15px;font-size:.86rem;color:var(--sk-mut);
 font-weight:500}

/* ── смысловые блоки ──────────────────────────────────────── */
.blk{background:var(--sk-card);border:1px solid var(--sk-line);
 border-radius:var(--sk-r);padding:28px 30px;margin-bottom:16px;
 box-shadow:var(--sk-sh)}
.blk h2{font-size:clamp(1.25rem,2.7vw,1.72rem);line-height:1.2;margin:0 0 14px}
.blk h3{font-size:1.08rem;margin:22px 0 10px}
.blk p{color:var(--sk-mut);line-height:1.68;margin:0 0 14px;max-width:70ch}
.blk p:last-child{margin-bottom:0}
.blk b,.blk strong{color:var(--sk-txt);font-weight:600}
.blk [data-p]{color:var(--sk-gold-lt);font-weight:700;white-space:nowrap;
 font-variant-numeric:tabular-nums}

/* ── списки с галочками ───────────────────────────────────── */
.ticks{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:11px}
.ticks li{display:flex;gap:12px;align-items:flex-start;color:var(--sk-mut);
 line-height:1.56;font-size:.96rem}
.ticks svg{flex:0 0 19px;width:19px;height:19px;margin-top:3px;
 color:var(--sk-gold);opacity:.95}
.ticks b{color:var(--sk-txt);font-weight:600}

/* ── ключевые цифры ───────────────────────────────────────── */
.kfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
 gap:1px;background:var(--sk-line);border:1px solid var(--sk-line);
 border-radius:var(--sk-r);overflow:hidden;margin:20px 0}
.kfx{background:var(--sk-card2);padding:22px 18px;text-align:center}
.kfx>*:first-child{display:block;font-family:"Bricolage Grotesque",sans-serif;
 font-weight:700;font-size:1.6rem;line-height:1.12;color:var(--sk-gold);
 font-variant-numeric:tabular-nums;margin-bottom:5px}
.kfx>*:first-child [data-p]{color:inherit}
.kfx>*+*{font-size:.84rem;color:var(--sk-mut);line-height:1.4}

/* ── подсказка ────────────────────────────────────────────── */
.tipbox{display:flex;gap:15px;background:rgba(200,155,60,.07);
 border:1px solid rgba(200,155,60,.24);border-left:3px solid var(--sk-gold);
 border-radius:10px;padding:18px 20px;margin:20px 0}
.tipbox .ic{flex:0 0 26px;width:26px;height:26px;border-radius:50%;
 background:var(--sk-gold);color:#17140f;display:grid;place-items:center;
 font-weight:800;font-size:.9rem;line-height:1}
.tipbox b{display:block;color:var(--sk-txt);margin-bottom:5px;font-weight:700}
.tipbox p{margin:0;font-size:.93rem;color:var(--sk-mut);line-height:1.6}

/* ── кейсы и таблица-сетка ────────────────────────────────── */
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
 gap:12px;margin:18px 0}
.case{background:var(--sk-card2);border:1px solid var(--sk-line2);
 border-radius:12px;padding:18px;transition:.15s}
.case:hover{border-color:var(--sk-gold-dk);transform:translateY(-2px)}
.case [data-p],.case b{color:var(--sk-gold-lt);font-weight:700}

/* ── включено / не включено ───────────────────────────────── */
.incl{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
 gap:14px;margin:20px 0}
.incl .yes,.incl .extra-box{background:var(--sk-card2);
 border:1px solid var(--sk-line2);border-radius:12px;padding:20px}
.incl .yes{border-top:3px solid var(--sk-green)}
.incl .extra-box{border-top:3px solid var(--sk-gold)}
.incl b{display:block;margin-bottom:11px;color:var(--sk-txt);font-weight:700;
 font-size:.97rem}

/* ── таблица цен ──────────────────────────────────────────── */
#preise{padding-block:46px}
#preise h2{font-size:clamp(1.3rem,2.8vw,1.9rem);margin:0 0 8px}
#preise>.wrap>p{color:var(--sk-mut);margin-bottom:20px}
#preise table{width:100%;border-collapse:separate;border-spacing:0 8px}
#preise tr{background:var(--sk-card)}
#preise td{padding:15px 18px!important;border:1px solid var(--sk-line);
 border-left:0;border-right:0;font-size:.97rem;vertical-align:middle;
 transition:.15s}
#preise td:first-child{border-left:1px solid var(--sk-line);
 border-radius:11px 0 0 11px;color:var(--sk-mut)}
#preise td:last-child{border-right:1px solid var(--sk-line);
 border-radius:0 11px 11px 0;text-align:right;font-family:"Bricolage Grotesque",sans-serif;
 font-weight:700;font-size:1.08rem;color:var(--sk-gold-lt);
 font-variant-numeric:tabular-nums;white-space:nowrap}
#preise tr:hover td{border-color:var(--sk-gold-dk);background:var(--sk-card2)}

/* ── вопросы ──────────────────────────────────────────────── */
#faq{padding-block:46px}
.faq-list{display:grid;gap:9px;max-width:860px}
.faq-item{background:var(--sk-card);border:1px solid var(--sk-line);
 border-radius:11px;overflow:hidden;transition:.15s}
.faq-item[open]{border-color:var(--sk-gold-dk);background:var(--sk-card2)}
.faq-item summary{cursor:pointer;list-style:none;padding:17px 52px 17px 20px;
 font-weight:600;font-size:1rem;position:relative;color:var(--sk-txt)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";position:absolute;right:21px;top:50%;
 width:9px;height:9px;border-right:2px solid var(--sk-gold);
 border-bottom:2px solid var(--sk-gold);transform:translateY(-70%) rotate(45deg);
 transition:transform .2s}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq-item summary:focus-visible{outline:2px solid var(--sk-gold-lt);
 outline-offset:-2px}
.faq-a{padding:0 20px 19px;color:var(--sk-mut);line-height:1.68;font-size:.95rem}
.faq-a [data-p]{color:var(--sk-gold-lt);font-weight:700}

/* ── схемы ────────────────────────────────────────────────── */
.bild{margin:24px 0 6px}
.bild svg{display:block;width:100%;height:auto}

/* ── кнопки ───────────────────────────────────────────────── */
.btn{transition:transform .14s,box-shadow .14s}
.btn:hover{transform:translateY(-2px)}

/* ── ритм секций ──────────────────────────────────────────── */
.section{padding-block:46px}
.sec-head{margin-bottom:22px}
.sec-head h2{font-size:clamp(1.35rem,3vw,2rem);margin:6px 0 0}
.sec-head .eyebrow{font-size:.76rem;letter-spacing:.1em;color:var(--sk-gold);
 font-weight:600;text-transform:uppercase}

@media (max-width:720px){
 .blk{padding:22px 20px}
 .page-hero{padding-block:38px 32px}
 #preise td{padding:12px 14px!important;font-size:.92rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ── форма заявки ─────────────────────────────────────────────────────────
   Разметку рисует shanbau.js, свои базовые стили у неё там же. Здесь только
   подтягиваем её под остальной вид: карточка заметнее, поля крупнее, шаги
   читаются. Имена классов и полей не трогаем — форма продолжает слать
   на /app/api/anfrage как раньше.
   ──────────────────────────────────────────────────────────────────────── */
#anfrage-mount,#anfrage{scroll-margin-top:90px}
.anf-card{background:linear-gradient(168deg,var(--sk-card2),var(--sk-card))!important;
 border:1px solid var(--sk-line2)!important;border-radius:20px!important;
 box-shadow:var(--sk-sh)!important;padding:30px 28px!important}
.anf-top .anf-title,.anf-h{font-family:"Bricolage Grotesque",Manrope,sans-serif;
 letter-spacing:-.01em}
.anf-h{font-size:1.16rem!important;margin-bottom:20px!important}
.anf-steps>*{height:4px!important;border-radius:99px!important;
 background:var(--sk-line2)!important;transition:background .25s}
.anf-steps>*.on,.anf-steps>*[class*=on]{background:var(--sk-gold)!important}
.anf-f label,.anf-f>span{font-size:.85rem;color:var(--sk-mut);font-weight:500}
.anf-f input,.anf-f textarea,.anf-f select{
 background:#17150f!important;border:1px solid var(--sk-line2)!important;
 border-radius:11px!important;padding:13px 15px!important;
 font:inherit!important;font-size:.97rem!important;color:var(--sk-txt)!important;
 width:100%;transition:border-color .15s,box-shadow .15s}
.anf-f input:focus,.anf-f textarea:focus{outline:0!important;
 border-color:var(--sk-gold)!important;
 box-shadow:0 0 0 3px rgba(200,155,60,.16)!important}
.anf-f input::placeholder,.anf-f textarea::placeholder{color:var(--sk-dim)}
.anf-s{border-radius:12px!important;padding:14px 12px!important;
 border:1px solid var(--sk-line2)!important;transition:.15s}
.anf-s:hover{border-color:var(--sk-gold-dk)!important;
 background:var(--sk-card2)!important}
.anf-s.on,.anf-s[aria-pressed=true]{border-color:var(--sk-gold)!important;
 background:rgba(200,155,60,.1)!important;color:var(--sk-gold-lt)!important}
.anf-seg button{border-radius:999px!important;padding:9px 15px!important;
 border:1px solid var(--sk-line2)!important;font-size:.87rem!important;
 transition:.15s}
.anf-seg button.on{background:var(--sk-gold)!important;color:#17140f!important;
 border-color:var(--sk-gold)!important;font-weight:600}
.anf-consent{font-size:.84rem!important;color:var(--sk-mut)!important;
 line-height:1.55}
.anf-consent input{accent-color:var(--sk-gold);width:17px;height:17px;
 margin-top:2px}
.anf-nav .btn{border-radius:999px!important;padding:13px 26px!important;
 font-weight:700!important}
.anf-alt{font-size:.86rem;color:var(--sk-mut);text-align:center;margin-top:16px}
.anf-alt a{color:var(--sk-gold-lt);font-weight:600}
.anf-done{text-align:center;padding:14px 0}
.anf-done .anf-ico{color:var(--sk-green)}
@media (max-width:620px){
 .anf-card{padding:22px 18px!important;border-radius:16px!important}
 .anf-row{grid-template-columns:1fr!important}
}
/* ═══ Фото на страницах ═════════════════════════════════════════════════════
   Никакого обтекания: оно ломало блоки, где уже есть колонки.
   Три формы, каждая занимает всю ширину блока и потому всегда симметрична:
     .hero-img  — широкий кадр под шапкой
     .blk-photo — полоса внутри блока, между абзацами
     .svc-grid  — ряд из трёх перед ценами
     .photo-band — фон во всю ширину с текстом и кнопкой
   ═══════════════════════════════════════════════════════════════════════ */

.hero-img{position:relative;margin:0 0 26px;border-radius:18px;overflow:hidden;
 background:var(--sk-card);box-shadow:var(--sk-sh);aspect-ratio:21/9}
.hero-img img{display:block;width:100%;height:100%;object-fit:cover}
.hero-img::after{content:"";position:absolute;inset:0;
 background:linear-gradient(180deg,rgba(19,17,13,.04) 0%,rgba(19,17,13,.3) 58%,
 rgba(19,17,13,.86) 100%)}
.hero-img .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;
 padding:22px 26px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hero-img .cap b{font-family:"Bricolage Grotesque",Manrope,sans-serif;
 font-size:clamp(1rem,2.1vw,1.32rem);color:#fff;letter-spacing:-.01em;
 text-shadow:0 2px 14px rgba(0,0,0,.7)}
.hero-img .cap .tag{background:rgba(200,155,60,.95);color:#17140f;
 font-size:.78rem;font-weight:700;padding:5px 13px;border-radius:999px}

/* полоса внутри блока — всегда во всю ширину, высота постоянная */
.blk-photo{margin:20px 0;border-radius:14px;overflow:hidden;
 border:1px solid var(--sk-line);background:var(--sk-card);position:relative;
 aspect-ratio:16/6}
.blk-photo img{display:block;width:100%;height:100%;object-fit:cover;
 transition:transform .6s cubic-bezier(.2,.6,.2,1)}
.blk-photo:hover img{transform:scale(1.03)}
.blk-photo figcaption{position:absolute;left:0;right:0;bottom:0;
 padding:30px 18px 13px;font-size:.87rem;font-weight:600;color:#fff;
 background:linear-gradient(180deg,transparent,rgba(19,17,13,.88));
 text-shadow:0 1px 8px rgba(0,0,0,.75)}

.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 6px}
.svc-grid figure{margin:0;position:relative;border-radius:13px;overflow:hidden;
 border:1px solid var(--sk-line);background:var(--sk-card);aspect-ratio:3/2;
 transition:transform .18s,border-color .18s,box-shadow .18s}
.svc-grid figure:hover{transform:translateY(-3px);border-color:var(--sk-gold-dk);
 box-shadow:var(--sk-sh)}
.svc-grid img{display:block;width:100%;height:100%;object-fit:cover}
.svc-grid figcaption{position:absolute;left:0;right:0;bottom:0;
 padding:26px 13px 11px;font-size:.84rem;font-weight:600;color:#fff;
 background:linear-gradient(180deg,transparent,rgba(19,17,13,.9));
 text-shadow:0 1px 6px rgba(0,0,0,.7)}

.photo-band{position:relative;margin:34px 0;border-radius:18px;overflow:hidden;
 display:flex;align-items:flex-end;isolation:isolate;aspect-ratio:21/8}
.photo-band img{position:absolute;inset:0;width:100%;height:100%;
 object-fit:cover;z-index:-2}
.photo-band::before{content:"";position:absolute;inset:0;z-index:-1;
 background:linear-gradient(100deg,rgba(19,17,13,.94) 0%,rgba(19,17,13,.74) 48%,
 rgba(19,17,13,.26) 100%)}
.photo-band .inner{padding:28px 30px;max-width:560px}
.photo-band h3{margin:0 0 9px;font-size:clamp(1.15rem,2.5vw,1.5rem);color:#fff}
.photo-band p{margin:0 0 15px;color:#ded6c6;font-size:.95rem;line-height:1.58}
.photo-band .btn{background:var(--sk-gold);color:#17140f;border-radius:999px;
 padding:11px 23px;font-weight:700;text-decoration:none;display:inline-flex;
 align-items:center;gap:8px;box-shadow:0 8px 26px rgba(200,155,60,.28)}

@media (max-width:860px){
 .svc-grid{grid-template-columns:1fr 1fr}
 .photo-band{aspect-ratio:auto;min-height:240px}
}
@media (max-width:560px){
 .svc-grid{grid-template-columns:1fr}
 .hero-img{aspect-ratio:16/10;border-radius:14px}
 .hero-img .cap{padding:15px 17px}
 .blk-photo{aspect-ratio:16/9}
 .photo-band .inner{padding:22px 19px}
}
@media (prefers-reduced-motion:reduce){
 .blk-photo img,.svc-grid figure{transition:none!important}
 .blk-photo:hover img{transform:none}
}

/* ── WhatsApp в шапке ───────────────────────────────────────────────────────
   Компактная: подпись живёт только на широких экранах. На средних остаётся
   кружок с иконкой, иначе кнопка выдавливает пункты меню — «FAQ» наезжал.
   ───────────────────────────────────────────────────────────────────────── */
.nav-right .btn-wa-top{display:inline-flex;align-items:center;justify-content:center;
 gap:7px;background:#1fa855;color:#fff;border:0;border-radius:999px;
 padding:8px 14px;font-weight:700;font-size:.88rem;text-decoration:none;
 line-height:1;white-space:nowrap;flex:0 0 auto;
 box-shadow:0 5px 16px rgba(31,168,85,.24);transition:transform .14s,background .14s}
.nav-right .btn-wa-top:hover{background:#25c161;transform:translateY(-1px)}
.nav-right .btn-wa-top:focus-visible{outline:2px solid #7ff0a8;outline-offset:3px}
.nav-right .btn-wa-top svg{width:17px;height:17px;flex:0 0 17px}
@media (max-width:1420px){
 .nav-right .btn-wa-top span{position:absolute;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap}
 .nav-right .btn-wa-top{padding:0;width:38px;height:38px;border-radius:50%}
}
@media (max-width:860px){.nav-right .btn-wa-top{display:none}}

/* ── блок вопросов: ровные ряды ─────────────────────────────────────────────
   В shanbau.css у .faq-list стоит align-items:start, поэтому каждая карточка
   высотой по своему тексту — в ряду из двух получалась ступенька. Тянем обе
   до высоты ряда.
   ───────────────────────────────────────────────────────────────────────── */
.faq-list{align-items:stretch!important;row-gap:10px}
.faq-list .faq-item{display:flex;flex-direction:column;height:100%}
.faq-list .faq-item summary{flex:0 0 auto}
.faq-list .faq-item[open]{height:auto}


/* ── иконки в шапке ────────────────────────────────────────────────────────
   На /preise шапка размечена иначе: <nav> там и есть .nav-links, обёртки .nav
   нет. У иконки телефона в сайтовом CSS нет размера — она держалась потоком,
   и вставка кнопки WhatsApp рядом растянула её до 82 px. Фиксируем размер
   любой иконки в правой группе.
   ───────────────────────────────────────────────────────────────────────── */
@media (min-width:861px){
 .nav-right a svg,.nav-right button svg{width:17px;height:17px;flex:0 0 17px}
 .nav-right .btn-wa-top{align-self:center}
}

/* ── правая группа шапки ───────────────────────────────────────────────────
   На страницах прайса .nav-right получала display:block — языки, телефон и
   кнопка вставали друг под друга столбиком. Баг был и до правок оформления,
   просто его никто не ловил. Приводим группу к одному поведению везде.
   ───────────────────────────────────────────────────────────────────────── */
@media (min-width:861px){
 .nav-right{display:flex!important;align-items:center;gap:10px;flex-wrap:nowrap}
 .nav-right .langs{display:flex;gap:2px;flex:0 0 auto}
 .nav-right .btn{flex:0 0 auto;white-space:nowrap}
}
@media (min-width:861px){
 .nav-right .btn,.nav-right a.btn{display:inline-flex;align-items:center;gap:7px;
  line-height:1}
 .nav-right .btn span,.nav-right .btn svg{flex:0 0 auto}
}
/* ярлык услуги на фото убран из разметки — прячем и стиль на всякий случай */
.hero-img .cap .tag{display:none}
.hero-img .cap{padding:20px 24px}

/* ── форма заявки на фоновом кадре ─────────────────────────────────────────
   Секция с формой получает фон той же услуги: трава на странице сада, щебень
   на вывозе. Фото уходит под затемнение, карточка формы остаётся читаемой.
   Имя файла приходит в переменной --bg прямо на секции.
   ───────────────────────────────────────────────────────────────────────── */
.section#angebot[style*="--bg"]{position:relative;isolation:isolate;
 border-radius:20px;overflow:hidden;margin:0 auto 10px;max-width:1180px;
 padding-block:36px!important}
.section#angebot[style*="--bg"]::before{content:"";position:absolute;inset:0;
 z-index:-2;background-image:var(--bg);background-size:cover;
 background-position:center;transform:scale(1.02)}
.section#angebot[style*="--bg"]::after{content:"";position:absolute;inset:0;
 z-index:-1;background:linear-gradient(180deg,rgba(19,17,13,.82),rgba(19,17,13,.93))}
.section#angebot[style*="--bg"] .anf-card{backdrop-filter:blur(3px);
 background:linear-gradient(170deg,rgba(42,37,27,.93),rgba(34,30,22,.95))!important;
 border-color:rgba(200,155,60,.3)!important}
@media (max-width:760px){
 .section#angebot[style*="--bg"]{border-radius:0;
  padding-block:26px!important}
}

/* ── кнопка заявки справа ──────────────────────────────────────────────────
   Над плавающей кнопкой WhatsApp. На телефоне скрыта: там внизу своя панель.
   ───────────────────────────────────────────────────────────────────────── */
.side-cta{position:fixed;right:18px;bottom:92px;z-index:60;display:inline-flex;
 align-items:center;gap:8px;background:var(--sk-gold,#c89b3c);color:#17140f;
 font:700 .92rem/1 Manrope,system-ui,sans-serif;padding:13px 20px;
 border-radius:999px;text-decoration:none;white-space:nowrap;
 box-shadow:0 8px 26px rgba(0,0,0,.45),0 0 0 4px rgba(200,155,60,.12);
 transition:transform .15s,background .15s}
.side-cta:hover{background:#e6c876;transform:translateY(-2px)}
.side-cta:focus-visible{outline:2px solid #fff;outline-offset:3px}
.side-cta svg{width:16px;height:16px;flex:0 0 16px}
@media (max-width:860px){.side-cta{display:none}}

/* ── цена в шапке страницы ─────────────────────────────────────────────────
   Крупная цифра «ab 0,17 €/m²» первой строкой читалась как ценник и отпугивала
   раньше, чем человек понял, за что платит. Цену не убираем — она остаётся в
   тексте, в таблице и в разметке для поиска, — но в шапке делаем её спокойной:
   обычный размер, приглушённый цвет, акцент уходит на кнопку.
   ───────────────────────────────────────────────────────────────────────── */
.pricebar{background:transparent!important;border:0!important;padding:0!important;
 margin-top:18px!important;gap:16px}
.pricebar .pb-num{font-size:1rem!important;font-weight:600!important;
 color:var(--sk-mut,#a89f8a)!important;letter-spacing:0!important;
 font-family:Manrope,system-ui,sans-serif!important}
.pricebar .pb-sub{color:var(--sk-dim,#7d7463)!important;font-size:.86rem!important}
.pricebar .pb-btn{box-shadow:0 8px 26px rgba(200,155,60,.26)}
@media (max-width:620px){
 .pricebar{flex-direction:column;align-items:flex-start;gap:12px}
 .pricebar .pb-btn{width:100%;justify-content:center}
}

/* ── запасные стили шапки ──────────────────────────────────────────────────
   /* nav-fallback */
   На страницах прайса нет инлайнового блока со стилями шапки: у обычной
   страницы три блока на 19 677 байт, у прайса два на 10 032, и правил для
   .btn, .btn-gold и .langs там нет вовсе. Поэтому языки слипались в
   «DERUUAEN», а кнопка звонка шла голым текстом. Баг давний, просто его
   никто не ловил. Копируем недостающие правила сюда — на страницах, где
   свои стили есть, они просто перекроют эти.
   ───────────────────────────────────────────────────────────────────────── */
.nav{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{font-weight:800;letter-spacing:.02em;font-size:1.1rem;display:flex;align-items:center;gap:10px}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(200,155,60,.16)}
.brand b{color:var(--gold)}
.nav-links{display:flex;gap:30px;font-size:.92rem;color:var(--muted);font-weight:500}
.nav-links a{position:relative;transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--gold);transition:width .25s}
.nav-links a:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:16px}
.langs{display:flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px}
.langs button{font:inherit;font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--muted-2);
    background:none;border:0;padding:6px 10px;border-radius:999px;cursor:pointer;transition:.2s}
.langs button:hover{color:var(--ink)}
.langs button[aria-current="true"]{background:var(--gold);color:#171410}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px}
.btn-wa{background:#25a35a;color:#fff;box-shadow:0 12px 30px -10px rgba(37,163,90,.6)}
.btn-wa:hover{background:#22b862;box-shadow:0 16px 40px -10px rgba(37,163,90,.75);transform:translateY(-2px)}
.btn-gold{background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:#181510;box-shadow:0 12px 30px -12px rgba(200,155,60,.6)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 18px 44px -12px rgba(200,155,60,.8)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-hi)}
.btn-sm{padding:10px 16px;font-size:.85rem}
@media (max-width:640px){.nav-links,.nav-right .btn{display:none}}
.langs a:hover{color:var(--ink)}
.langs a[aria-current="true"]{background:var(--gold);color:#171410}

/* подсветка активного языка и отступы — на прайсе этих правил тоже нет */
.langs a{font-size:.72rem;font-weight:700;letter-spacing:.04em;
 color:var(--muted-2);text-decoration:none;padding:6px 9px;border-radius:999px;
 transition:background .15s,color .15s}
.langs a:hover{color:var(--ink)}
.langs a[aria-current="true"]{background:var(--gold);color:#171410}

/* ── меню не должно налезать на языки ──────────────────────────────────────
   Украинские и русские пункты длиннее немецких: «Питання» вместо «FAQ»,
   «Ціни на переїзд» вместо «Umzugskosten». При нехватке места меню наезжало
   на переключатель языков. Делаем расстояние между пунктами плавающим и
   разрешаем меню сжиматься — правая группа при этом не сжимается никогда.
   ───────────────────────────────────────────────────────────────────────── */
@media (min-width:861px){
 .nav-links{gap:clamp(9px,1.1vw,30px)!important;min-width:0;
  font-size:clamp(.78rem,.92vw,.92rem);overflow:hidden}
 .nav-right{flex:0 0 auto;margin-left:14px}
 header .wrap{gap:10px}
}
@media (min-width:861px) and (max-width:1600px){
 .nav-links a[href*="ratgeber"],.nav-links a[href*="sovety"],
 .nav-links a[href*="porady"],.nav-links a[href*="guides"]{display:none}
}
@media (min-width:861px) and (max-width:1560px){
 .nav-links a[href*="faq"],.nav-links a[href$="#faq"]{display:none}
}

/* ══ страницы прайса: фото и переделанный верх ═══════════════════════════════
   Фото приходят инлайновой переменной --ph на самом блоке (CSS не умеет читать
   data-атрибут как url), поэтому селекторы цепляются за неё. Фон уходит в
   ::before под затемнение в ::after — текст поверх читается в любом кадре.
   ─────────────────────────────────────────────────────────────────────────── */

/* шапка страницы прайса */
.phead[style*="--ph:url("]{position:relative;isolation:isolate;overflow:hidden;
 padding:72px 0 38px!important;border-bottom:1px solid var(--line)}
.phead[style*="--ph:url("]::before{content:"";position:absolute;inset:0;z-index:-2;
 background-image:var(--ph);background-size:cover;background-position:center 38%}
.phead[style*="--ph:url("]::after{content:"";position:absolute;inset:0;z-index:-1;
 background:linear-gradient(177deg,rgba(18,17,14,.74),rgba(18,17,14,.9) 54%,var(--bg))}
.phead[style*="--ph:url("] h1{font-size:clamp(2.1rem,5.2vw,3.2rem);line-height:1.04;
 letter-spacing:-.025em;text-wrap:balance}
.phead[style*="--ph:url("] .sub{text-shadow:0 1px 14px rgba(0,0,0,.5)}
.phead[style*="--ph:url("] .fact{background:rgba(26,23,18,.78);
 border-color:var(--line-2);backdrop-filter:blur(4px)}

/* шапка каждой категории прайса */
.cat-h[style*="--ph:url("]{position:relative;isolation:isolate}
.cat-h[style*="--ph:url("]::before{content:"";position:absolute;inset:0;z-index:-2;
 background-image:var(--ph);background-size:cover;background-position:center}
.cat-h[style*="--ph:url("]::after{content:"";position:absolute;inset:0;z-index:-1;
 background:linear-gradient(100deg,rgba(26,23,18,.95) 22%,rgba(26,23,18,.72) 64%,
 rgba(26,23,18,.46))}
.cat-h[style*="--ph:url("] .ic{background:rgba(200,155,60,.2);
 border-color:rgba(200,155,60,.4);backdrop-filter:blur(3px)}
.cat-h[style*="--ph:url("] h2{text-shadow:0 1px 10px rgba(0,0,0,.55)}
.cat-h[style*="--ph:url("] .n{background:rgba(20,19,16,.78);backdrop-filter:blur(3px)}

@media (max-width:700px){
 .phead[style*="--ph:url("]{padding:44px 0 26px!important}
 /* на узком экране кадр в шапке категории слишком тесный — только намёк сбоку */
 .cat-h[style*="--ph:url("]::after{
  background:linear-gradient(100deg,rgba(26,23,18,.96) 40%,rgba(26,23,18,.8))}
}
@media (prefers-reduced-motion:no-preference){
 .phead[style*="--ph:url("]::before{animation:pheadIn 1.1s ease-out both}
}
@keyframes pheadIn{from{transform:scale(1.06)}to{transform:scale(1)}}

/* ── прайс на телефоне: фильтр в одну строку ────────────────────────────────
   Липкая панель фильтров переносила 10 категорий в 7 строк и занимала 500px
   из 812 — на сам прайс оставалась четверть экрана. Возвращаем боковую
   прокрутку (так и задумано в базовом правиле .chips, мобильное его ломало).
   ─────────────────────────────────────────────────────────────────────────── */
@media (max-width:700px){
 .tools .chips{flex-wrap:nowrap!important;overflow-x:auto!important;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  -ms-overflow-style:none;mask-image:linear-gradient(90deg,#000 88%,transparent)}
 .tools .chips::-webkit-scrollbar{display:none}
 .tools .chips>*{flex:0 0 auto;scroll-snap-align:start}
}

/* ── прайс: поиск компактнее ────────────────────────────────────────────────
   Строка шла во всю ширину (1180px) и высотой с кнопку — забирала внимание
   у самого прайса. Ужимаем до 520px и снижаем высоту; иконка и крестик
   подогнаны под новые отступы. На телефоне остаётся во всю ширину.
   ─────────────────────────────────────────────────────────────────────────── */
@media (min-width:701px){
 .tools .sbox{max-width:520px}
 .tools .sbox input{padding:10px 40px;font-size:.94rem}
 .tools .sbox>svg{left:13px;width:17px;height:17px}
 .tools .sclr{right:6px;width:30px;height:30px;font-size:1.2rem}
}

/* ── прайс: выбранная категория мягче ───────────────────────────────────────
   Активная кнопка была залита сплошным золотом с тёмным текстом и выбивалась
   из страницы сильнее, чем сами цены. Оставляем золото только в рамке, тексте
   и значке, фон — лёгкая подсветка.
   ─────────────────────────────────────────────────────────────────────────── */
.tools .chips button[aria-pressed="true"]{background:rgba(200,155,60,.13);
 border-color:rgba(200,155,60,.5);color:var(--gold-hi)}
.tools .chips button[aria-pressed="true"] svg{color:var(--gold)}
.tools .chips button[aria-pressed="true"]:hover{background:rgba(200,155,60,.2);
 border-color:rgba(200,155,60,.7)}

/* ── кнопка «Заявка» справа не ловила клик ──────────────────────────────────
   Контейнер .wa-fab растянут под скрытое меню (183×165) и лежит выше по слою,
   поэтому перехватывал клики по .side-cta под собой. Сам контейнер кликов не
   принимает, принимают только кнопка и пункты меню; наведение всплывает от
   них к контейнеру, так что меню по-прежнему раскрывается.
   ─────────────────────────────────────────────────────────────────────────── */
.wa-fab{pointer-events:none}
.wa-fab>*,.wa-fab a,.wa-fab button{pointer-events:auto}

/* ── вопросы в блоке .faq: карточки вместо голого списка ────────────────────
   16 страниц (прайс на 4 языках, страницы «что стоит», Ummeldung, мелкий
   ремонт) собраны с разметкой div.faq > details > summary + p — без классов,
   поэтому им не достались стили .faq-item из блока обычных страниц, и вопросы
   выглядели системным списком со стрелочками. Правила те же, что у .faq-item,
   переложенные на голые теги.
   ─────────────────────────────────────────────────────────────────────────── */
.faq{display:grid;gap:12px;max-width:900px}
.faq>details{background:var(--card);border:1px solid var(--line);
 border-radius:var(--r-sm);overflow:hidden;transition:border-color .25s}
.faq>details[open]{border-color:var(--line-2)}
.faq>details>summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:700;
 font-size:1.02rem;display:flex;align-items:flex-start;justify-content:space-between;
 gap:16px;color:var(--ink)}
.faq>details>summary::-webkit-details-marker{display:none}
.faq>details>summary::after{content:"";width:10px;height:10px;flex:0 0 auto;margin-top:4px;
 border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
 transform:rotate(45deg);transition:transform .25s}
.faq>details[open]>summary::after{transform:rotate(-135deg);margin-top:9px}
.faq>details>summary:hover{color:var(--gold-hi)}
.faq>details>*:not(summary){padding:0 20px 18px;color:var(--muted);
 font-size:.96rem;line-height:1.6;max-width:72ch}
.faq>details>*:not(summary) a{color:var(--gold-hi)}
@media (max-width:640px){
 .faq>details>summary{padding:15px 16px;font-size:.97rem}
 .faq>details>*:not(summary){padding:0 16px 15px}
}

/* ── узкие телефоны (iPhone SE и подобные, до 380px) ────────────────────────
   Шапка: четыре кнопки языков по 34px плюс бургер не оставляли места бренду —
   «ShanBau LEIPZIG» обрезался до «Sha». Нижняя панель: три кнопки в сумме
   занимали 342px при 329 доступных, и WhatsApp обрезался до «WhatsAp».
   Ужимаем и то и другое, ничего не пряча.
   ─────────────────────────────────────────────────────────────────────────── */
@media (max-width:379px){
 .langs a{padding:0 5px!important;font-size:.7rem!important;min-width:0}
 .langs{gap:1px}
 .brand .wm{font-size:.92rem}
 .brand .av-logo,.brand>i{width:27px!important;height:27px!important;flex:0 0 27px}
 .brand .wm{letter-spacing:-.01em}

 .mobile-bar{gap:6px;padding-left:10px;padding-right:10px}
 .mobile-bar .btn{padding:11px 8px;font-size:.84rem;min-width:0;gap:6px}
 .mobile-bar .btn svg{width:16px;height:16px}
}

/* ── заголовки не рвать дефисом ─────────────────────────────────────────────
   hyphens:auto резал слова посреди: «Umzugsunter-nehmen», «Лейпци-гу». Для
   обычного текста это уместно, в крупном заголовке читается как опечатка.
   Слова переносятся целиком; если слово длиннее строки, его по-прежнему
   разорвёт overflow-wrap, но это редкий случай.
   ─────────────────────────────────────────────────────────────────────────── */
h1,h2,h3,.hero h1,.page-hero h1,.pop .ph,.cat-h h2{hyphens:manual;-webkit-hyphens:manual}

/* ── карточки статей: нажимается вся карточка ───────────────────────────────
   В списке «Ratgeber» кликабельной была только строка заголовка высотой 17px —
   на телефоне в неё нужно попасть пальцем, хотя карточка выглядит как одна
   цель. Внутри карточки одна ссылка, поэтому растягиваем её на весь блок.
   ─────────────────────────────────────────────────────────────────────────── */
.way{position:relative}
.way h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.way:hover{border-color:var(--line-2)}
.way h3 a:focus-visible::after{outline:2px solid var(--gold);outline-offset:2px}

/* ── блок «коротко о главном»: четыре карточки текста ───────────────────────
   Были четыре одинаковых серых прямоугольника с заголовком и абзацем — Дима
   назвал их скучными. Добавляем золотую нить сверху, точку перед заголовком
   и мягкий градиент: текст тот же, читается как карточка, а не как выдержка.
   ─────────────────────────────────────────────────────────────────────────── */
.hwcard{position:relative;overflow:hidden;
 background:linear-gradient(162deg,var(--card-2,#26221a),var(--card,#1f1c16));
 border-color:var(--line,#332f25);transition:border-color .25s,transform .25s}
.hwcard::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;
 background:linear-gradient(90deg,var(--gold,#c89b3c),rgba(200,155,60,.15) 62%,transparent)}
.hwcard:hover{border-color:var(--line-2,#443f31);transform:translateY(-2px)}
.hwcard h2{display:flex;align-items:flex-start;gap:11px;color:var(--ink,#f4efe3)}
.hwcard h2::before{content:"";width:7px;height:7px;flex:0 0 7px;margin-top:8px;
 border-radius:50%;background:var(--gold,#c89b3c);
 box-shadow:0 0 0 4px rgba(200,155,60,.14)}
.hwcard p:first-of-type{color:var(--ink,#f4efe3);opacity:.92}
.hwcard p+p{color:var(--muted,#a89f8a)}
.hwcard p strong,.hwcard p b{color:var(--gold-hi,#e6c876);font-weight:700}
@media (max-width:700px){
 .hwcard{padding:17px 18px}
 .hwcard h2{font-size:1.02rem}
}

/* ── «Заявка» уступает место раскрытому меню ────────────────────────────────
   В покое кнопка стоит прямо над зелёным значком. Когда человек раскрывает
   меню WhatsApp, оно занимает ~245px снизу — на это время кнопка поднимается,
   чтобы ничего не перекрывалось, и возвращается обратно при закрытии.
   ─────────────────────────────────────────────────────────────────────────── */
.side-cta{transition:transform .15s,background .15s,bottom .22s ease}
body.wa-open .side-cta{bottom:290px}

/* ── блок «На нас можно положиться» ─────────────────────────────────────────
   Слева прямая речь бригады с подписью, справа три обещания с кадрами.
   Пришёл на смену шести одинаковым карточкам преимуществ.
   ─────────────────────────────────────────────────────────────────────────── */
.say{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}
.say-lead{border:1px solid rgba(200,155,60,.4);border-radius:var(--r,20px);padding:34px;
 background:linear-gradient(165deg,rgba(200,155,60,.09),transparent 65%);
 display:flex;flex-direction:column;justify-content:center}
.say-lead h3{font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.22;letter-spacing:-.02em;
 text-wrap:balance}
.say-lead p{color:var(--muted);margin-top:14px;line-height:1.65;font-size:1rem;max-width:46ch}
.say-lead .sig{margin-top:22px;display:flex;align-items:center;gap:12px;
 padding-top:18px;border-top:1px solid var(--line)}
.say-lead .sig-ph{width:46px;height:46px;border-radius:50%;flex:0 0 46px;
 background:url(/img/svc/umzug-6-eigener-transporter.webp) center/cover;
 border:2px solid rgba(200,155,60,.4)}
.say-lead .sig b{display:block;font-size:.95rem}
.say-lead .sig span{color:var(--muted-2);font-size:.86rem}
.say-grid{display:grid;grid-template-rows:repeat(3,1fr);gap:14px}
.say-c{background:var(--card);border:1px solid var(--line);border-radius:var(--r,20px);
 padding:18px 20px;display:flex;gap:14px;align-items:flex-start;
 transition:border-color .25s,transform .25s}
.say-c:hover{border-color:var(--line-2);transform:translateY(-2px)}
.say-c .say-ph{width:54px;height:54px;flex:0 0 54px;border-radius:12px;
 background-size:cover;background-position:center}
.say-c h4{font-size:1rem;line-height:1.3}
.say-c p{color:var(--muted);font-size:.9rem;line-height:1.5;margin-top:5px}
@media (max-width:860px){
 .say{grid-template-columns:1fr}
 .say-lead{padding:24px}
 .say-grid{grid-template-rows:none}
}
