@import url('./module-fonts.css');
@import url('./module-navigation-menu.css');
@import url('./module-search-forms.css');
@import url('./module-spoilers.css');
@import url('./module-radial-contacts.css');
@import url('./module-qbpopups.css');
@import url('./module-ninjaforms-custom.css');
/*@import url('./module-cf7-custom.css');*/
@import url('./module-swiper847-custom.css');


/* ОБЩЕЕ - общие элементы структуры */
:root {
    --font-manrope: 'Manrope', sans-serif;
    
    --color-grey-606060: #606060;
    --color-grey-666: #666;
    --color-grey-7f7f7f: #7f7f7f;
    --color-grey-999: #999;
    --color-grey-a7a7a7: #a7a7a7;
    --color-grey-ccc: #ccc;
    --color-grey-d2d2d2: #d2d2d2;
    --color-grey-ddd: #ddd;
    --color-darkgrey-242424: #242424;
    --color-darkgrey-393939: #393939;
    --color-darkgrey-484848: #484848;
    --color-lightgrey-efeff0: #efeff0;
    --color-lightgrey-f1f1f1: #f1f1f1;
    --color-lightgrey-f6f6f6: #f6f6f6;
    --color-magenta-c475ad: #c475ad;
    --color-palemagenta-c374ac: #c374ac;
    --color-teal-7dc5ad: #7dc5ad;
    --color-paleteal-7cc4ac: #7cc4ac;
    --color-palepurple-5d639f: #5d639f;
}
::placeholder {
    font-family: var(--font-manrope);
    color: var(--color-grey-666);
}
html, body {
    font-family: var(--font-manrope);
    font-size: 16px;
    color: var(--color-grey-666);
}
main {
    flex-grow: 1;
    padding-bottom: 3.75rem;
    border-radius: 0 0 3.75rem 3.75rem;
    background-color: #fff;
}
section {
    position: relative;
    padding: 0 4.375rem;
}
main section {
    scroll-margin: 4.375rem;
}
.site_wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    /*min-width: calc(1640px + 4.375rem);*/  /* временно, пока нет адаптива и активен скрипт авто-viewport'a */
    min-height: 100%;
    overflow: hidden;
}
.container {
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 0 4.375rem;
}
.fullwidth_container {
    max-width: none !important;
}
.paddless_container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

main section .container {
    padding-top: 6rem;
    padding-bottom: 6rem;
}
main section:first-child > .container:first-child {
    padding-top: 2.5rem;
}
main section:last-child > .container:last-child {
    padding-bottom: 2.5rem;
}
main section.grey_container_section > .container {
    border-radius: 1.25rem;
    background-color: var(--color-lightgrey-f1f1f1);
    overflow: clip;
}
main section.transparent_section + section.transparent_section .container:first-child {
    padding-top: 0;
}
main section > .container + .container {
    padding-top: 0;
}
main section.grey_container_section + section.grey_container_section {
    margin-top: 6rem;
}

/* вариант с колонками */
main .main_columns {
    display: flex;
    padding: 3.75rem 4.375rem;
}
main section.transparent_section + .main_columns {
    padding-top: 0;
}
main .main_columns + section.transparent_section > .container {
    padding-top: 0;
}

main .main_columns .main_column {
    flex-grow: 1;
}
main .main_columns .main_column section {
    padding-left: 0;
    padding-right: 0;
}
main .main_columns .main_column .container {
    padding-left: 6.75rem;
    padding-right: 6.75rem;
}
main .main_columns .main_column section:first-child .container {
    padding-top: 0;
}
main .main_columns .main_column section:last-child .container {
    padding-bottom: 0;
}

main .main_columns .side_column {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    width: 31rem;
}
main .main_columns .side_column .grey_sidecontainer {
    padding-left: 4.375rem;
    padding-right: 4.375rem;
    border-radius: 1.625rem;
    background-color: var(--color-lightgrey-f1f1f1);
}


/* ОБЩЕЕ - дополнительные элементы структуры */
.section_title {
    text-align: left;
    font-size: 3rem;
    line-height: 1.1;
    font-weight: 200;
    color: var(--color-grey-666);
}
.section_title > * {
    text-align: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    color: inherit;
}

.sidecol_title {
    font-size: 2.25rem;
    font-weight: 900;
    color: var(--color-palemagenta-c374ac);
}
.sidecol_title > * {
    text-align: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    color: inherit;
}

body.desktop .no_desktop,
body.mobile .no_mobile {
    display: none;
}


/* ОБЩЕЕ - общие элементы контента */
a {
    color: var(--color-palemagenta-c374ac);
}
a:hover, a:focus {
    text-shadow: 0 0 0 currentColor;
}
a.obfusc_email {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
}
a.obfusc_email::before {
    content: attr(data-part_1) '@';
}
a.obfusc_email::after {
    content: attr(data-part_2) '.' attr(data-part_3);
}
strong, b {
    font-weight: 700;
    color: var(--color-grey-606060);
}
img {
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
}
button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    min-width: 15rem;
    max-width: 100%;
    min-height: 4rem;
    padding: 0.5rem 1.5rem;
    border: none;
    border-radius: 0.625rem;
    font-family: var(--font-manrope);
    font-size: 1.125rem;
    line-height: 1.2;
    font-weight: 600;
    color: var(--color-grey-666);
    transition: all 0.2s ease;
    cursor: pointer;
}
button:has(> a),
button:has(> span) {
    align-items: stretch;
    padding: 0;
}
button:hover {
    filter: brightness(1.1);
}
button.magenta_button {
    background-color: var(--color-palemagenta-c374ac);
    color: #fff;
}
button > a,
button > span {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 0.5rem 1.5rem;
    text-decoration: none;
    color: inherit;
    text-shadow: none;
    transition: inherit;
}
button > a:hover,
button > a:focus {
    text-shadow: none;
    text-decoration: none;
}

@keyframes call_animation {
    20% {transform: rotate(15deg);} 
    40% {transform: rotate(-10deg);} 
    60% {transform: rotate(5deg);} 
    80% {transform: rotate(-5deg);} 
    100% {transform: rotate(0deg);} 
}


/* ОБЩЕЕ - элементы текстовых секций */
.text_content {
    display: flow-root;
    font-size: 1.125rem;
    line-height: 1.2;
    font-weight: 500;
}
.text_content > *,
.text_content :is(h1, h2, h3, h4, p, ul, ol, table) {
    margin-bottom: 1.25rem;
}
.text_content :is(h1, h2, h3, h4, *.h1_like) {
    margin-top: 1.5rem;
    line-height: 1.1;
    font-weight: 500;
}
.text_content :is(h1, *.h1_like) {
    font-size: 4rem;
}
.text_content h2 {
    font-size: 3.5rem;
}
.text_content h3 {
    font-size: 3rem;
}
.text_content h4 {
    font-size: 2.5rem;
}
.text_content a:hover {
    text-decoration: underline;
    text-shadow: 0 0 0 currentColor;
}
.text_content ul {
    padding-left: 0.5rem;
}
.text_content ul > li,
.text_content ol > li {
    margin-bottom: 0.75rem;
}
.text_content li > p {
    margin-bottom: 0.75rem;
}
.text_content ul {
    --items-mark-size: 0.375rem;  /* размер менее 6px делать через стандартные маркеры, браузеры не умеют нормально рендерить мелкие скруглённые DOM элементы */
    --items-mark-vert-shift: 0px;
    --items-mark-horz-gap: 0.75rem;
    --items-line-height: 1.5;  /* не применяется напрямую, используется для расчёта положения метки */
    list-style-type: none;
    overflow: hidden;  /* фикс маркеров обтекающих float элементы перед списком */
}
.text_content ul > li {
    position: relative;
    padding-left: calc(var(--items-mark-size) + var(--items-mark-horz-gap));
}
.text_content ul > li::before {
    content: '';
    display: block;
    position: absolute;
    top: calc(1em * var(--items-line-height) * 0.5 + var(--items-mark-vert-shift));
    left: 0;
    transform: translateY(-50%);
    width: var(--items-mark-size);
    height: var(--items-mark-size);
    border-radius: 50%;
    background: center / contain no-repeat var(--color-darkgrey-393939);
}
.text_content ol {
    padding-left: 0;
    list-style: none;
    list-style-position: inside;
    counter-reset: item;
}
.text_content ol > li {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    column-gap: 0.5em;
}
.text_content ol > li::before {
    counter-increment: item;
    content: counter(item) '.';
    min-width: 1em;
    font-weight: 600;
    color: var(--color-paleteal-7cc4ac);
}
.text_content ol > li > * {
    grid-column: 2;
}
/*.text_content ol > li::marker {
    font-weight: 600;
    color: var(--color-paleteal-7cc4ac);
}*/
.text_content table {
    width: 100%;
    padding-top: 0.5rem;
    border-collapse: collapse;
    overflow: auto;
}
body.mobile .text_content table {
    display: block;
    max-width: 100%;
    overflow-x: scroll;
}
body.mobile .text_content tbody {
    display: block;
}
.text_content :is(tr, th, td) {
    margin: 0;
}
.text_content :is(th, td) {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-grey-999);
}
.text_content table.borderless :is(th, td) {
    border: none;
}
.text_content table.left_align :is(th, td)  {
    text-align: left;
}
.text_content table.left_col_left_align td:first-child {
    text-align: left;
}
.text_content table.center_align :is(th, td)  {
    text-align: center;
}
.text_content hr {
    margin-bottom: 1.5rem;
    padding-top: 0.5rem;
    border-bottom: 0.125rem solid var(--color-grey-999);
}
.text_content iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
}

.text_content > *:first-child,
.text_content :is(h1, h2, h3, h4, p, ul, ol, table):first-child,
body.desktop .text_content .no_desktop:first-child + *,
body.mobile .text_content .no_mobile:first-child + * {
    margin-top: 0;
    padding-top: 0;
}
.text_content > *:last-child,
.text_content :is(h1, h2, h3, h4, p, ul, ol, table):last-child,
body.desktop .text_content :has(+ *.no_desktop:last-child),
body.mobile .text_content :has(+ *.no_mobile:last-child) {
    margin-bottom: 0;
    padding-bottom: 0;
}


/* ОБЩЕЕ - дополнительные элементы текстовых секций */
.text_content .imgs_flex {
    --flex-wrap: nowrap;
    --elems-height: 15rem;
    --elems-ratio: auto;

    display: flex;
    flex-wrap: var(--flex-wrap);
    gap: 1rem;
}
.text_content .imgs_flex > * {
    font-size: 0;
}
.text_content .imgs_flex img {
    min-width: 0;
    height: var(--elems-height);
    aspect-ratio: var(--elems-ratio);
    object-fit: cover;
    object-position: center;
}

.text_content .imgs_grid {
    --grid-rows: 15rem;
    --grid-col-min: var(--grid-rows);
    --grid-cols: repeat(auto-fit, minmax(var(--grid-col-min), 1fr));
    --obj-fit: cover;

    display: grid;
    grid-template-columns: var(--grid-cols);
    grid-auto-rows: var(--grid-rows);
    gap: 1rem;
}
.text_content .imgs_grid > * {
    font-size: 0;
}
.text_content .imgs_grid img {
    width: 100%;
    height: 100%;
    object-fit: var(--obj-fit);
    object-position: center;
}


/* ОБЩЕЕ - элементы старого дизайна и контента */
.text_content ul > li > div:has(> table),
.text_content ol > li > div:has(> table) {
    display: flex;
}
.text_content ul > li > * + div:has(> table),
.text_content ol > li > * + div:has(> table) {
    padding-top: 0.75rem;
}
.text_content .infoblock {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: max-content;
    padding: 1rem;
    border-radius: 0.625rem;
    background-color: var(--color-lightgrey-f1f1f1);
}
.text_content .infoblock table :is(th, td) {
    padding: 0.5rem 0;
    border: none;
    text-align: left;
}
.text_content .infoblock table th {
    border-bottom: 1px solid var(--color-paleteal-7cc4ac);
}
.text_content table.catalog_table p:has(> img) {
    text-align: center;
}
.text_content table.catalog_table img {
    width: 18.75rem;
}


/* ХЕДЕР */
header {
    --header-elems-height: 2.875rem;
    --header-transition: 0.2s ease;
    height: var(--header-height);
}
.header_section {
    position: relative;
    z-index: 999;
    background-color: #fff;
    transition: all var(--header-transition);
}
body.sticky_header.scrolled .site_wrapper .header_section {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    box-shadow: 0 0 0.5rem var(--color-paleteal-7cc4ac);
}

.header_top_container {
    padding-top: 2.125rem;
    padding-left: 0;
    padding-right: 0;
}
body.sticky_header.scrolled .header_top_container {
    height: 0;
    overflow: hidden;
}
.header_top_layout {
    display: flex;
    gap: 4rem;
}

.header_bottom_container {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
    padding-right: 0;
}
body.sticky_header.scrolled .header_bottom_container {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.header_bottom_layout {
    display: flex;
    align-items: center;
    gap: 2.375rem;
    transition: all var(--header-transition);
}

/* лого */
.header_logo {
    flex-shrink: 0;
}
.header_logo a {
    display: block;
    font-size: 0;
}
.header_logo img {
    width: auto;
    height: 4.5rem;
    object-fit: contain;
    object-position: left;
}

/* название сайта */
.header_sitename {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    padding: 0 2.375rem 1rem;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--color-palepurple-5d639f);
}
.header_sitename::before,
.header_sitename::after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    z-index: -1;
    width: 100%;
    background-color: var(--color-lightgrey-efeff0);
}
.header_sitename::before {
    bottom: 55%;
    height: 200%;
}
.header_sitename::after {
    bottom: -8px;
    height: 100%;
    border-radius: 0 0 1.875rem 1.875rem;
}

/* меню */
.header_menu {
    flex-grow: 1;
}
.header_menu > * {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.header_menu ul.wp-menu {
    --topitem-font-size: 1.25rem;
    --topitem-line-height: 1.2;
    --topitem-font-weight: 500;
    --topitem-color: var(--color-grey-666);
    --topitem-active-color: var(--color-palemagenta-c374ac);

    gap: 0.5rem 3rem;
    flex-wrap: wrap;
    position: relative;
}
.header_menu ul.wp-menu a:hover {
    text-shadow: 0 0 1px currentColor;
}

/* контакты */
.header_phones {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    font-size: 1.25rem;
    line-height: 1.35;
    font-weight: 500;
    color: var(--color-palepurple-5d639f);
}
.header_phones a {
    text-decoration: none;
    color: inherit;
}
.header_phones a:hover {
    color: var(--color-palemagenta-c374ac);
    text-shadow: 0 0 0 currentColor;
}

.header_contacts {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 1.125rem;
}
.header_contacts a {
    display: block;
    border-radius: 50%;
    background-color: var(--color-paleteal-7cc4ac);
    font-size: 0;
}
.header_contacts img {
    width: var(--header-elems-height);
    height: var(--header-elems-height);
    object-fit: cover;
}

/* поиск */
.header_search .wp_search_form {
    --form-width: 11.5rem;
    --form-height: var(--header-elems-height);
    --form-paddings-horz: 1.25rem;

    --fields-border-width: 0px;

    --search-background: var(--color-lightgrey-efeff0);
    --search-active-background: var(--color-lightgrey-efeff0);
    --search-filled-background: var(--color-grey-ccc);
    --search-font-size: 1.25rem;
    --search-font-color: var(--color-palepurple-5d639f);
    --search-pholder-color: var(--color-palepurple-5d639f);

    --button-background: var(--color-lightgrey-efeff0);
    --button-active-background: var(--color-grey-ccc);
    --button-icon-size: 1.5rem;
}
.header_search .wp_search_elems > button::before {
    background-image: url('../images/icons/icon-search.svg');
}

/* мобильное меню */
.mobile_panel_toggler {
    --button-size: 2.5rem;
    --button-padds: 1.125rem;
    --line-shift: 4px;
    --line-color: #fff;

    border-radius: 50%;
    background-color: rgba(0 0 0 / 0.3);
    backdrop-filter: blur(30px);
}
.mobile_panel {
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    position: fixed;
    top: 0;
    left: auto;
    right: 0;
    z-index: 2;
    width: 21.5rem;
    height: 100%;
    transform: translateX(110%);
    border-radius: 1.5rem 0 0 1.5rem;
    background-color: #fff;
    padding: 1rem;
    opacity: 1;
    overflow: auto;
}
.mobile_panel.active {
    transform: translateX(0);
}
.mobile_panel_top {
    display: flex;
    gap: 1rem;
}

.mobile_search {
    margin-left: auto;
}
.mobile_search .wp_search_form {
    --form-width: 100%;
    --form-height: 2.75rem;
    --fields-border: solid var(--color-grey-999);
    --fields-border-width: 1px;
    --button-background: #fff;
    --button-active-background: #fff;
}
.mobile_search.search_collapsed .wp_search_elems > input[type=search]:focus {
    width: 100%;
}

.mobile_panel .panel_closer {
    flex-shrink: 0;
    width: calc(2.75rem - 2px);
    height: calc(2.75rem - 2px);
    border: 1px solid var(--color-grey-999);
    border-radius: 50%;
    background: center / 1.5rem no-repeat #fff url('../img/icons/icon-cross.svg');
    cursor: pointer;
}

.mobile_menu ul.wp-menu {
    --topitem-font-size: 1.5rem;
    --topitem-line-height: 1.1;

    --submenu-backcolor: transparent;

    --subitem-padds-vert : 0.5rem;
    --subitem-padds-horz: 0px;
    --subitem-line-height: 1.3;

    --link-color: var(--color-grey-666);
    --link-active-color: var(--color-grey-666);
    --sublink-color: var(--color-paleteal-7cc4ac);
    --sublink-active-color: var(--color-paleteal-7cc4ac);

    --dd-submenu-left: 0px;
    --dd-submenu-maxwidth: 100%;

    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
}
.mobile_menu ul.wp-menu > li.menu-item > span.link-wrapper > a {
    flex-grow: 0;
}
.mobile_menu ul.wp-menu ul.sub-menu {
    position: relative;
    height: 0;
    overflow: hidden;
    transition: none;
}
.mobile_menu ul.wp-menu li.menu-item.active ul.sub-menu {
    height: auto;
}
.mobile_menu ul.wp-menu ul.sub-menu > li.menu-item > span.link-wrapper > a {
    justify-content: space-between;
}

.mobile_menu ul.wp-menu ul.sub-menu li.menu-item a::after {
    content: '';
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    background: center / 0.75rem no-repeat url('../img/icons/arrow-up-right-blue.svg');
}
.mobile_menu ul.wp-menu ul.sub-menu li.menu-item:hover a::after,
.mobile_menu ul.wp-menu ul.sub-menu li.menu-item.active a::after,
.mobile_menu ul.wp-menu ul.sub-menu li.menu-item.current-menu-item a::after,
.mobile_menu ul.wp-menu ul.sub-menu li.menu-item.current-menu-ancestor a::after {
    filter: none;
}
.mobile_menu ul.wp-menu i.dropdown-toggler {
    flex-shrink: 0;
}
.mobile_menu ul.wp-menu i.dropdown-toggler::after {
    width: 1.5rem;
    height: 1.5rem;
    background: center / 1.5rem no-repeat url('../img/icons/arrow-down-spaced.svg');
    filter: brightness(0);
    transition: all 0.2s ease;
}
.mobile_menu ul.wp-menu li.menu-item.active i.dropdown-toggler::after {
    transform: scaleY(-1);
}
.mobile_menu ul.wp-menu li.menu-item.active > span.link-wrapper > i.dropdown-toggler::after {
    filter: invert(24%) sepia(91%) saturate(2018%) hue-rotate(178deg) brightness(97%) contrast(101%);
}


/* ФУТЕР */
footer {
    position: relative;
    /*background-color: var(--color-darkgrey-242424);*/  /* под дизайну */
    background-color: var(--color-darkgrey-484848);
    color: #fff;
}
footer::before {
    content: '';
    display: block;
    position: absolute;
    bottom: 100%;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 3.75rem;
    /*background-color: var(--color-darkgrey-242424);*/  /* под дизайну */
    background-color: var(--color-darkgrey-484848);
}
footer a {
    color: #fff;
}

.footer_container {
    padding-top: 6rem;
    padding-bottom: 3.5rem;
}
.footer_layout {
    display: grid;
    grid-template-columns: auto 14rem;
    gap: 4.625rem 7.25rem;
}

/* адреса и телефоны */
.footer_contacts_info {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}
.contacts_info_item {
    display: flex;
    flex-direction: column;
}
.contacts_info_item > div {
    position: relative;
    margin-bottom: 1.875rem;
}
.contacts_info_item > div:last-child {
    margin-bottom: 0;
}
.contacts_info_item .address {
    width: 12rem;
    margin-top: -2px;
    margin-bottom: calc(1.875rem - 4px);
    padding-top: 1.875rem;
    font-size: 1.125rem;
}
.contacts_info_item .address + div {
    margin-top: auto;
}
.contacts_info_item .address::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 12rem;
    height: 2px;
    background-color: #fff;
}
.contacts_info_item .map {
    line-height: 1;
}
.contacts_info_item .phone {
    padding-top: 1.875rem;
    font-size: 1.5rem;
}
.contacts_info_item .phone::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 12rem;
    height: 2px;
    background-color: #fff;
}
.contacts_info_item .phone a {
    text-decoration: none;
}
.contacts_info_item .phone a:hover,
.contacts_info_item .phone a:focus {
    text-decoration: underline;
}

/* емэйл */
.footer_side_column {
    display: flex;
    flex-direction: column;
    gap: 2.25rem;
}
.footer_email {
    position: relative;
    margin-bottom: 2.125rem;
    padding-bottom: 2.125rem;
}
.footer_email::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
    width: 12rem;
    height: 2px;
    background-color: #fff;
}
.footer_email a {
    display: flex;
    gap: 1rem;
    align-items: center;
}
.footer_email a::before {
    content: url('../images/icons/icon-email.svg');
    flex-shrink: 0;
    display: block;
    width: auto;
    height: calc(1.25rem + 4px);
    padding-top: 4px;
}

/* соц. сети */
.footer_socials {
    display: flex;
    gap: 1.75rem;
}
.footer_socials a {
    display: block;
    border-radius: 50%;
    background-color: var(--color-grey-999);
    font-size: 0;
}
.footer_socials img {
    width: 2.875rem;
    height: 2.875rem;
    object-fit: cover;
    filter: invert(1) invert(11%) sepia(65%) saturate(0%) hue-rotate(274deg) brightness(87%) contrast(92%);  /* #fff -> #242424 */
    /*filter: invert(1) invert(24%) sepia(0%) saturate(0%) hue-rotate(286deg) brightness(97%) contrast(83%);*/  /* #fff -> #484848 */
}

/* меню */
.footer_menu ul.wp-menu {
    --topitem-font-size: 1.125rem;
    --topitem-line-height: 1.2;
    --topitem-font-weight: 400;
    --topitem-color: #fff;
    --topitem-active-color: #fff;

    flex-direction: column;
    align-items: flex-start;
    gap: 1.75rem;
}
.footer_menu ul.wp-menu a {
    text-decoration: underline;
}

/* информация о компании */
.footer_company_info {
    display: flex;
    gap: 5.375rem;
    font-size: 1.125rem;
}
.footer_company_info .copyrights {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.footer_company_info .info_links {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

/* прокрутка наверх страницы */
.scroll_to_top {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 0.5rem;
    width: max-content;
    padding: 0.75rem 2rem;
    border-radius: 99px;
    background-color: var(--color-grey-999);
    font-size: 1.125rem;
    color: #fff;
    cursor: pointer;
}

/* фиксированная кнопка с контактами */
.radial_contacts {
    --main-button-padding: 0.75em;
    --main-buttons-backcolor: #fff;
    --inner-buttons-padding: 0px;
    --inner-buttons-backcolor: var(--color-paleteal-7cc4ac);

    --shadow-color: var(--color-paleteal-7cc4ac);
}
.radial_contacts a img {
    scale: 1.2;
}
.radial_contacts .radial_menu_phone img {
    scale: 0.75;
    filter: brightness(0) invert(1);
}


/* СТРАНИЦЫ, ЗАПИСИ, КАТЕГОРИИ - хлебные крошки */
main section.breadcrumbs_section .breadcrumbs_container.container {
    padding-top: 0.5rem;
    padding-bottom: 1.5rem;
}
.breadcrumbs_layout {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0.625rem;
    font-size: 1.125rem;
    line-height: 1.3;
}
.breadcrumbs_separator {
    width: 1px;
    background-color: var(--color-grey-999);
}
.breadcrumbs_link {
    color: var(--color-grey-666);
}
.breadcrumbs_link a {
    text-decoration: none;
    color: var(--color-paleteal-7cc4ac);
}
.breadcrumbs a:hover {
    text-decoration: underline;
}


/* СТРАНИЦЫ, ЗАПИСИ, КАТЕГОРИИ - общие элементы */
.default_page_section {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.breadcrumbs_section + .default_page_section {
    padding-top: 0;
}
main section.default_page_section .default_page_container.container {
    padding-top: 0.5rem;
    padding-bottom: 1.5rem;
}
.default_page_section .container:last-child {
    flex-grow: 1;
}
.page_content_columns {
    display: flex;
    gap: 2rem;
}
.page_content_columns > * {
    margin: 0;
}
.page_content_main_column  {
    flex-grow: 1;
}
.page_content_side_column {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    width: 30%;
}
.page_content_left_column {
    padding-right: 2rem;
    border-right: 2px solid var(--color-paleteal-7cc4ac);
}
.page_content_right_column {
    padding-left: 2rem;
    border-left: 2px solid var(--color-paleteal-7cc4ac);
}
.page_content_side_column img.page_main_image {
    float: none;
    width: 100%;
    object-fit: scale-down;
    margin: 0;
    padding: 0;
}

h1.page_title {
    text-align: left;
    font-size: 4rem;
    line-height: 1.1;
    font-weight: 500;
}
h1.page_title:has(+ *) {
    margin-bottom: 1.25rem;
}
h1.page_title_hidden {
    position: absolute;
    left: -200%;
    z-index: -1;
    height: 0;
    opacity: 0.01;
}
img.page_main_image {
    float: right;
    width: 30%;
    height: auto;
    margin-left: 3%;
    margin-bottom: 3%;
    border-radius: 0.375rem;
    transition: all 0.2s ease;
}
img.page_main_image:hover {
    box-shadow: 0 0 6px var(--color-paleteal-7cc4ac);
}


/* СТРАНИЦЫ, ЗАПИСИ, КАТЕГОРИИ - страница ошибки 404 */
.page_404 p {
    text-align: center;
    font-size: 2rem;
    font-weight: bold;
}
.page_404 span {
    text-align: center;
    font-size: 1.5rem;
    font-weight: normal;
}


/* СТРАНИЦЫ, ЗАПИСИ, КАТЕГОРИИ - общие элементы терминов */
/* собственный контент */
.term_posts_container {
    padding-top: 0;
}
.term_posts_layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.term_posts ul.posts_list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    list-style-type: none;
}

/* подкатегории */
.term_subterms_layout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.term_subterms ul.subterms_list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 2rem;
    list-style-type: none;
}

.subterm_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    position: relative;
    box-shadow: 0 0 6px var(--color-grey-ddd);
    font-size: 1.125rem;
}
.subterm_item:hover {
    box-shadow: 0 0 6px var(--color-palemagenta-c374ac);
}
.subterm_item .subterm_image img {
    width: 12.5rem;
    height: 17.5rem;
    border: 3px solid #ededed;
}
.subterm_item .subterm_title {
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--color-palemagenta-c374ac);
}
.subterm_item .subterm_title > * {
    text-align: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    color: inherit;
}
.subterm_item .subterm_link {
    display: block;
    padding: 0.25rem 0.5rem;
    text-decoration: none;
}

.term_subterms_filter input {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-grey-666);
    border-radius: 4px;
    font-size: 1rem;
}
.term_subterms .subterm_item.hidden {
    display: none !important;
}

/* дочерние записи */
.term_posts ul.posts_list {
    list-style-type: none;
}
.term_posts li.post_item .post_title > * {
    text-align: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    color: inherit;
}

.term_posts_simple ul.posts_list {
    --items-mark-size: 0.375rem;
    --items-mark-vert-shift: 0px;
    --items-mark-horz-gap: 0.75rem;
    --items-line-height: 1.5;  /* не применяется напрямую, используется для расчёта положения метки */
    gap: 0.75em;
}
.term_posts_simple li.post_simple {
    position: relative;
    padding-left: calc(var(--items-mark-size) + var(--items-mark-horz-gap));
}
.term_posts_simple li.post_simple::before {
    content: '';
    display: block;
    position: absolute;
    top: calc(1em * var(--items-line-height) * 0.5 + var(--items-mark-vert-shift));
    left: 0;
    transform: translateY(-50%);
    width: var(--items-mark-size);
    height: var(--items-mark-size);
    border-radius: 50%;
    background-color: var(--color-palemagenta-c374ac);
}

.term_posts_extended ul.posts_list {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
.term_posts_extended li.post_extended {
    display: flex;
    gap: 1rem;
    min-height: 15rem;
}
.term_posts_extended img.post_image {
    width: 15rem;
    max-width: 34%;
    object-fit: cover;
    object-position: center;
    border: 1px solid var(--color-paleteal-7cc4ac);
}
.term_posts_extended .post_description {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid var(--color-grey-ddd);
}
.term_posts_extended .post_description:has(a:hover) {
    border-bottom: 1px solid var(--color-palemagenta-c374ac);
}
.term_posts_extended .post_title {
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-palemagenta-c374ac);
    font-size: 1.5rem;
    line-height: 1.2;
    font-weight: 400;
}
.term_posts_extended .post_title > * {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
}
.term_posts_extended .post_title a {
    text-decoration: none;
}
.term_posts_extended .post_text {
    flex-grow: 1;
    font-size: 0.9rem;
    overflow: hidden;
}
.term_posts_extended .post_extra {
    display: flex;
    align-items: flex-end;
    width: 100%;
    font-size: 0.9em;
}
.term_posts_extended .post_extra > * {
    padding: 0.5rem 0.625rem;
}
.term_posts_extended .post_more {
    display: block;
    width: max-content;
    margin-left: auto;
    background-color: var(--color-grey-ddd);
    text-decoration: none;
    color: var(--color-grey-666);
}
.term_posts_extended .post_more:hover,
.term_posts_extended .post_description:has(a:hover) .post_more {
    background-color: var(--color-palemagenta-c374ac);
    color: #fff;
}

.term_posts_grid ul.posts_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
    gap: 2rem;
}
.term_posts_grid li.post_grid {
    display: flex;
    flex-direction: column;
    position: relative;
    box-shadow: 0 0 6px var(--color-grey-ddd);
}
.term_posts_grid li.post_grid:hover,
.term_posts_grid li.post_grid:focus {
    box-shadow: 0 0 6px var(--color-palemagenta-c374ac);
}
.term_posts_grid img.post_image {
    width: 100%;
    height: 12rem;
    object-fit: cover;
    object-position: center;
}
.term_posts_grid .post_text {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    position: relative;
    font-size: 0.9rem;
    line-height: 1.2;
    font-weight: 400;
    overflow: hidden;
}
.term_posts_grid .post_text::after {
    content: '>>>';
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-top: auto;
    padding: 0.125rem 0.5rem;
    background-color: var(--color-grey-ddd);
    line-height: 1.2;
    font-weight: 700;
    color: var(--color-palemagenta-c374ac);
}
.term_posts_grid .post_text span {
    padding: 0.5rem;
    line-height: 1.5;
}
.term_posts_grid a.post_link {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
}

.term_posts_filter input {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-grey-666);
    border-radius: 4px;
    font-size: 1rem;
}
.term_posts .post_item.hidden {
    display: none !important;
}

.term_pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.625rem;
}
.term_pagination .nav-links > * {
    display: block;
    width: max-content;
    min-width: calc(1em + 2rem);
    padding: 0.5rem 0;
    text-align: center;
    font-size: 1.125rem;
    line-height: 1.3;
    color: var(--color-grey-666);
}
.term_pagination .nav-links > a {
    background-color: #fff;
    text-decoration: none;
    color: var(--color-palemagenta-c374ac);
}
.term_pagination .nav-links > a:hover {
    box-shadow: 0 0 2px var(--color-palemagenta-c374ac);
}


/* ТИТУЛЬНЫЙ СЛАЙДЕР */
main section.mainslider_section > .container.mainslider_container {
    padding-top: 0;
    padding-bottom: 0;
}

.mainslider.swiper_object_container {
    /* для нормальной работы нужны единицы измерения даже с 0 значениями */
    --swpr-arrows-padds-outer: 0px;  
    --swpr-arrows-padds-inner: 0px;
    --swpr-arrows-width: 4rem;
    --swpr-arrows-shift: 0;
    --swpr-container-padds-horz: 0;
}
.mainslide_content {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 1.625rem;
    background-color: var(--color-lightgrey-f1f1f1);
    overflow: clip;
}

.mainslide_text_content {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2;
    max-width: 100%;
    height: 100%;
    padding: 4.375rem 4.375rem 8.125rem;
    background-color: var(--color-lightgrey-f1f1f1);
}
.mainslide_text_content:has(+ .mainslide_image) {
    max-width: 50%;
    padding-right: 0;
}
.mainslide_text_content:has(+ .mainslide_image)::after {
    content: '';
    position: absolute;
    top: 0;
    left: calc(100% - 1px);
    z-index: 1;
    width: 16rem;
    height: 100%;
    background: linear-gradient(90deg, var(--color-lightgrey-f1f1f1) 10%, transparent 100%);
}
.mainslide_title {
    flex-grow: 1;
    position: relative;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
}
.mainslide_title::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
    width: 20.375rem;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);

}
.mainslide_title > * {
    margin-bottom: auto;
    font-size: 3rem;
    line-height: 1.2;
    font-weight: 300;
    color: var(--color-palemagenta-c374ac);
}
.mainslide_text.text_content {
    font-size: 1.125rem;
    line-height: 1.5;
    color: var(--color-grey-666);
}
.mainslide_text .mainslide_button {
    margin-top: 2.125rem;
}

.mainslide_image.img_mode {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    max-width: 100%;
    height: 100%;
}
.mainslide_image.img_mode::before {
    content: '';
    position: absolute;
    top: 0;
    left: -1px;
    z-index: 1;
    width: 16rem;
    height: 100%;
    background: linear-gradient(90deg, var(--color-lightgrey-f1f1f1) 0%, transparent 100%);
}
.mainslide_image.img_mode img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right;
}
.mainslide_image.back_mode {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: center right / contain no-repeat var(--img_url);
}

.mainslider_container .mainslider_controls {
    position: absolute;
    display: flex;
    gap: 0.5rem;
    bottom: 4.375rem;
    left: 4.375rem;
}
.mainslider_controls .swiper-pagination-bullet:first-child {
    padding-left: 0;
}
.mainslider_controls .swiper-pagination-bullet:last-child {
    padding-right: 0;
}


/* СЛАЙДЕР ПРОДУКЦИИ */
.prodslider_heading {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 3.375rem;
}
.prodslider_title {
    flex-shrink: 0;
}
.prodslider_description {
    max-width: 43rem;
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 500;
    color: var(--color-grey-666);
}

.prodslide_content.prodslide_link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
    text-decoration: none;
}
.prodslide_image_wrapper {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 100%;
    border: 1px solid var(--color-paleteal-7cc4ac);
    border-radius: 50%;
}
.prodslide_image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 0.625rem;
    border-radius: 50%;
    background-color: #fff;
    font-size: 0;
    transition: all 0.2s ease;
    overflow: hidden;
}
.prodslide_link:hover .prodslide_image {
    box-shadow: inset 0 0 1rem var(--color-paleteal-7cc4ac);
}
.prodslide_image img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    /*background-color: var(--color-lightgrey-f1f1f1);*/
    object-fit: contain;
}
.prodslide_title {
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-grey-666);
}


/* СПИСОК ПРОДУКЦИИ */
.proditems_item_heading {
    display: flex;
    gap: 1.75rem;
    padding: 2rem 0.625rem;
    border-top: 3px solid var(--color-grey-ccc);
    font-size: 1.125rem;
}
.proditems_item_heading .proditems_item_image {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 2.875rem;
    width: 22rem;
}
.proditems_item_heading .image_wrapper {
    font-size: 0;
}
.proditems_item_heading .image_wrapper img {
    max-width: 100%;
    max-height: 11.625rem;
    object-fit: contain;
    object-position: left;
}

.proditems_item_posts {
    transition: all 0.2s ease;
}
.proditems_item_post {
    display: flex;
    gap: 1.75rem;
    padding: 2rem 0.625rem;
    border-top: 3px solid var(--color-grey-ccc);
}
.proditems_item_post:last-child {
    border-bottom: 3px solid var(--color-grey-ccc);
}
.proditems_item_post .post_image {
    flex-shrink: 0;
    width: 22rem;
    font-size: 0;
}
.proditems_item_post .post_image img {
    max-width: 100%;
    max-height: 11.625rem;
    object-fit: contain;
    object-position: left;
}
.proditems_item_post .post_title {
    margin-bottom: 0.75rem;
    font-size: 1.125rem;
}
.proditems_item_post a.post_link {
    text-decoration: none;
}
.proditems_item_post a.post_link:hover,
.proditems_item_post a.post_link:focus {
    text-decoration: underline;
}
.proditems_item_post .post_excerpt.text_content {
    font-size: 1rem;
}

.proditems_item_loadmore {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: max-content;
    margin-top: 2.875rem;
    padding: 0.875rem 2.375rem 0.875rem 1.875rem;
    border-radius: 99px;
    background-color: var(--color-grey-999);
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
}
.proditems_item_loadmore:hover {
    filter: brightness(1.1);
}


/* БОКОВОЕ МЕНЮ ПРОДУКЦИИ */
.sideproducts_container {
    padding-top: 3.875rem;
    padding-bottom: 3.875rem;
    overflow: hidden;
}
.sideproducts_title {
    margin-bottom: 3.5rem;
}

.sideproducts_menu ul.wp-menu {
    --topitem-padds-vert : 1rem;
    --topitem-font-size: 1.5rem;
    --topitem-font-weight: 900;
    --topitem-color: var(--color-palepurple-5d639f);
    --topitem-active-color: var(--color-palepurple-5d639f);

    --submenu-max-width: 100%;
    --submenu-min-width: auto;
    --submenu-top-marg: 0px;
    --submenu-border-width: 0px;
    --submenu-border-style: solid #000;
    --submenu-backcolor: transparent;
    
    --subitem-padds-vert: 1rem;
    --subitem-padds-horz: 0px;
    --subitem-f-l-padds-vert : 1rem;
    --subitem-font-size: 1rem;
    --subitem-font-weight: 500;
    --subitem-color: var(--color-darkgrey-484848);
    --subitem-active-color: var(--color-darkgrey-484848);

    flex-direction: column;
    align-items: stretch;
    gap: 0.375rem;
}

.sideproducts_menu .spoiler_item {
    position: relative;
    overflow: visible;
}
.sideproducts_menu .spoiler_item::before {
    content: '';
    display: block;
    position: absolute;
    top: 1.875em;
    right: calc(100% + 1.375rem);
    width: 100%;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
    transition: all 0.3s ease;
}
.sideproducts_menu .spoiler_item.active::before {
    right: 200%;
}

.sideproducts_menu .spoiler_item .spoiler_trigger a {
    flex-grow: 0;
    position: relative;
}
.sideproducts_menu .spoiler_item .spoiler_trigger a::after {
    content: '';
    display: block;
    position: absolute;
    right: 200%;
    bottom: 0;
    z-index: 0;
    width: 200%;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
    transition: all 0.3s ease;
}
.sideproducts_menu .spoiler_item.active .spoiler_trigger a::after {
    right: 0;
}

.sideproducts_menu .spoiler_content_wrapper {
    padding: 0 0 0 2.875rem;
}
.sideproducts_menu .spoiler_content_wrapper .current-menu-item::before {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: calc(100% + 1.875rem);
    z-index: 0;
    width: 1.125rem;
    height: 2rem;
    transform: translateY(-50%);
    background: center / contain no-repeat url('../images/icons/icon-arrow-mark.svg');
}


/* БРЕНДЫ */
.brands_items {
    transition: all 0.2s ease;
}
.brand_item {
    display: flex;
    gap: 1.75rem;
    position: relative;
    padding: 2rem 0.625rem;
    border-top: 3px solid var(--color-grey-ccc);
}
.brand_item:last-child {
    border-bottom: 3px solid var(--color-grey-ccc);
}
.brand_item .brand_image {
    flex-shrink: 0;
    width: 22rem;
    font-size: 0;
}
.brand_item .brand_image img {
    width: 100%;
    height: 100%;
    object-fit: scale-down;
    object-position: center;
}
.brand_item .brand_title {
    margin-bottom: 0.75rem;
    font-size: 1.125rem;
}
.brand_item a.brand_link {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 2;
}
.brand_item .brand_description.text_content {
    font-size: 1rem;
}


/* О НАС */
main section.about_section .about_container.container {
    padding-left: 0;
    padding-right: 0;
}
.about_columns {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
.about_framed_container,
.about_left_text,
.about_right_text,
.about_image {
    padding-left: 6.625rem;
    padding-right: 6.625rem;
}
.about_layout .text_content {
    font-size: 1.5rem;
    line-height: 1.4;
}

.about_left_column {
    display: flex;
    flex-direction: column;
    gap: 3.5rem;
}
.about_framed_container {
    min-height: 24.25rem;
    padding-top: 3.75rem;
    padding-bottom: 3.75rem;
    border: 2px solid var(--color-palemagenta-c374ac);
    border-radius: 2.125rem;
}
.about_title {
    margin-bottom: 2.25rem;
    font-size: 2.25rem;
    font-weight: 400;
}
.about_layout.text_content .about_title > * {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
}
.about_image {
    position: relative;
    margin-top: auto;
    padding-top: 3.5rem;
}
.about_image::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 6.625rem;
    z-index: 0;
    width: 20.375rem;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
}


/* О НАС (одноколоночный вариант) */
.aboutsmall_title {
    position: relative;
    margin-bottom: 2.375rem;
    padding-bottom: 1.625rem;
}
.aboutsmall_title::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
    width: 20.375rem;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
}
.aboutsmall_text.text_content {
    font-size: 1.375rem;
    line-height: 1.45;
    font-weight: 500;
}


/* УСЛУГИ (спойлеры) */
.servispoilers_title {
    margin-bottom: 1.875rem;
    color: var(--color-palepurple-5d639f);
}

.servispoilers_items {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.servispoiler_title {
    padding: 1.5rem 2.5rem;
    border-radius: 1.5rem;
    background-color: var(--color-lightgrey-f1f1f1);
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--color-palepurple-5d639f);
}
.servispoiler_icon {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    rotate: 135deg;
    background: center / cover no-repeat url('../images/icons/icon-cross.svg');
    transition: all 0.3s ease;
}
.servispoilers_item.active .servispoiler_icon {
    rotate: 0deg;
}
.spoiler_content_wrapper {
    padding: 1.75rem 0;
    font-size: 1.375rem;
    line-height: 1.45;
    font-weight: 500;
}


/* СЕКЦИЯ КОНТАКТОВ */
main section.contsection_section > .container.contsection_container {
    padding-top: 0;
    padding-bottom: 0;
}
.contsection_layout {
    display: flex;
}
.contsection_content {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    padding: 3.875rem 4.375rem;
    font-size: 1.5rem;
}
.contsection_content a {
    text-decoration: none;
    color: inherit;
}
.contsection_content a:hover,
.contsection_content a:focus {
    text-decoration: underline;
}

.contsection_items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4.5rem;
}
.contsection_item {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}
.contsection_item_phone {
    font-weight: 900;
}
.contsection_item_worktime {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}
.worktime_info {
    font-weight: 900;
}

.contsection_link {
    position: relative;
    margin-top: auto;
    padding-top: 2.5rem;
}
.contsection_link::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 20.375rem;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
}

.contsection_image {
    flex-shrink: 0;
    flex-grow: 1;
    min-width: 46%;
}
.contsection_image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* ФИЛИАЛЫ */
main .branches_container {
    height: 18.125rem;
}
.branches_items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    height: 100%;
    padding: 0 5.375rem;
}
.branches_item {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    text-align: center;
}
.branches_item_background {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: scale-down;
}
.branches_item_title {
    position: relative;
    z-index: 1;
    font-size: 1.5rem;
    font-weight: 900;
}
.branches_item_link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
}


/* ПРЕИМУЩЕСТВА */
.advantages_layout {
    display: flex;
    justify-content: center;
    gap: 6rem;
}
.advantages_image {
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.advantages_image img {
    width: 32.5rem;
    height: 33.5rem;
    object-fit: scale-down;
}
.advantages_content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 2.375rem;
    padding-left: calc(3.75rem + 1.625rem);
}
.advantages_items {
    display: flex;
    flex-direction: column;
    gap: 2.125rem;
    max-width: 53rem;
}
.advantages_item {
    position: relative;
}
.advantages_item::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: calc(100% + 1.625rem);
    width: 3.75rem;
    height: 3.75rem;
    transform: translateY(-25%);
    background: center / contain no-repeat url('../images/icons/icon-check-new.svg');
}
.advantages_item_title {
    margin-bottom: 0.375rem;
    font-size: 1.5rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--color-grey-666);
}
.advantages_item_text.text_content {
    font-size: 1.5rem;
    line-height: 1.3;
    font-weight: 400;
    color: var(--color-grey-606060);
}


/* БАННЕР */
main .mainbanner_container {
    position: relative;
    min-height: 24.625rem;
    padding-top: 5.375rem;
    padding-bottom: 5.375rem;
    background: center right / contain no-repeat url(../images/mainbanner-right-background.svg);
}
.mainbanner_container::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 21.375rem;
    height: 21.625rem;
    max-height: 100%;
    background: center left / contain no-repeat url(../images/mainbanner-left-background.svg);
}
.mainbanner_layout {
    display: flex;
    justify-content: space-between;
    gap: 2.5rem;
    position: relative;
    z-index: 1;
    padding-right: 9.5rem;
}
.mainbanner_heading {
    display: flex;
    flex-direction: column;
    gap: 1.375rem;
}
.mainbanner_title {
    font-size: 3.25rem;
    font-weight: 900;
    color: var(--color-palemagenta-c374ac);
}
.mainbanner_undertitle_text {
    font-size: 1.5rem;
    font-weight: 500;
}
.mainbanner_description_text {
    padding-top: 2.25rem;
    font-size: 1.625rem;
    font-weight: 500;
}


/* БАННЕР (боковая колонка) */
.sidebanner_container {
    padding-left: 1.875rem;
    padding-right: 1.875rem;
}
.sidebanner_image {
    width: 100%;
    object-fit: contain;
}


/* СЕРТИФИКАТЫ (боковая колонка) */
.sidecerts_container {
    position: relative;
    min-height: 31.875rem;
    padding-top: 6rem;
    padding-bottom: 3.5rem;
    background: top left / auto no-repeat url('../images/sidecol-background-03.svg');
}
.sidecerts_layout {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4.125rem;
}
.sidecerts_image {
    padding: 0 1.5rem;
}
.sidecerts_text {
    font-size: 2.25rem;
    font-weight: 900;
    color: var(--color-palepurple-5d639f);
}
.sidecerts_container:hover .sidecerts_text {
    text-decoration: underline;
}
.sidecerts_link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
}


/* НОВОСТИ */
.newsgrid_heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem 2rem;
    margin-bottom: 1.875rem;
}
.newsgrid_title {
    padding-left: 1.375rem;
    flex-shrink: 0;
}
.newsgrid_link {
    position: relative;
    padding-bottom: 1rem;
    font-size: 1.25rem;
    font-weight: 500;
}
.newsgrid_link::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 9.75rem;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
}
.newsgrid_link a {
    text-decoration: none;
    color: var(--color-grey-666);
}
.newsgrid_link a:hover {
    text-decoration: underline;
}

.newsgrid_items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.625rem;
}
.newsgrid_item {
    border-radius: 1.25rem;
    background-color: var(--color-lightgrey-f1f1f1);
    transition: all 0.2s ease;
}
.newsgrid_item:hover {
    box-shadow: 0 0 1rem var(--color-paleteal-7cc4ac);
}
.newsgrid_item_content {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
    height: 100%;
    padding: 1.625rem 1.625rem 2.25rem 1.625rem;
}
.newsgrid_item_link {
    text-decoration: none;
    color: var(--color-grey-666);
}
.newsgrid_item_date {
    font-size: 1rem;
}
.newsgrid_item_title {
    font-size: 1.25rem;
    font-weight: 500;
}


/* НОВОСТИ (боковая колонка) */
.sidenews_container {
    min-height: 44.375rem;
    padding-top: 3.375rem;
    padding-bottom: 3.375rem;
    background: bottom right / auto no-repeat url('../images/sidecol-background-01.svg');
}
.sidenews_title {
    margin-bottom: 2.375rem;
}
.sidenews_items {
    display: flex;
    flex-direction: column;
    gap: 2.125rem;
}
.sidenews_item .sidenews_item_link {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    text-decoration: none;
    color: var(--color-grey-666);
}
.sidenews_item_date {
    font-size: 1rem;
    font-weight: 500;
}
.sidenews_item_title {
    font-size: 1.25rem;
    font-weight: 500;
}
.sidenews_item .sidenews_item_link:hover .sidenews_item_title {
    text-decoration: underline;
}


/* СТАТЬИ (боковая колонка) */
.sidearticles_container {
    position: relative;
    min-height: 44.375rem;
    padding-top: 3.375rem;
    padding-bottom: 3.375rem;
    background: bottom right / auto no-repeat url('../images/sidecol-background-01.svg');
    overflow: hidden;
}
.sidearticles_container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: top left / auto no-repeat url('../images/sidecol-background-02.svg');
}
.sidearticles_layout {
    position: relative;
    z-index: 2;
}
.sidearticles_title {
    margin-bottom: 2.375rem
}
.sidearticles_items {
    display: flex;
    flex-direction: column;
    gap: 2.125rem;
}
.sidearticles_item .sidearticles_item_link {
    display: block;
    text-decoration: none;
    color: var(--color-grey-666);
}
.sidearticles_item_title {
    position: relative;
    font-size: 1.25rem;
    font-weight: 500;
}
.sidearticles_item .sidearticles_item_link:hover .sidearticles_item_title {
    text-decoration: underline;
}
.sidearticles_item_title::before {
    content: '';
    display: block;
    position: absolute;
    top: 0.625em;
    right: calc(100% + 1.375rem);
    width: 100%;
    height: 3px;
    background-color: var(--color-palemagenta-c374ac);
}
.sidearticles_text.text_content {
    font-size: 1rem;
    line-height: normal;
}


/* ПЛАГИН "Ninja Forms" */
.nf-form-cont {
    --nf-elems-height: 4rem;
    --nf-elems-paddings-vertical: 1.25rem;
    --nf-elems-paddings-horizontal: 2rem;
    --nf-elems-border-width: 1px;
    --nf-elems-border-radius: 1.25rem;
    --nf-elems-border-color: var(--color-grey-999);
    --nf-elems-background: #fff;
    --nf-elems-error-color: #f44;

    --nf-elems-font-family: var(--font-manrope);
    --nf-elems-font-size: 1rem;
    --nf-elems-line-height: 1.2;
    --nf-elems-text-color: var(--color-grey-666);
    --nf-elems-placeholder-color: var(--color-grey-666);
    --nf-elems-placeholder-opacity: 0.8;

    --nf-textarea-height: 11rem;
    --nf-textarea-border-radius: 0.75rem;

    --nf-elems-offield-max-width: 100%;
    --nf-elems-offield-font-family: var(--font-manrope);
    --nf-elems-offield-font-size: 0.9rem;
    --nf-elems-offield-text-color: var(--color-grey-606060);
    --nf-elems-offield-links-color: var(--color-palemagenta-c374ac);

    --nf-submit-width: 100%;
    --nf-submit-height: 4rem;
    --nf-submit-border-color: var(--color-palemagenta-c374ac);
    --nf-submit-background: var(--color-palemagenta-c374ac);
    --nf-submit-font-family: var(--font-manrope);
    --nf-submit-font-size: 1rem;
    --nf-submit-line-height: 1.2;
    --nf-submit-text-color: #fff;

    --nf-msgs-font-family: var(--font-manrope);
    --nf-msgs-font-size: 1rem;
    --nf-msgs-line-height: 1.2;
    
    --nf-response-font-family: var(--font-manrope);
    --nf-response-font-size: 1.25rem;
    --nf-response-line-height: 1.2;
    --nf-response-font-weight: 500;
    --nf-response-text-color: var(--color-paleteal-7cc4ac);
    --nf-response-links-color: var(--color-paleteal-7cc4ac);

    width: 29rem !important;
    font-size: 1rem !important;
}
.nf-field .submit-wrap .nf-element:hover {
    filter: brightness(0.9) !important;
}


/* СЛАЙДЕРЫ Swiper.js */
.swiper-button-prev::after {
    background-image: url('../images/icons/arrow-left.svg');
}
.swiper-button-next::after {
    background-image: url('../images/icons/arrow-right.svg');
}
.swiper-pagination.swiper-pagination-bullets {
    margin-top: 1.75rem;
}
.swiper-pagination-bullet  {
    padding: 0 0.5rem;
}
.swiper-pagination-bullet > div {
    width: 4.125rem;
    height: 0.5rem;
    border-radius: 10px;
    background-color: var(--color-grey-d2d2d2);
    filter: none;
    opacity: 1;
    transition: all 0.2s ease;
}
.swiper-pagination-bullet-active > div {
    width: 8.25rem;
    background-color: var(--color-palemagenta-c374ac);
}

/* только для мобильных */
.swiper_object_container.mobile_slider .swiper,
.swiper_object_container.mobile_slider .swiper-wrapper {
    display: contents;
}
.mobile_slider .slider_controls {
    display: none;
}


/* INFINITY COPYRIGHT */
.copyright_infinity {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.375em;
}
.copyright_infinity a {
    line-height: 1em;
    color: inherit;
}
.copyright_infinity a:has(img) {
    flex-shrink: 0;
    line-height: 0;
}
.copyright_infinity img {
    width: 30px;
    height: 30px;
    filter: saturate(0) brightness(2);
}
