:root{--bs-gutter-x:1.5rem;--bs-gutter-y:0}
*,*::before,*::after{box-sizing:border-box}
body{margin:0}
.container{width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}
@media (min-width:576px){.container{max-width:540px}}
@media (min-width:768px){.container{max-width:720px}}
@media (min-width:992px){.container{max-width:960px}}
@media (min-width:1200px){.container{max-width:1140px}}
@media (min-width:1400px){.container{max-width:1320px}}
.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-.5*var(--bs-gutter-x));margin-left:calc(-.5*var(--bs-gutter-x))}
.row>*{flex-shrink:0;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-top:var(--bs-gutter-y)}
/* Не задаём width:100% для .col-* — иначе перебивается .col-xl-3 из основного CSS и «ломается» сетка футера */
.row>*:not([class*="col-"]){width:100%;max-width:100%}
.g-3{--bs-gutter-x:1rem;--bs-gutter-y:1rem}
.g-4{--bs-gutter-x:1.5rem;--bs-gutter-y:1.5rem}
.g-5{--bs-gutter-x:3rem;--bs-gutter-y:3rem}
@media (min-width:1200px){.g-xl-5{--bs-gutter-x:3rem;--bs-gutter-y:3rem}}
.col-12{flex:0 0 auto;width:100%}
@media (min-width:576px){.col-sm-6{flex:0 0 auto;width:50%}}
@media (min-width:1200px){.col-xl-3{flex:0 0 auto;width:25%}}
.col-4{flex:0 0 auto;width:33.33333333%}
@media (min-width:768px){.col-md-6,.col-md-8{flex:0 0 auto}.col-md-6{width:50%}.col-md-8{width:66.66666667%}}
@media (min-width:992px){.col-lg-4,.col-lg-6,.col-lg-8{flex:0 0 auto}.col-lg-4{width:33.33333333%}.col-lg-6{width:50%}.col-lg-8{width:66.66666667%}}
.order-1{order:1!important}.order-2{order:2!important}
@media (min-width:992px){.order-lg-1{order:1!important}.order-lg-2{order:2!important}}
.align-items-center{align-items:center!important}
.align-items-baseline{align-items:baseline!important}
.gy-3{--bs-gutter-y:1rem}
.column-gap-2{column-gap:.5rem!important}
.row-gap-1{row-gap:.25rem!important}
.d-flex{display:flex!important}
.d-none{display:none!important}
@media (min-width:768px){.d-md-flex{display:flex!important}.d-md-block{display:block!important}}
@media (min-width:992px){.d-lg-inline{display:inline!important}}
@media (min-width:992px){.d-lg-inline-flex{display:inline-flex!important}}
@media (min-width:992px){.d-lg-none{display:none!important}}
@media (min-width:1200px){.d-xl-flex{display:flex!important}.d-xl-none{display:none!important}}
.flex-row{flex-direction:row!important}
.flex-column{flex-direction:column!important}
.flex-wrap{flex-wrap:wrap!important}
.flex-shrink-0{flex-shrink:0!important}
.align-items-end{align-items:flex-end!important}
.justify-content-center{justify-content:center!important}
.justify-content-end{justify-content:flex-end!important}
.gap-2{gap:.5rem!important}
.gap-3{gap:1rem!important}
.ms-auto{margin-left:auto!important}
@media (min-width:1200px){.ms-xl-0{margin-left:0!important}}
.me-1{margin-right:.25rem!important}
.me-2{margin-right:.5rem!important}
.me-3{margin-right:1rem!important}
@media (min-width:992px){.me-lg-2{margin-right:.5rem!important}}
.mb-0{margin-bottom:0!important}
.mb-2{margin-bottom:.5rem!important}
.mb-3{margin-bottom:1rem!important}
.mb-4{margin-bottom:1.5rem!important}
.mb-5{margin-bottom:3rem!important}
.mt-2{margin-top:.5rem!important}
.mt-3{margin-top:1rem!important}
.mt-4{margin-top:1.5rem!important}
.mt-5{margin-top:3rem!important}
.px-3{padding-right:1rem!important;padding-left:1rem!important}
.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
.py-3{padding-top:1rem!important;padding-bottom:1rem!important}
.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
.py-5{padding-top:3rem!important;padding-bottom:3rem!important}
.list-unstyled{padding-left:0;list-style:none}
.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}
.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}
@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}}
.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}
.nav-link{display:block;padding:.5rem 1rem;color:#212529;text-decoration:none}
.dropdown{position:relative}
.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.375rem}
.dropdown-menu.show{display:block}
.dropdown-item{display:block;width:100%;padding:.25rem 1rem;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;background-color:transparent;border:0}
.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}
.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}
.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}
.bg-white{background-color:#fff!important}
.bg-primary{background-color:#0d6efd!important}
.text-white{color:#fff!important}
.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}
.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}
.btn{display:inline-block;font-weight:400;line-height:1.5;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.375rem}
.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.5rem}
.text-secondary{color:#475569!important}
.text-primary{color:#0d6efd!important}
.text-dark{color:#212529!important}
.text-center{text-align:center!important}
.text-start{text-align:left!important}
@media (min-width:992px){.text-lg-end{text-align:right!important}}
.text-wrap{white-space:normal!important}
.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}
.bg-warning{background-color:#ffc107!important}
.rounded-pill{border-radius:50rem!important}
.lead{font-size:1.25rem;font-weight:400}
.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:400;line-height:1.2}
@media (min-width:1200px){.display-6{font-size:2.5rem}}
.fs-1{font-size:calc(1.375rem + 1.5vw)!important}
.fs-5{font-size:1.25rem!important}
@media (min-width:1200px){.fs-1{font-size:2.5rem!important}}
.img-fluid{max-width:100%;height:auto}
.rounded-4{border-radius:.5rem!important}
.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}
.fw-bold{font-weight:700!important}
.fw-semibold{font-weight:600!important}
.border-0{border:0!important}
.text-decoration-none{text-decoration:none!important}
.small{font-size:.875em}
.w-100{width:100%!important}
.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #ced4da;border-radius:.375rem}
.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}
.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top}
.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.375rem}
.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}
.collapse:not(.show){display:none}
.btn-close{padding:.5em;box-sizing:content-box;width:1em;height:1em;color:#000;background:transparent center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:.5}
/* Портфолио: до Swiper / полного CSS картинки не должны быть во весь intrinsic-размер */
.portfolio-swiper figure img,.portfolio-swiper .swiper-slide img{max-width:100%;height:auto;display:block}
/* Сетка верхней части футера задаётся в footer.php (#siteFooter > …), чтобы не теряться в каскаде */
/* Нижняя полоса: читаемость и выравнивание (перебиваем .footer-legal из purged при конфликте порядка) */
body.page-body .footer .footer-bottom-brand .footer-brand-tagline{font-size:0.9375rem;line-height:1.35;color:rgba(226,232,240,.88)}
body.page-body .footer .footer-bottom .footer-legal{font-size:0.8125rem;line-height:1.55;color:rgba(205,223,231,.78)}
body.page-body .footer .footer-bottom .footer-legal a{color:rgba(226,232,240,.92)}
@media (min-width:992px){
  body.page-body .footer .footer-bottom-row{align-items:center!important}
  body.page-body .footer .footer-bottom .col-lg-8{padding-left:clamp(0.75rem,2vw,2rem)}
}
