/* Страница-список «Наши работы» (портфолио) — раздел «Работы».
   Блоки — как на карцентр.рф/portfolio/, в том же порядке: заголовок «Наши работы» + фильтр (По услугам · По маркам авто · Сбросить выбор)
   → «Портфолио работ» (карточки: название, услуги, марка, фото, «Смотреть полностью», «Показать еще работы») → контакты (подвал).
   Демо-версия: 4 работы, подобранные под разные сочетания фильтра (одна услуга / две услуги / «Другие» марки).
   Фильтр работает как на сайте: одна услуга и одна марка, повторный клик снимает выбор, оба условия складываются через «и».
   Выбор пишется в адрес (?service=…&brand=…), так что ссылку с фильтром можно дать с другой страницы (ссылка «?shumka=Y» со страницы
   шумоизоляции тоже понимается). Цвета, шрифты, шапка, кнопки и анимация — как на «Автозвуке» и детальной странице Mercedes-Benz GLC.
   Обычная прокрутка, шапка прячется вниз и возвращается вверх. Полосы разделов под первым экраном нет.
   Фото — только обложки 4 работ: оригиналы с карцентр.рф (/upload/iblock/), WebP q86 (base64), разрешение не менялось, без нейроапскейла.
   Логотипы марок — с сайта, WebP без потерь, в исходном размере. Для интеграции — отдельная версия с картинками в папке images. */

a{color:inherit;text-decoration:none}

button{font:inherit;color:inherit}

::selection{background:var(--red);color:var(--white)}

h1,h2,h3{font-family:var(--f-display);font-weight:700;margin:0;letter-spacing:-.03em;line-height:1.04;color:var(--ink);text-wrap:balance}
.label{font-family:var(--f-mono);font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}
.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--muted)}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--red);flex:none}
.dot{color:var(--red)}

.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

section[id]{scroll-margin-top:16px}
.blk{padding-top:var(--sec);padding-bottom:var(--sec)}
.blk.white{background:var(--white)}
.blk.dark{background:var(--graphite);color:rgba(255,255,255,.9)}
/* заголовок блока: слева «бровь» + h2, справа вводный текст */
.b-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px clamp(28px,5vw,96px);align-items:end;padding-bottom:clamp(28px,4vw,56px);margin-bottom:clamp(28px,4vw,56px);border-bottom:1px solid var(--line)}
.b-head.solo{grid-template-columns:minmax(0,1fr)}
.b-t{display:grid;gap:clamp(16px,2vw,24px);align-content:start;min-width:0;container-type:inline-size}
.b-head h2,.h2{font-size:clamp(28px,min(4.4vw,8.6cqi),68px);font-weight:900;letter-spacing:-.05em;line-height:.96}
.b-intro{margin:0;font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--graphite);max-width:62ch}
.blk.dark .b-head{border-bottom-color:rgba(255,255,255,.18)}
.blk.dark h2,.blk.dark h3{color:var(--white)}
.blk.dark .eyebrow{color:rgba(255,255,255,.72)}
.blk.dark .b-intro{color:rgba(255,255,255,.86)}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:6px 14px;border-radius:999px;background:var(--red-soft);color:var(--red-ink)}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none}

/* ---------- шапка (как на главной, «О нас», «Отзывах» и «Процессе шумоизоляции») ---------- */

/* ---------- кнопки ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:13px 22px;border-radius:999px;font-weight:600;font-size:15px;border:1.5px solid transparent;cursor:pointer;transition:transform .45s var(--ease-out),color .25s ease,border-color .25s ease,background-color .25s ease;overflow:hidden;isolation:isolate;white-space:nowrap;background:none}
.btn::before{content:"";position:absolute;inset:-2px;transform:translateY(102%);transition:transform .45s var(--ease-out);z-index:-1;border-radius:inherit}
.btn:active{transform:scale(.97);transition-duration:.14s}
.btn svg{width:16px;height:16px;transition:transform .35s var(--ease-out)}
.btn-red{background:var(--red);color:var(--white)}
.btn-red::before{background:var(--ink)}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line::before{background:var(--ink)}
.btn-white{background:var(--white);color:var(--ink)}
.btn-white::before{background:var(--ink)}
.btn-ghost-w{border-color:rgba(255,255,255,.75);color:var(--white)}
.btn-ghost-w::before{background:var(--white)}
.pill{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);color:var(--white);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none}

/* ---------- фото с увеличением (общие) ---------- */
.ph{position:relative;display:block;width:100%;padding:0;border:0;border-radius:18px;overflow:hidden;background:var(--paper-2);cursor:zoom-in}
.white .ph{background:var(--paper)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.ph .zoom{position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 10px 24px -14px rgba(0,0,0,.6);transition:transform .45s var(--ease-out),background-color .25s ease,color .25s ease}
.ph .zoom svg{width:18px;height:18px}

/* ---------- 10. Контакты (подвал сайта) ---------- */

/* ---------- просмотр фото на весь экран ---------- */
.lbx{position:fixed;inset:0;z-index:50;display:none;grid-template-rows:auto minmax(0,1fr) auto;background:rgba(20,20,20,.96);color:var(--white)}
.lbx.open{display:grid}
.lb-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:max(12px,env(safe-area-inset-top,0px)) var(--gr) 12px var(--gl)}
.lb-top .label{color:rgba(255,255,255,.8)}
.lb-fig{position:relative;margin:0;display:grid;place-items:center;min-height:0;padding:0 clamp(16px,6vw,96px)}
.lb-fig img{max-width:100%;max-height:calc(100vh - 190px);max-height:calc(100dvh - 190px);width:auto;height:auto;border-radius:12px;object-fit:contain;user-select:none;-webkit-user-drag:none}
.lb-cap{margin:0 auto;max-width:860px;padding:14px var(--gr) max(18px,env(safe-area-inset-bottom,0px)) var(--gl);font-size:15px;line-height:1.5;color:rgba(255,255,255,.9);text-align:center}
.lb-b{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:var(--white);display:grid;place-items:center;cursor:pointer;transition:background-color .2s ease,color .2s ease}
.lb-b svg{width:20px;height:20px}
.lb-prev,.lb-next{position:absolute;top:50%;margin-top:-24px}
.lb-prev{left:max(12px,var(--gl) - 40px)}
.lb-next{right:max(12px,var(--gr) - 40px)}
body.lb-on{overflow:hidden}

/* ---------- кнопка «наверх» ---------- */

/* ---------- появление при прокрутке ---------- */
html.anim [data-a]{opacity:0;transform:translateY(46px);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:var(--d,0s)}
html.anim [data-a="fade"]{transform:none}
html.anim [data-a].in{opacity:1;transform:none}
html.anim .h-photo img{transform:scale(1.12);transition:transform 2.2s var(--ease-out)}
html.anim.ready .h-photo img{transform:none}
html.anim .split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .1em .08em 0;margin:0 -.1em -.08em 0}
html.anim .split .w > span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease-out);transition-delay:calc(var(--d0,0s) + var(--i) * .035s)}
html.anim .split.in .w > span{transform:none}
html.anim [data-a] .ph img,html.anim [data-a].ph img{transform:scale(1.08)}
html.anim [data-a].in .ph img,html.anim [data-a].in.ph img{transform:none}
html.anim .cups b{transition:color .3s ease}

/* ---------- наведение (только мышь) ---------- */
@media (hover:hover) and (pointer:fine){

  .btn-red:hover,.btn-white:hover,.btn-line:hover{color:var(--white)}
  .btn-red:hover::before,.btn-white:hover::before,.btn-line:hover::before,.btn-ghost-w:hover::before{transform:none}
  .btn-ghost-w:hover{color:var(--red);border-color:var(--white)}
  .blk.dark .btn-ghost-w:hover{color:var(--ink)}

  .btn:hover svg{transform:translateX(3px) rotate(-45deg)}
  .ph:hover img{transform:scale(1.03)!important}
  .ph:hover .zoom{transform:scale(1.08);background:var(--red);color:var(--white)}

}

/* ---------- адаптив ---------- */

@media (max-width:1060px){

  .b-head{grid-template-columns:minmax(0,1fr);align-items:start}
}
@media (max-width:860px){

  .h-btns .btn-ghost-w{border-color:var(--ink);color:var(--ink)}
  .tab{flex:none}
  .ph .zoom{width:40px;height:40px;right:10px;bottom:10px}

}

/* 2K и 4K: композиция масштабируется так, чтобы выглядеть как на 1600 px */

/* ссылки, которые пока не ведут никуда */
a.off{pointer-events:none;cursor:default}

/* ---------- 1. Наши работы: заголовок + фильтр ---------- */
.top{padding-top:calc(var(--hdr) + env(safe-area-inset-top,0px) + clamp(28px,4vw,64px));padding-bottom:clamp(40px,5vw,80px)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--muted)}
.crumbs a{display:inline-flex;align-items:center;min-height:32px}
.crumbs i{font-style:normal;color:var(--red)}
.crumbs [aria-current]{color:var(--ink)}
.t-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px 48px;margin:clamp(14px,2vw,24px) 0 clamp(28px,4vw,56px);container-type:inline-size}
.top h1{white-space:nowrap;font-size:clamp(44px,min(9.4cqi,14vh),136px);font-weight:900;line-height:.9;letter-spacing:-.06em;padding-bottom:.04em}
.t-sum{display:grid;gap:10px;justify-items:end;text-align:right;padding-bottom:.6em}
.t-sum b{font-family:var(--f-display);font-weight:900;font-size:clamp(40px,4.6vw,72px);line-height:.9;letter-spacing:-.06em;color:var(--ink);font-variant-numeric:tabular-nums}
.t-sum .label{color:var(--muted)}
.flt{background:var(--white);border-radius:24px;padding:clamp(20px,2.6vw,40px);display:grid;gap:clamp(20px,2.4vw,32px)}
.f-grp{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:14px clamp(20px,3vw,48px);align-items:start}
.f-grp + .f-grp{padding-top:clamp(20px,2.4vw,32px);border-top:1px solid var(--line)}
.f-h{display:grid;gap:6px;padding-top:6px}
.f-h h2{font-size:clamp(18px,1.5vw,22px);font-weight:700;letter-spacing:-.03em}
.f-h .label{color:var(--muted)}
.f-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.fc{position:relative;display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:6px 16px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:15px;font-weight:500;line-height:1.2;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease,opacity .25s ease,transform .45s var(--ease-out)}
.fc img{width:auto;height:auto;max-width:34px;max-height:24px;flex:none;transition:filter .25s ease}
.fc .n{font-family:var(--f-mono);font-size:11px;letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums;transition:color .25s ease}
.fc:active{transform:scale(.97);transition-duration:.14s}
.fc[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.fc[aria-pressed="true"] .n{color:rgba(255,255,255,.7)}
.fc[aria-pressed="true"] img{background:var(--white);border-radius:6px;padding:2px 3px;box-sizing:content-box}
.fc[aria-pressed="true"]::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);flex:none;margin-right:-2px}
.fc.zero{opacity:.45}
.fc.zero[aria-pressed="true"]{opacity:1}
.f-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:clamp(20px,2.4vw,28px);border-top:1px solid var(--line)}
.f-state{margin:0;font-size:15px;color:var(--graphite)}
.f-state b{color:var(--ink)}
.f-act{display:flex;flex-wrap:wrap;gap:10px}
.reset svg{width:14px;height:14px}
.reset:disabled{opacity:.35;cursor:default;pointer-events:none}

/* ---------- 2. Портфолио работ (карточки) ---------- */
.w-head{display:flex;align-items:end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap}
.w-head .label b{color:var(--ink);font-weight:500}
.w-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,4vw,56px) 16px}
.wc{display:flex;flex-direction:column;gap:18px;min-width:0}
.wc[hidden]{display:none}
.wc-pic{position:relative;display:block;aspect-ratio:16/10;border-radius:18px;overflow:hidden;background:var(--paper)}
.wc-pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.wc-pic .go{position:absolute;right:16px;bottom:16px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--ink);transition:transform .45s var(--ease-out),background-color .25s ease,color .25s ease}
.wc-pic .go svg{width:20px;height:20px;transform:rotate(-45deg)}
.wc-pic .num{position:absolute;left:16px;top:16px;min-height:28px;display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:rgba(11,11,11,.55);color:var(--white);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.wc-b{display:grid;gap:14px;container-type:inline-size}
.wc h3{font-size:clamp(20px,1.9vw,28px);font-weight:700;letter-spacing:-.035em;line-height:1.1}
.wc-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tg{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 14px;border-radius:999px;border:1px solid var(--grey);background:none;color:var(--ink);font-size:14px;font-weight:500;cursor:pointer;transition:background-color .25s ease,border-color .25s ease,color .25s ease}
.tg img{width:auto;height:auto;max-width:30px;max-height:20px}
.tg.on{background:var(--red-soft);border-color:transparent;color:var(--red-ink)}
.wc-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-top:14px;border-top:1px solid var(--line)}
.wc-foot .label{color:var(--muted)}
.empty{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 40px;background:var(--paper);border-radius:24px;padding:clamp(24px,3vw,44px)}
.empty[hidden]{display:none}
.empty h3{font-size:clamp(22px,2.2vw,32px);font-weight:900;letter-spacing:-.045em}
.empty p{margin:10px 0 0;font-size:clamp(16px,1.2vw,18px);line-height:1.55;color:var(--graphite);max-width:52ch}
.more{display:flex;justify-content:center;margin-top:clamp(40px,5vw,72px)}
.more[hidden]{display:none}

@media (hover:hover) and (pointer:fine){
  .fc:hover{border-color:var(--ink)}
  .fc[aria-pressed="true"]:hover{background:var(--graphite)}
  .tg:hover{border-color:var(--ink)}
  .tg.on:hover{border-color:var(--red)}
  .wc:hover .wc-pic img{transform:scale(1.04)}
  .wc:hover .go{transform:scale(1.08);background:var(--red);color:var(--white)}
  .crumbs a:hover{color:var(--ink)}
}
@media (max-width:1060px){
  .f-grp{grid-template-columns:minmax(0,1fr)}
  .f-h{grid-auto-flow:column;justify-content:start;align-items:baseline;gap:14px;padding-top:0}
}
@media (max-width:860px){
  .t-row{grid-template-columns:minmax(0,1fr);gap:16px}
  .top h1{white-space:normal;font-size:clamp(40px,14cqi,96px)}
  .t-sum{justify-items:start;text-align:left;grid-auto-flow:column;align-items:baseline;justify-content:start;gap:12px;padding-bottom:0}
  .t-sum b{font-size:clamp(32px,10vw,48px)}
  .flt{border-radius:18px;padding:18px 0;gap:18px}
  .f-grp{padding:0 16px}
  .f-grp + .f-grp{padding-top:18px}
  .f-foot{padding:16px 16px 0}
  /* марки — лента вбок, чтобы 21 кнопка не занимала полэкрана */
  .f-list.brands{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px;scroll-padding:0 16px}
  .f-list.brands::-webkit-scrollbar{display:none}
  .f-list.brands .fc{flex:none}
  .f-list.brands{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
  .f-act{width:100%}
  .f-act .btn{flex:1 1 auto}
  .w-grid{grid-template-columns:minmax(0,1fr);gap:40px}
  .wc-pic{border-radius:16px}
  .wc-pic .go{width:44px;height:44px;right:12px;bottom:12px}
  .wc-pic .num{left:12px;top:12px}
  .wc-foot .btn{width:100%}
  .empty{grid-template-columns:minmax(0,1fr)}
  .empty .btn{justify-self:start}
}

