/* Единые стрелки сайта (migration/arrows): текстовые стрелки в ссылках — inline-SVG <svg class="ave-arr">,
   кнопки слайдеров, каруселей, просмотра фото, пагинации и «наверх» — круглые 44px с той же стрелкой.
   Правило: навигация (вперёд/назад/наверх) — стрелка, раскрытие (меню, «ещё») — шеврон.
   Файл подключается последним и только переопределяет вид стрелок в стилях разделов. */

:root {
    --ave-arr-ease: cubic-bezier(.23, 1, .32, 1);
    --ave-arr-ink: #17181d;
    --ave-arr-accent: #e90000;
    --ave-i-r: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 8h11M9.5 4l4 4-4 4'/%3E%3C/svg%3E");
    --ave-i-l: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 8h-11M6.5 4l-4 4 4 4'/%3E%3C/svg%3E");
    --ave-i-d: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2.5v11M4 9.5l4 4 4-4'/%3E%3C/svg%3E");
    --ave-i-cd: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
    /* кнопки: значок 18px, линия ~1.6px */
    --ave-b-r: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 8h11M9.5 4l4 4-4 4'/%3E%3C/svg%3E");
    --ave-b-l: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 8h-11M6.5 4l-4 4 4 4'/%3E%3C/svg%3E");
    --ave-b-u: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 13.5v-11M4 6.5l4-4 4 4'/%3E%3C/svg%3E");
}

/* ---------- стрелка в тексте ---------- */
svg.ave-arr {
    display: inline-block;
    flex: none;
    width: 1em;
    height: 1em;
    margin: 0;
    overflow: visible;
    vertical-align: -.14em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s var(--ave-arr-ease);
}
@media (hover: hover) and (pointer: fine) {
    a:hover svg.ave-arr, button:hover svg.ave-arr, a:focus-visible svg.ave-arr { transform: translateX(3px); }
    a:hover svg.ave-arr--l, button:hover svg.ave-arr--l, a:focus-visible svg.ave-arr--l { transform: translateX(-3px); }
    a:hover svg.ave-arr--ext, a:focus-visible svg.ave-arr--ext { transform: translate(2px, -2px); }
    a:hover svg.ave-arr--d, a:focus-visible svg.ave-arr--d { transform: translateY(2px); }
    a:hover svg.ave-arr--u, a:focus-visible svg.ave-arr--u { transform: translateY(-2px); }
    /* обёртки, которые раньше сдвигались сами: двигается только стрелка */
    .hp-svc__card:hover .hp-svc__foot i,
    .hp-dev:hover .hp-dev__go i,
    .corp-card:hover .corp-card__more span,
    .corp-card--all:hover .corp-card__all-t span,
    .us-drt__card:hover .us-drt__go i,
    .us-card > a:hover .us-card__foot i { transform: none; }
    .hp-door:hover .hp-door__go i,
    .hp-fcase:hover .hp-fcase__go i { margin-left: 0; }
}

/* стрелки, которые рисует CSS (::after/::before), — та же иконка маской */
.ave-ab-case__more::after,
.ave-ab-proj__more::after,
.ave-dir__links a::after,
.ev-more__card b::after,
.vd-cta__btn::after,
.os-links li::before,
.kb-sec__more > summary::after {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -.14em;
    background-color: currentColor;
    -webkit-mask: var(--ave-i-r) center / 100% 100% no-repeat;
    mask: var(--ave-i-r) center / 100% 100% no-repeat;
    transition: transform .18s var(--ave-arr-ease);
}
.ave-dir__links a::after, .ev-more__card b::after, .vd-cta__btn::after { margin-left: .3em; }
.ev-more__card b::after { color: var(--ev-red, var(--ave-arr-accent)); }
.os-links li::before { top: .3em; width: .95em; height: .95em; }
.kb-sec__more > summary::after { margin-left: .3em; -webkit-mask-image: var(--ave-i-cd); mask-image: var(--ave-i-cd); }
.kb-sec__more[open] > summary::after { content: ""; transform: rotate(180deg); }
@media (hover: hover) and (pointer: fine) {
    .ave-dir__links a:hover::after, .ev-more__card:hover b::after, .vd-cta__in:hover .vd-cta__btn::after { transform: translateX(3px); }
}

/* ---------- круглые кнопки «назад / вперёд» ---------- */
.ave-slider .ave-slider__arrow,
.hp-sl__btn:not(.hp-sl__btn--toggle),
.corp__btn,
.pr-lb .pr-lb__prev, .pr-lb .pr-lb__next,
button.mfp-arrow,
.cfs--navigation a.cfs--prev, .cfs--navigation a.cfs--next {
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid;
    border-radius: 50%;
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease, transform .16s var(--ave-arr-ease);
}
.hp-sl__btn:not(.hp-sl__btn--toggle),
.corp__btn,
button.mfp-arrow,
.cfs--navigation a.cfs--prev, .cfs--navigation a.cfs--next { display: inline-flex; }
.ave-slider .ave-slider__arrow > svg,
.hp-sl__btn:not(.hp-sl__btn--toggle) > *,
.corp__btn > svg,
.pr-lb .pr-lb__prev > *, .pr-lb .pr-lb__next > *,
button.mfp-arrow > * { display: none; }
.ave-slider .ave-slider__arrow::before,
.hp-sl__btn:not(.hp-sl__btn--toggle)::before,
.corp__btn::before,
.pr-lb .pr-lb__prev::before, .pr-lb .pr-lb__next::before,
button.mfp-arrow::before,
.cfs--navigation a.cfs--prev::before, .cfs--navigation a.cfs--next::before {
    content: "";
    display: block;
    position: static;
    width: 18px;
    height: 18px;
    margin: 0;
    border: 0;
    background-color: currentColor;
    -webkit-mask: var(--ave-b-r) center / 100% 100% no-repeat;
    mask: var(--ave-b-r) center / 100% 100% no-repeat;
    font-family: inherit;
    font-size: 0;
    transition: transform .18s var(--ave-arr-ease);
}
.ave-slider .ave-slider__arrow--prev::before,
.hp-sl__btn[data-hp-prev]::before,
.corp__btn[data-corp-prev]::before,
.pr-lb .pr-lb__prev::before,
button.mfp-arrow-left::before,
.cfs--navigation a.cfs--prev::before { -webkit-mask-image: var(--ave-b-l); mask-image: var(--ave-b-l); }
button.mfp-arrow::after { display: none; }

/* на тёмном: прозрачная, тонкая обводка; наведение — белая с тёмной стрелкой */
.ave-slider .ave-slider__arrow,
.hp-sl__btn:not(.hp-sl__btn--toggle),
.pr-lb .pr-lb__prev, .pr-lb .pr-lb__next,
button.mfp-arrow,
.cfs--navigation a.cfs--prev, .cfs--navigation a.cfs--next {
    border-color: rgba(255, 255, 255, .32);
    background: rgba(14, 16, 21, .32);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: #fff;
}
.ave-slider .ave-slider__arrow { margin-top: -22px; }
.hp-sl__btn:not(.hp-sl__btn--toggle) { border-color: rgba(255, 255, 255, .26); background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
button.mfp-arrow, button.mfp-arrow:active { top: 50%; margin: -22px 0 0; opacity: 1; transform: none; }
button.mfp-arrow-left { left: 16px; }
button.mfp-arrow-right { right: 16px; }
.cfs--navigation a.cfs--prev, .cfs--navigation a.cfs--next { margin-top: -22px; text-align: center; }
.cfs--navigation a.cfs--prev { left: 16px; }
.cfs--navigation a.cfs--next { right: 16px; }

@media (min-width: 641px) { .pr-lb .pr-lb__prev, .pr-lb .pr-lb__next { margin-top: -22px; } }

/* на светлом: белая с серой обводкой; наведение — графитовая */
.corp__btn { border-color: #d5d7dd; background: #fff; color: var(--ave-arr-ink); }

@media (hover: hover) and (pointer: fine) {
    .ave-slider .ave-slider__arrow:hover,
    .hp-sl__btn:not(.hp-sl__btn--toggle):hover,
    .pr-lb .pr-lb__prev:hover, .pr-lb .pr-lb__next:hover,
    button.mfp-arrow:hover,
    .cfs--navigation a.cfs--prev:hover, .cfs--navigation a.cfs--next:hover { border-color: #fff; background: #fff; color: var(--ave-arr-ink); }
    .corp__btn:hover:not(:disabled) { border-color: var(--ave-arr-ink); background: var(--ave-arr-ink); color: #fff; }
    .ave-slider .ave-slider__arrow--next:hover::before,
    .hp-sl__btn[data-hp-next]:hover::before,
    .corp__btn[data-corp-next]:hover:not(:disabled)::before,
    .pr-lb .pr-lb__next:hover::before,
    button.mfp-arrow-right:hover::before,
    .cfs--navigation a.cfs--next:hover::before { transform: translateX(2px); }
    .ave-slider .ave-slider__arrow--prev:hover::before,
    .hp-sl__btn[data-hp-prev]:hover::before,
    .corp__btn[data-corp-prev]:hover:not(:disabled)::before,
    .pr-lb .pr-lb__prev:hover::before,
    button.mfp-arrow-left:hover::before,
    .cfs--navigation a.cfs--prev:hover::before { transform: translateX(-2px); }
}
.ave-slider .ave-slider__arrow:active,
.hp-sl__btn:not(.hp-sl__btn--toggle):active,
.corp__btn:active:not(:disabled),
.pr-lb .pr-lb__prev:active, .pr-lb .pr-lb__next:active,
button.mfp-arrow:active,
.cfs--navigation a.cfs--prev:active, .cfs--navigation a.cfs--next:active { transform: scale(.96); }
.corp__btn:disabled { border-color: #e4e5ea; background: #fff; color: var(--ave-arr-ink); opacity: .4; cursor: default; }
.ave-slider .ave-slider__arrow:focus-visible,
.hp-sl__btn:focus-visible,
.pr-lb .pr-lb__prev:focus-visible, .pr-lb .pr-lb__next:focus-visible,
button.mfp-arrow:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.corp__btn:focus-visible { outline: 2px solid var(--ave-arr-accent); outline-offset: 3px; }

/* ---------- пагинация ‹ › ---------- */
.bl-pages__list .bl-pg--arrow,
.cs-pages__list .cs-pg--arrow { display: inline-flex; align-items: center; justify-content: center; padding-bottom: 0; font-size: 0; line-height: 0; }
.bl-pages__list .bl-pg--arrow::before,
.cs-pages__list .cs-pg--arrow::before {
    content: "";
    width: 18px;
    height: 18px;
    background-color: currentColor;
    -webkit-mask: var(--ave-b-r) center / 100% 100% no-repeat;
    mask: var(--ave-b-r) center / 100% 100% no-repeat;
    transition: transform .18s var(--ave-arr-ease);
}
.bl-pages__list .bl-pg--arrow:first-child::before,
.cs-pages__list .cs-pg--arrow:first-child::before { -webkit-mask-image: var(--ave-b-l); mask-image: var(--ave-b-l); }
@media (hover: hover) and (pointer: fine) {
    .bl-pages__list a.bl-pg--arrow:last-child:hover::before, .cs-pages__list a.cs-pg--arrow:last-child:hover::before { transform: translateX(2px); }
    .bl-pages__list a.bl-pg--arrow:first-child:hover::before, .cs-pages__list a.cs-pg--arrow:first-child:hover::before { transform: translateX(-2px); }
}

/* ---------- «наверх» ---------- */
#totop {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--ave-arr-ink);
    box-shadow: 0 8px 24px rgba(23, 24, 29, .18);
    line-height: 1;
    transition: right .3s var(--ave-arr-ease), opacity .2s ease, background-color .2s ease;
}
#totop::after {
    content: "";
    width: 18px;
    height: 18px;
    background-color: #fff;
    -webkit-mask: var(--ave-b-u) center / 100% 100% no-repeat;
    mask: var(--ave-b-u) center / 100% 100% no-repeat;
    font-family: inherit;
    transition: transform .18s var(--ave-arr-ease);
}
#totop.on { right: 16px; opacity: .88; }
#totop:hover { opacity: 1; background-color: var(--ave-arr-accent); }
@media (hover: hover) and (pointer: fine) { #totop:hover::after { transform: translateY(-2px); } }
#totop:focus-visible { outline: 2px solid var(--ave-arr-accent); outline-offset: 3px; }

/* ---------- шевроны меню ---------- */
#header .ave-nav__toggle svg, .site-mobile-nav .ave-nav__toggle svg { stroke-width: 1.6; }

/* ---------- кнопка «Позвонить / написать» справа ---------- */
.ave-sidecta__btn svg { stroke-width: 1.9; }

@media (max-width: 767px) {
    .ave-slider .ave-slider__arrow,
    .hp-sl__btn:not(.hp-sl__btn--toggle),
    .corp__btn,
    .pr-lb .pr-lb__prev, .pr-lb .pr-lb__next { width: 44px; height: 44px; }
    .lg-mfp button.mfp-arrow { transform: none; }
    #totop { width: 40px; height: 40px; }
    #totop.on { right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    svg.ave-arr,
    .ave-ab-case__more::after, .ave-ab-proj__more::after, .ave-dir__links a::after, .ev-more__card b::after, .vd-cta__btn::after,
    .ave-slider .ave-slider__arrow, .hp-sl__btn, .corp__btn, .pr-lb button, button.mfp-arrow, #totop,
    .ave-slider .ave-slider__arrow::before, .hp-sl__btn::before, .corp__btn::before, .pr-lb button::before, button.mfp-arrow::before,
    .bl-pg--arrow::before, .cs-pg--arrow::before, #totop::after { transition: none; }
    a:hover svg.ave-arr, button:hover svg.ave-arr, a:focus-visible svg.ave-arr { transform: none; }
}
