.sub-list-nav__link{white-space:normal;text-overflow:clip}.footer__ttl-list-link{transition:.2s ease-out}.footer__ttl-list-link:hover{color:var(--c-1)}.footer__clm:not(:last-child){margin-bottom:2rem}

/* Project gallery (страница проекта, /projects/) — чанк product_gallery, Swiper main + thumbs */
/* .post-qq__l сама по себе не имеет width/flex-basis в теме — раньше её растягивал <img width:100%> внутри,
   теперь растягиваем сами, только когда внутри реально галерея, чтобы не задеть другие страницы (новости и т.п.) */
.post-qq__l:has(.product-gallery){min-width:280px}
.product-gallery{position:relative;width:100%}
.post-qq__c-box{align-items:stretch} /* было align-items:center в fix.css */
.post-qq__r{justify-content:stretch} /* было justify-content:space-around в fix.css */

@media (min-width:1200.02px){
  .post-qq__l{width:66.6666667%}
  .post-qq__r{width:33.3333333%}
  .post-qq__l:has(.product-gallery){flex:0 0 66.6666667%;min-width:0}
}

@media (max-width:1200px){
  .post-qq__c-box{flex-flow:row wrap}
  .post-qq__l,.post-qq__r{width:100%}
  .post-qq__l:has(.product-gallery){flex-basis:100%;min-width:0} /* иначе flex-basis выше не даст галерее стать 100% */
}

.product-gallery__main{position:relative;padding-top:56.25%;border-radius:8px;overflow:hidden;background:transparent;margin-bottom:8px} /* aspect-ratio(1280,720) = 16:9 */
.product-gallery__main-slider{position:absolute;top:0;left:0;width:100%;height:100%}
.product-gallery__main .swiper-slide{height:100%}

.product-gallery-slide{position:relative;height:100%}
.product-gallery-slide__link{display:block;width:100%;height:100%;position:relative}
.product-gallery-slide__image{display:block;position:absolute;height:100%;max-width:100%;max-height:100%;object-fit:cover;top:50%;left:50%;transform:translate(-50%,-50%);width:auto}
.product-gallery-slide__image_horizontal{height:100%}

/* dst-button / dst-controls-group / dst-pagination — портировано с вашей SCSS-системы под чистый CSS,
   без миксинов/иконошрифта (стрелки — border-трюк) и с реальными брендовыми переменными сайта (--c-1/--c-2 из style.css) */
:root{
  --dst-button-height:64px;
  --dst-button-width:66px;
  --dst-button-font-size:24px;
  --dst-button-color:#fff;
  --dst-button-background:transparent;
  --dst-button-active-color:var(--c-1);
  --dst-button-active-background:transparent;
  --dst-button-border-radius:0;
  --dst-button-transition-duration:.2s;
  --dst-button-mobile-gutter:16px;
  --dst-z-index-navigation:5;
  --dst-pagination-color:var(--c-1);
  --dst-pagination-bullet-size:18px;
  --dst-pagination-dynamic-inactive-multiplier:55.56%;
  --dst-pagination-bullet-inactive-color:rgba(255,255,255,.3);
  --dst-pagination-bullet-opacity:1;
  --dst-pagination-bullet-horizontal-gap:4px;
  --dst-pagination-bullet-vertical-gap:4px;
  --dst-pagination-bullet-border:none;
}
@media (max-width:767.98px){
  :root{--dst-button-height:48px;--dst-button-width:48px;--dst-button-font-size:18px}
}

.dst-button{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;cursor:pointer;width:var(--dst-button-width);height:var(--dst-button-height);border-radius:var(--dst-button-border-radius);background:var(--dst-button-background);color:var(--dst-button-color);font-size:var(--dst-button-font-size);transition:color var(--dst-button-transition-duration) ease,background-color var(--dst-button-transition-duration) ease,opacity .1s;z-index:var(--dst-z-index-navigation);pointer-events:auto}
@media (hover:hover){
  .dst-button:hover{color:var(--dst-button-active-color);background:var(--dst-button-active-background)}
}
.dst-button::before{content:"";display:block;width:20px;height:20px;border-style:solid;border-width:2px 2px 0 0;border-color:currentColor}
.dst-button-prev{left:var(--dst-button-mobile-gutter)}
.dst-button-prev::before{transform:rotate(-135deg);margin-left:3px}
.dst-button-next{right:var(--dst-button-mobile-gutter)}
.dst-button-next::before{transform:rotate(45deg);margin-right:3px}
.dst-button.swiper-button-disabled{opacity:.35;pointer-events:none}
.dst-button-locked,.dst-button-hidden{display:none}

.dst-button--black{--dst-button-color:var(--c-1);--dst-button-active-color:color-mix(in srgb,var(--c-1) 75%,black)}
.dst-button--black.swiper-button-disabled{--dst-button-color:#666666;opacity:1}
.dst-button--primary{--dst-button-color:var(--c-2);--dst-button-active-color:var(--c-2)}
.dst-button--white{--dst-button-color:#fff;--dst-button-active-color:var(--c-1)}

.dst-controls-group{display:flex;margin:16px auto;align-items:center;justify-content:center;z-index:1}
.dst-controls-group>.dst-button{position:static;transform:none;left:auto;top:auto;right:auto;bottom:auto;outline:none!important}
.dst-controls-group>.dst-button-prev{margin-right:1rem}
.dst-controls-group>.dst-button-next{margin-left:1rem}
.dst-controls-group>.dst-pagination{margin:0}

.dst-controls-group_absolute{position:absolute;bottom:0;left:50%;transform:translateX(-50%)}
.dst-controls-group_vertical{margin-top:0!important;flex-flow:column;position:absolute;top:50%;transform:translateY(-50%);right:16px}
.dst-controls-group_vertical .dst-button-prev{margin-right:0;outline:none!important}
.dst-controls-group_vertical .dst-button-prev::before{transform:rotate(90deg)}
.dst-controls-group_vertical .dst-button-next{margin-left:0}
.dst-controls-group_vertical .dst-button-next::before{transform:rotate(90deg)}
.dst-controls-group_vertical .dst-button.swiper-button-disabled{opacity:.5}

/* .swiper-pagination — базовый класс, который Swiper всегда добавляет сам, задаёт position:absolute
   в style-new.css. Внутри dst-controls-group (flex-ряд) это ломает раскладку — возвращаем в поток. */
.dst-pagination.swiper-pagination{position:static}
.dst-pagination{font-size:0;margin:0 auto;transform:translate3d(0,0,0);transition:opacity .25s;z-index:10}

.dst-pagination-bullets{margin-top:calc(32px - var(--dst-pagination-bullet-vertical-gap,4px));text-align:center}
.dst-pagination-bullets-dynamic{margin-top:var(--dst-pagination-margin-top,32px);overflow:hidden;white-space:nowrap;height:var(--dst-pagination-bullet-height,var(--dst-pagination-bullet-size,8px));line-height:var(--dst-pagination-bullet-height,var(--dst-pagination-bullet-size,8px))}
.dst-pagination-bullets-dynamic>.dst-pagination-bullet{transition:200ms left;position:relative;transform:scale(var(--dst-pagination-dynamic-inactive-multiplier,.5))}
.dst-pagination-bullets-dynamic>.dst-pagination-bullet-active-main{transform:scale(1)}

.dst-pagination-bullet{width:var(--dst-pagination-bullet-width,var(--dst-pagination-bullet-size,8px));height:var(--dst-pagination-bullet-height,var(--dst-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--dst-pagination-color);opacity:.25;flex-shrink:0;border:var(--dst-pagination-bullet-border);margin:0 var(--dst-pagination-bullet-horizontal-gap,4px)}
button.dst-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;appearance:none}
.dst-pagination-clickable .dst-pagination-bullet{cursor:pointer}
.dst-pagination-bullet:only-child{display:none!important}
.dst-pagination-bullet-active,
.dst-pagination-bullet-active:hover,
.dst-pagination-bullet-active:focus{opacity:var(--dst-pagination-bullet-opacity,1);background:var(--dst-pagination-color)}

.dst-pagination-hidden,.dst-pagination-locked{display:none}

.dst-pagination--black{--dst-pagination-color:var(--c-1);--dst-pagination-bullet-inactive-color:rgba(102,102,102,.5);--dst-pagination-bullet-border:1px solid #999}
.dst-pagination--white{--dst-pagination-color:#fff;--dst-pagination-bullet-inactive-color:rgba(204,204,204,.3);--dst-pagination-bullet-border:1px solid #fff}
.dst-pagination--primary{--dst-pagination-color:var(--c-2);--dst-pagination-bullet-inactive-color:rgba(51,51,51,.3)}

.product-gallery__thumbs{width:100%;margin-top:8px}
.product-gallery-thumb{cursor:pointer;border-radius:8px}
.product-gallery-thumb:only-child{display:none}
.product-gallery-thumb:not(.swiper-slide-thumb-active){opacity:.7}

.product-gallery-thumb__wrapper{position:relative;border-radius:6px;overflow:hidden;padding-top:56.25%} /* aspect-ratio(160,90) = 16:9 */
.product-gallery-thumb__image{height:100%;width:100%;display:block;object-fit:cover;position:absolute;left:0;top:0}

/* Значок play поверх превью, если у слайда есть видео (file.add заполнен -> ссылка ведёт на видео, не на увеличенное фото) */
.product-gallery-slide__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.5);pointer-events:none;transition:background-color .2s ease;z-index:1}
.product-gallery-slide__play::before{content:"";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent #fff}
.product-gallery-slide__link:hover .product-gallery-slide__play{background:var(--c-1)}
@media (max-width:767.98px){
  .product-gallery-slide__play{width:48px;height:48px}
  .product-gallery-slide__play::before{border-width:9px 0 9px 15px}
}

/* Уменьшенный вариант — для миниатюр в тамбе (там сам кружок меньше, треугольник внутри тоже должен быть меньше) */
.product-gallery-slide__play_sm{width:28px;height:28px}
.product-gallery-slide__play_sm::before{border-width:6px 0 6px 10px}

/* .api-content — типографика для рич-текст контента (статьи, страницы политики и т.п.).
   Адаптировано под тёмную тему сайта: body background #373C3E / текст var(--white),
   акценты var(--c-1) жёлтый / var(--c-2) фиолетовый (как у .link:hover в style.css),
   "карточный" фон #2D2D2E — тот же токен, что у .footer__box и других блоков в style.css. */
:root{
  --content-gutter:1rem;
  --content-heading-gutter:.5em;
  --content-color-main:var(--c-1);
  --content-color-accent:var(--c-2);
  --content-list-gutter:.5rem;
  --content-list-offset:24px;
  --content-list-disc-size:10px;
  --content-list-disc-offset:.5em;
  --content-list-leading:1.6;
  --content-link-color:var(--content-color-main);
  --content-link-color-accent:var(--content-color-accent);
  --content-link-underline-style:dashed;
  --content-table-border-width:1px;
  --content-table-radius:.5rem;
  --content-table-spacing-x:.75rem;
  --content-table-spacing-y:1rem;
  --content-table-shadow-color:rgba(0,0,0,.35);
  --content-table-color:var(--white);
  --content-table-bc:rgba(255,255,255,.15);
  --content-table-bg:transparent;
  --content-table-heading-color:var(--white);
  --content-table-heading-bc:rgba(255,255,255,.15);
  --content-table-heading-bg:#2D2D2E;
  --content-table-heading-border-width:0;
  --content-table-row-bg:transparent;
  --content-table-row-even-bg:rgba(255,255,255,.03);
}

.api-content h1,.api-content h2,.api-content h3,.api-content h4,.api-content h5,.api-content h6{margin:calc(var(--content-heading-gutter) * 2) 0 var(--content-heading-gutter);font-weight:bold}
.api-content>:first-child{margin-top:0}
.api-content h1{font-size:2rem}
.api-content h2{font-size:1.75rem}
.api-content h3{font-size:1.5rem}
.api-content h4{font-size:1.25rem}
.api-content h5{font-size:1.125rem}
.api-content h6{font-size:1rem}
.api-content p{margin:0 0 var(--content-gutter) 0;word-wrap:break-word;max-width:100%}
.api-content p:last-child{margin-bottom:0}

.api-content blockquote{margin:var(--content-gutter) 0;position:relative;word-wrap:break-word;border-left:.25rem solid var(--content-color-main);background-color:#2D2D2E;color:var(--white);padding:1rem 1rem 1rem 2.5rem}
.api-content blockquote::before{content:"\201C";position:absolute;font-size:2rem;line-height:1;left:.65rem;top:.5rem;color:var(--content-color-main)}

.api-content hr{width:50%;margin:calc(var(--content-gutter) * 2) auto;border:none;border-top:1px solid rgba(255,255,255,.15)}
.api-content strong{font-weight:bold}
.api-content small{font-size:.875rem;opacity:.75}

.api-content a{color:var(--content-link-color);border-bottom:1px solid;border-bottom-style:var(--content-link-underline-style);text-decoration:none;transition:color .2s ease,border-color .2s ease}
.api-content a:hover,.api-content a:focus-visible{color:var(--content-link-color-accent)}

.api-content img{max-width:100%;height:auto}
.api-content iframe{max-width:100%}

.api-content ol,.api-content ul{margin:0 0 var(--content-gutter);padding-left:var(--content-list-offset)}
.api-content ol li,.api-content ul li{line-height:var(--content-list-leading)}
.api-content ol ol,.api-content ol ul,.api-content ul ol,.api-content ul ul{margin:var(--content-gutter) 0}
.api-content ul li{list-style-type:none}
.api-content ul li::before{content:"";position:absolute;width:var(--content-list-disc-size);height:var(--content-list-disc-size);border-radius:50%;top:var(--content-list-disc-offset);left:calc(var(--content-list-offset) * -1);background:var(--c-1)}
.api-content li{position:relative}
.api-content li:not(:last-child){margin-bottom:var(--content-list-gutter)}
.api-content>:last-child{margin-bottom:0}

.api-content table{width:100%;border-collapse:collapse;border-spacing:0;text-align:center;color:var(--content-table-color);margin:0;background:var(--content-table-bg);box-shadow:0 0 .75rem 0 var(--content-table-shadow-color);border:var(--content-table-border-width) solid var(--content-table-bc)}
.api-content th:not(:last-child){border-right:var(--content-table-heading-border-width) solid var(--content-table-heading-bc)}
.api-content th,.api-content td{padding:var(--content-table-spacing-y) var(--content-table-spacing-x)}
.api-content thead tr,.api-content tfoot tr{background-color:var(--content-table-heading-bg);font-weight:bold}
.api-content thead tr{border-bottom:var(--content-table-border-width) solid var(--content-table-bc)}
.api-content tfoot tr{border-top:var(--content-table-border-width) solid var(--content-table-bc)}
.api-content th,.api-content thead th{background-color:var(--content-table-heading-bg)}
.api-content thead td,.api-content thead th{color:var(--content-table-heading-color)}
.api-content td{color:var(--content-table-color)}
.api-content tr,.api-content tbody tr{background-color:var(--content-table-row-bg);border:var(--content-table-border-width) solid var(--content-table-bc)}
.api-content tr td,.api-content tbody tr td{border-right:var(--content-table-border-width) solid var(--content-table-bc)}
.api-content tr td:last-child,.api-content tbody tr td:last-child{border-right:none}
.api-content tr:not(:last-child),.api-content tbody tr:not(:last-child){border-bottom:var(--content-table-border-width) solid var(--content-table-bc)}
.api-content tr:nth-child(even){background-color:var(--content-table-row-even-bg)}

.table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;margin:0 0 var(--content-gutter) 0}