@charset "utf-8";
:root {
    --main-offset: 3rem;
}
html {
    font-size: 18px;
}
body {
    max-width: 1920px;
    margin: 0 auto;
    font-family: sans-serif;
}

img {max-width: 100%;}
b {font-weight: 700;}
.text-black {color: #000000;}
.no-margin-last-child > *:last-child {margin-bottom: 0;}
.rounded-xl  {border-radius: 0.5rem;}
.rounded-xxl {border-radius: 1rem;}

.border-reset {border-color: inherit !important;}
.border-2x {border-width: 2px !important;}
.border-3x {border-width: 3px !important;}
.border-4x {border-width: 4px !important;}
.border-5x {border-width: 5px !important;}

.fw-100 {font-weight: 100 !important;}
.fw-200 {font-weight: 200 !important;}
.fw-300 {font-weight: 300 !important;}
.fw-400 {font-weight: 400 !important;}
.fw-500 {font-weight: 500 !important;}
.fw-600 {font-weight: 600 !important;}
.fw-700 {font-weight: 700 !important;}
.fw-800 {font-weight: 800 !important;}
.fw-900 {font-weight: 900 !important;}

.bg-image {background-size: cover; background-position: center center;}
.bg-image-top {background-position: center top;}
.bg-image-bottom {background-position: center bottom;}
.bg-image-fixed {background-attachment: fixed;}

.ratio-3x4 {--bs-aspect-ratio: 133%;}
.ratio-2x3 {--bs-aspect-ratio: 150%;}
.ratio-3x1 {--bs-aspect-ratio: 33.333%;}

h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
    text-transform: uppercase;
}

.modal {
    --bs-modal-zindex: 9999;
    --bs-modal-padding: 2rem;
}

.sp-scroll-up {
    right: auto;
    left: 1rem;
    bottom: 1rem;
}

.marker {
    --marker-size: 40%;
    background: linear-gradient(to top,
        rgba(var(--marker-color), 1) var(--marker-size),
        rgba(var(--marker-color), 0) var(--marker-size)
    );
}
.marker-warning {--marker-color: var(--bs-warning-rgb);}
.marker-primary {--marker-color: var(--bs-primary-rgb);}
.marker-info {--marker-color: var(--bs-info-rgb);}
.marker-danger {--marker-color: var(--bs-danger-rgb);}
.marker-light {--marker-color: var(--bs-light-rgb);}
.marker-success {--marker-color: var(--bs-success-rgb);}

.fa-max {
    display: inline-block;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: url("../images/max.svg") no-repeat center;
    -webkit-mask-size: contain;
    mask: url("../images/max.svg") no-repeat center;
    mask-size: contain;
}

.btn-icon {
    --icon-size: calc(var(--bs-btn-border-width) * 2 + var(--bs-btn-font-size) * var(--bs-btn-line-height) + var(--bs-btn-padding-y) * 2);
    padding: 0;
    border-radius: 50% !important;
    display: inline-flex;
    width: var(--icon-size);
    height: var(--icon-size);
    align-items: center;
    justify-content: center;
}
.btn-icons {
    --icon-size: 1.5em;
    --color: var(--bs-primary);
    font-size: .75em;
    display: inline-block;
}
.btn-icons a.btn {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--color);
    --bs-btn-hover-color: var(--color);
    --bs-btn-hover-border-color: var(--color);
}
.btn-icons a:not(.btn) {
    border-radius: 50% !important;
    display: inline-flex;
    width: var(--icon-size);
    height: var(--icon-size);
    align-items: center;
    justify-content: center;
    background: var(--color);
    color: var(--bs-white);
}
.btn-icons a:has(.fa-telegram-plane) {
    --color: #29a9eb;
}
.btn-icons a:has(.fa-whatsapp) {
    --color: #01bc39;
}
.btn-icons a:has(.fa-viber) {
    --color: #784f99;
}

.btn-pulse {
    animation: radial-pulse 2s infinite;
}
@keyframes radial-pulse {
    0% {
        box-shadow: 0 0 0 0rem rgba(var(--bs-btn-focus-shadow-rgb), .40);
    }
    100% {
        box-shadow: 0 0 0 2rem rgba(var(--bs-btn-focus-shadow-rgb), .05);
    }
}

.fit-cover {
    position: relative;
    display: block;
    overflow: hidden;
}
.fit-cover > img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    max-height: none;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.owl-carousel {
    position: relative;
}
.owl-nav > * {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.owl-prev {
    left: 0;
}
.owl-next {
    right: 0;
}

.owl-dots.show {
    --gutter-x: var(--bs-gutter-x, .25rem);
    margin-left: calc(var(--gutter-x) / -2);
    margin-right: calc(var(--gutter-x) / -2);
}
.owl-dots.show .owl-dot {
    margin: 0 calc(var(--gutter-x) / 2);
    display: inline-flex;
    width: 1rem;
    height: .5rem;
    border-radius: 25rem;
    background: var(--bs-body-color);
    cursor: pointer;
    transition: .3s;
}
.owl-dots.show .owl-dot:not(.active) {
    opacity: .5;
}
.owl-dots.show .owl-dot.active {
    width: 2rem;
}

.custom-owl-nav.disabled {
    display: none;
}

#sp-header .row:has(#sp-menu) {
    flex-wrap: nowrap;
}

.catalog-title {
    min-height: 75vh;
}

#sp-main {
    padding: var(--main-offset);
}

#sp-main-body {
    padding: 3rem 0;
}

.sp-module.gallery .owl-carousel .owl-stage-outer {
    overflow: visible;
}

.catalog-list .article-body + .fields-container {
    list-style: none;
    padding: 0;
}
.catalog-list > .row > div {
    display: flex;
}
.catalog-list .article {
    padding: 0;
    border: none;
    margin: 0 0 var(--bs-gutter-x, 1.5rem);
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}
.catalog-list .article-body {
    padding: 1.5rem;
    border-radius: var(--bs-border-radius);
    background: var(--bs-light);
    margin: 0 0 .5rem;
    border: 1px solid var(--bs-gray-300);
    flex: 1 1 auto;
}
.catalog-list .article-body .field-entry:not(:last-child) {
    margin-bottom: .5rem;
}
.catalog-list .article-body .field-label {
    font-weight: 500;
}
.catalog-list .article-body > * {
    margin-bottom: 0;
}
.catalog-list .article .article-intro-image,
.catalog-list .article .article-featured-video,
.catalog-list .article .article-featured-audio,
.catalog-list .article .article-feature-gallery {
    margin: 0 0 .5rem;
    border: none;
    border-radius: var(--bs-border-radius);
}
.catalog-list .article-header {
    text-align: center;
}

#sp-bottom,
#sp-footer {
    border-radius: var(--bs-border-radius);
}
#sp-bottom:has(+#sp-footer) {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
#sp-bottom + #sp-footer {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
.row:has(>[id^="sp-bottom"]) {
    align-items: center;
}
#sp-bottom .logo-image {
    height: auto;
    width: 33%;
}

@media screen and (max-width: 767px) {
    :root {
        --main-offset: 1rem;
    }
    html {
        font-size: 14px;
    }
    .catalog-title {
        min-height: 50vh;
    }
    #mod-gallery119 .ratio {
        --bs-aspect-ratio: 100%;
    }
    .map.ratio {
        --bs-aspect-ratio: 100%;
    }
}