/* * { outline: 1px dotted #f60; } */

/* font vars */

.font-dm {
  font-family: "DM Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.font-dm strong {
    font-family: "DM Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
  }

/* *************************************************************************************************************** */
                                                /* GLOBAL */
/* *************************************************************************************************************** */


body { 
    font: 400 16px/18px 'Montserrat', sans-serif;
    color:rgb(0, 0, 0);
    
}
    @media (max-width: 768px) { 
        body { padding: 0; font: 15px/17px; }
    }

    @media (max-width: 767px) {
        body { padding: 0; font: 14px/16px; }
    }

    @media (max-width: 576px) {
        body { padding: 0; font: 13px/15px; }
    }


/* $container-max-widths: (
  sm: 540px,
  md: 720px,
  lg: 960px,
  xl: 1140px,
  xxl: 1320px
); */

/* // Small devices (landscape phones, 576px and up) */
/* @media (min-width: 576px) { ... } */

/* // Medium devices (tablets, 768px and up) */
/* @media (min-width: 768px) { ... } */

/* // Large devices (desktops, 992px and up) */
@media (min-width: 992px) { .container { width: 970px; } }

/* // X-Large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) { .container { width: 1170px; } }

/* // XX-Large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) { .container { width: 1200px; } }


.container-fluid-custom { width: calc(100% - 6rem); margin-left: auto; margin-right: auto; }
.container-fluid-custom-wider { width: calc(100% - 1rem); margin-left: auto; margin-right: auto; }

@media (max-width: 768px) {
    .container-fluid-custom { width: calc(100% - 3rem); }
}

@media (max-width: 576px) {
    .container-fluid-custom-wider { width: calc(100% - .5rem); }
}


/* *************************************************************************************************************** */
                                                /* Global vars */
/* *************************************************************************************************************** */
:root {
    --darkgreen: #00703A;
    --green: #00B151;
    --lightgreen: #40c67d;
    --lightgreen_rgb: 64, 198, 125;
    --black: #000;
    --black_rgb: 0,0,0;
    --white: #fff;
    --white_rgb: 255,255,255;
    --dark_grey: #181818;
    --neutral_grey: #aaa;

    --greenborder: 1px solid var(--green);
    --greenborder-8: 8px solid var(--green);

    /* Bootstrap rewrites */
    --bs-secondary-color: #fff;
}

/* @media (max-width: 575px) {
    :root {
        --greenborder: var(--greenborder-8);
    }
} */

/* *************************************************************************************************************** */
                                                /*  Colours  */
/* *************************************************************************************************************** */

a { color: inherit !important; text-decoration: none; transition: .3s ease-in; }
a:hover { color: inherit !important; transition: .15s ease-out; }

.emphasis { display: inline; transition: .3s ease-in-out; padding: -3px 0 5px 0; }
.emphasis_yellow { box-shadow: inset 0 -0.5em 0 0 var(--green); }
.borderleft_yellow { border-left: 6px solid var(--green); }

.darkgreen { color: var(--darkgreen) !important; }
.darkgreenbg { background-color: var(--darkgreen); color: var(--white); }
.green { color: var(--green); }
.greenbg { background-color: var(--green); color: var(--white); }
.lightgreen { color: var(--lightgreen); }
.lightgreenbg { background-color: var(--lightgreen); color: var(--white); }
.grey { color: #7c7c7c !important; }
.darkgrey { color: #6c6c6c !important; }
.fill_darkgrey, .fill_darkgrey path { fill: #6c6c6c !important; }
.greybg { background: #F0F0F0 !important; }
.blackbg { background-color: var(--black); color: var(--white); }
.black { color: var(--black); }
.white { color: var(--white) !important; }
.whitebg { background-color: var(--white) !important; }
.fill_white { fill: var(--white); }
/* .darkblue { color: #4C98FB !important; }
.lightblue { color: #B0E7FF !important; }
.purple { color: #6F18BD !important; } */

.shadow {box-shadow: 5px 3px 30px 0px rgba(0, 0, 0, 0.10);}


.greenborder { border: var(--greenborder) }

.noborder { border: none; }
.nobg { background: none; }



/* *************************************************************************************************************** */
                                                /* Typography */
/* *************************************************************************************************************** */

* { line-height: normal; }

strong { font-weight: 600; letter-spacing: 0.5px; }
.link_underlined { text-decoration: underline; }
.link_underlined:hover { text-decoration: wavy; }

h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', sans-serif; font-weight: 600; }
h1, .h1 { font-size: 98px; font-weight: 600; line-height: 90px; }
h2, .h2 { font-size: 68px; }
h3, .h3 { font-size: 58px; }
h4, .h4 { font-size: 40px; }
h5, .h5 { font-size: 32px; }
h6, .h6 { font-size: 20px; }

@media (max-width: 1200px) { 
    h1, .h1 { font-size: 60px; line-height: 1.5em; font-weight: 700; }
    h2, .h2 { font-size: 40px; }
    h3, .h3 { font-size: 36px; }
    h4, .h4 { font-size: 32px; }
    h5, .h5 { font-size: 30px; }
    h6, .h6 { font-size: 28px; }
    .contact_text h3 { font-size: 28px; }
    .contact_text h4 { font-size: 26px; }
}

@media (max-width: 992px) { 
    h1, .h1 { font-size: 45px; }
    h2, .h2 { font-size: 40px; }
    h3, .h3 { font-size: 34px; }
    h4, .h4 { font-size: 30px; }
    h5, .h5 { font-size: 28px; }
    h6, .h6 { font-size: 18px; }
    .contact_text h3 { font-size: 23px; }
    .contact_text h4 { font-size: 22px; }
}

@media (max-width: 768px) { 
    h1, .h1 { font-size: 42px; }
    h2, .h2 { font-size: 38px; }
    h3, .h3 { font-size: 36px; }
    h4, .h4 { font-size: 30px; }
    h5, .h5 { font-size: 22px; }
    h6, .h6 { font-size: 18px; }
    .font-sm-smaller { font-size: 1em; }
}

@media (max-width: 576px) {
    h1, .h1 { font-size: 38px; }
    h2, .h2 { font-size: 30px; }
    h3, .h3 { font-size: 26px; }
    h4, .h4 { font-size: 26px; }
    h5, .h5 { font-size: 20px; }
    h6, .h6 { font-size: 18px; }
}

@media (max-width: 420px) {
    h1, .h1 { font-size: 32px; }
}

@media (max-width: 360px) {
    h1, .h1 { font-size: 28px; }
}


/* Font variants */
.text-bigger {font-size: 1.2em;}
.text-smaller {font-size: .9em;}
.text-smaller-moar {font-size: .8em;}
.text-normal { font-weight: 400 !important; }
.text-500 { font-weight: 500 !important; }

.font-32 { font-size: 32px; }

@media (max-width: 992px) { 
    .text-bigger {font-size: 1em;}
}

.circle { border-radius: 100%; }






/* *************************************************************************************************************** */
                                                /* Helpers */
/* *************************************************************************************************************** */

            /* Sizing & gapping */
/* ************************************* */

/* Недостающий XS */
@media (min-width: 390px) {
    .row-cols-xs-2 > * {
        flex: 0 0 auto;
        width: 50%;
    }
}

.float-right {float: right; clear: both;}
.height-auto { height: auto !important; }
.row-nomargin, .nomargin-x { margin-left: 0 !important; margin-right: 0 !important; }
.nopadding-x { padding-left: 0 !important; padding-right: 0 !important; }
.pe-10 { padding-right: 6em !important; }

.img-fluid { width: 100%; }

.divider { height: 28px; }

.round { border-radius: 40px !important; }
ul.round>li>a { border: none; }
.round-5 { border-radius: 5px; }
img.round-5 { overflow: hidden; }
.round-10 { border-radius: 10px; }
img.round-10 { overflow: hidden; }
.round-20 { border-radius: 20px; }
.round-28 { border-radius: 28px; }
.round-54 { border-radius: 54px; }
.icon_round { border-radius: 100px; }

@media (max-width: 992px) { 
    .round, ul.round>li>a { border-radius: 26px; }
}

@media (max-width: 768px) { 
    .round, ul.round>li>a { border-radius: 24px; }
}

@media (max-width: 576px) {
    .round, ul.round>li>a { border-radius: 20px; }
}

@media (min-width: 992px) { 
    .visible-mobile { display: none; }
    .visible-desktop { display: block; }
}
@media (max-width: 991px) { 
    .visible-mobile { display: block; }
    .visible-desktop { display: none; }
}

/* SVG respo */
.svg_container {
    width: 100%;
    height: auto;
    resize: both;
    /* overflow: auto; */
}

.svg_responsive { 
    width: -webkit-fill-available; 
    height: -webkit-fill-available;
}




/* *************************************************************************************************************** */
                                                /* Forms */
/* *************************************************************************************************************** */

    /* Btns */
.btn { border-radius: 30px; }
.btn-primary { padding: 5px 28px; border: var(--greenborder); border-radius: 50px; }
.btn-primary:hover { border: var(--greenborder); background-color: var(--darkgreen); }
.btn.btn-lg { padding: 10px 32px 12px 32px; border: none; border-radius: 100px; font-size: 24px; font-weight: 500; }
.btn.btn-md { padding: 10px 30px 12px 30px; border: none; border-radius: 100px; font-size: inherit; font-weight: 600; }
.darkgreenbg.whiteborder { background-color: var(--green); color: var(--black); border: var(--greenborder); border-color: var(--white); }
.whitebg.yellowborder { background-color: var(--white); color: var(--black); border: var(--greenborder); border-color: var(--green); }
.btn.btn-light:hover { color: var(--white) !important; border: 1px solid /* var(--black) */; }
.btn.darkgreenbg.whiteborder,
.btn.darkgreenbg.black { box-shadow: none; transition: .4s ease-out; }
.btn.darkgreenbg { transition: .2s ease-out; }
.btn.darkgreenbg:hover { background-color: transparent; }
.btn.darkgreenbg.whiteborder:hover { padding-top: 12px; padding-bottom: 18px; box-shadow: 0 3px 20px rgba(var(--green_rgb), .3); text-shadow: 0 2px 3px rgba(var(--black_rgb), .4); transition: .2s ease-out; }
.btn.darkgreenbg.black:hover { box-shadow: 0 3px 20px rgba(var(--green_rgb), .3); text-shadow: 0 2px 3px rgba(var(--black_rgb), .4); transition: .2s ease-out; }
.btn.blackbg.whiteborder:hover { background-color: var(--darkgreen); }
.btn.whitebg.darkgreen:hover { background-color: var(--green) !important; }


.btn-empty { background: none; border: 2px solid inset #fff; }

.btn-check:checked+.btn, .btn.active, .btn.show, .btn:first-child:active, :not(.btn-check)+.btn:active { 
    background-color: var(--green);
    border-color: transparent;
}

.noborderhover:hover { border-color: transparent; }

@media (max-width: 575px) {
    .btn.btn-lg {
        padding: 8px 32px;
        font-size: 20px;
    }
}

.form-control { line-height: 1.6; }
textarea.round {border-radius: 20px;}
    /* antispam */
form #website,
form .website, .veryimportant { display: none !important; }

.input-group input,
.input-group select { padding-top: 1rem; padding-bottom: 1rem; }


    /* Modal forms */
/* .modal input.form-control,
.modal .form-select,
.modal textarea { border: 1px solid #ccc; box-shadow: 0 0 5px #eee; } */
/* testiCLES */




/* *************************************************************************************************************** */
                                                /* Global helper classes */
/* Written upside down because of cascade proirity of style instructions, not codeability :( */
/* *************************************************************************************************************** */



.pl-0 { padding-left: 0; }
.pr-0 { padding-right: 0; }
.pl-3em { padding-left: 3rem; }
.pl-10 { padding-left: 10px; }
.pl-20 { padding-left: 20px; }
/* .h-100 { min-height: 100% !important; height: auto !important; } */

.px-3rem { padding-left: 3rem; padding-right: 3rem; }
.px-30 { padding-left: 30px; padding-right: 30px; }
.pt-30 { padding-top: 30px; }
.pt-40 { padding-top: 40px; }
.pt-50 { padding-top: 50px; }
.pb-2rem { padding-bottom: 2rem; }
.pb-3rem { padding-bottom: 3rem; }
.py-30 { padding-top: 30px; padding-bottom: 30px; }
.py-1rem { padding-top: 1rem; padding-bottom: 1rem; }
.py-3rem { padding-top: 3rem; padding-bottom: 3rem; }
.py-84 { padding-top: 84px; padding-bottom: 84px; }
.py-100 { padding-top: 100px; padding-bottom: 100px; }
.py-160 { padding-top: 160px; padding-bottom: 160px; }
.mb-05rem { margin-bottom: .5rem; }
.mb-1rem { margin-bottom: 1rem; }
.mb-2rem { margin-bottom: 2rem; }
.mb-3rem { margin-bottom: 3rem; }
.mb-20 { margin-bottom: 20px; }
.mb-30 { margin-bottom: 30px; }
.mb-40 { margin-bottom: 40px; }
.my-05rem { margin-top: .5rem; margin-bottom: .5rem; }
.my-1rem { margin-top: 1rem; margin-bottom: 1rem; }
.my-2rem { margin-top: 2rem; margin-bottom: 2rem; }
.my-3rem { margin-top: 3rem; margin-bottom: 3rem; }
.mr-30 { margin-right: 18px; }
.mr-0 { margin-right: 0; }
.ml-0 { margin-left: 0; }

.p-2rem { padding: 2rem; }
.p-20 { padding: 20px; }
.p-30 { padding: 30px; }
.p-34 { padding: 20px; }
.p-40 { padding: 40px; }



/* ************************************************************************** */
                        /* xs (portrait phones, 575px and down) */
/* ************************************************************************** */

@media (max-width: 575px) {
    .col-xs-12 {flex: none;}

    .visible-md, 
    .hidden-xs,
    .hidden-sm { display: none; }

    .hidden-md,
    .visible-xs,
    .hidden-lg { display: block; }

    .mx-xs-0 { margin-left: 0 !important; margin-right: 0 !important; }
    .mb-xs-0 { margin-bottom: 0 !important; }
    .mb-xs-4 { margin-bottom: 1rem !important; }
    .my-xs-auto { margin-top: auto !important; margin-bottom: auto !important; }
    
    .p-xs-0 { padding: 0 !important; }
    .p-xs-1 { padding: 0.25rem !important; }
    .p-xs-2 { padding: 0.5rem !important; }
    .p-xs-4/* , .p-4 */ { padding: 1rem !important; }
    .p-xs-5 { padding: 1.5rem !important; }
    .p-xs-6 { padding: 2rem !important; }

    .px-4 { padding-left: 10px !important; padding-right: 10px !important; }
    .py-4 { padding-top: 8px !important; padding-bottom: 8px !important; }
    .py-5 { padding-top: 10px !important; padding-bottom: 10px !important; }
    .p-5 { padding: 12px !important; }

    .mt-4 {margin-top: 4px !important;}
    .mb-2 { margin-bottom: 4px !important; }

    .w-xs-100 { width: 100% !important; }
    
    .p-2rem { padding: 1rem; }
    .p-20 { padding: 8px; }
    .p-30 { padding: 16px; }
    .p-34 { padding: 34px; }
    .p-40 { padding: 20px; }

    .px-3rem { padding-left: 1.5rem; padding-right: 2rem; }
    .px-30 { padding-left: 20px; padding-right: 30px; }
    .py-1rem { padding-top: .5rem; padding-bottom: 0; }
    .py-3rem { padding-top: 1.5rem; padding-bottom: 1.5rem; }
    .pt-30 { padding-top: 20px; }
    .py-30 { padding-top: 20px; padding-bottom: 20px; }
    
    .mt-1rem { margin-top: .5rem; }
        .mt-xs-1rem { margin-top: .8rem; }
    .mt-2rem { margin-top: 1rem; }
    .mt-3rem { margin-top: 1.5rem; }

    .mb-1rem { margin-bottom: .5rem; }
    .mb-2rem { margin-bottom: 1rem; }
    .mb-3rem { margin-bottom: 1.5rem; }
        .mb-3rem.topfeatures { margin-bottom: 0 !important; }
    
    .text-center-xs { text-align: center; }
    
}


/* ************************************************************************** */
            /* xs (portrait phones, 575px and UP)*/
/* ************************************************************************** */

@media (min-width: 575px) {
    .mt-xs-1rem { margin-top: .8rem; }
}

/* sm (landscape phones, 576px and up)*/
@media (min-width: 576px) {
    .visible-sm,
    .hidden-xs { display: block; }

    .col.hidden-xs { display: flex; }

    .hidden-sm { display: none; }

    .p-sm-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
    .pr-sm-4 { padding-right: 1rem !important; }
    .p-5 { padding: 16px !important; }
    /* .mt-4 {margin-top: 6px !important;} */

    .w-sm-100 { width: 100% !important; }
    .w-sm-75 { width: 75% !important; }
    
    .w-sm-50 { width: 50% !important; }
    .w-sm-25 { width: 25% !important;}
    .h-sm-100 { height: 100% !important; }
    .h-sm-75 { height: 75% !important; }
    .h-sm-50 { height: 50% !important; }
    .h-sm-25 { height: 25% !important; }
    
    .p-2rem { padding: 1.2rem; }
    .p-20 { padding: 10px; }
    .p-30 { padding: 20px; }
    .p-40 { padding: 28px; }

    .px-30 { padding-left: 18px; padding-right: 26px; }
    .px-3rem { padding-left: 1.5rem; padding-right: 1.5rem; }
    .py-1rem { padding-top: .6rem; padding-bottom: .6rem; }
    .py-3rem { padding-top: 1.5rem; padding-bottom: 1.5rem; }
    .pt-30 { padding-top: 18px; }
    .py-30 { padding-top: 18px; padding-bottom: 18px; }
    
    .mt-1rem { margin-top: .7rem; }
        .mt-xs-1rem { margin-top: 1rem; }
    .mt-2rem { margin-top: 1.5rem; }
    .mt-3rem { margin-top: 2rem; }
    
    .mb-1rem { margin-bottom: .5rem; }
    .mb-2rem { margin-bottom: 1rem; }
    .mb-3rem { margin-bottom: 1.5rem; }

    .my-1rem { margin-top: .9rem; margin-bottom: .9rem; }

    .ms-sm--20 { margin-left: -20px; }
}


/* ************************************************************************** */
                                /* sm —— md */
/* ************************************************************************** */

@media (min-width: 576px) and (max-width: 757px) {
    .px-4 { padding-left: 10px !important; padding-right: 10px !important; }
    .py-4 { padding-top: 10px !important; padding-bottom: 10px !important; }
    .mt-xs-1rem { margin-top: .9rem; }
}


/* md (tablets, 768px and up)*/
@media (min-width: 768px) {
        
    .visible-md,
    .hidden-sm { display: block; }

    .row.hidden-sm,
    .col.hidden-sm { display: flex; }

    .hidden-md,
    .visible-xs { display: none; }

    .w-md-100 { width: 100% !important; }
    .w-md-75 { width: 75% !important; }
    .w-md-50 { width: 50% !important; }
    .w-md-25 { width: 25% !important; }
    .h-md-100 { height: 100% !important; }
    .h-md-75 { height: 75% !important; }
    .h-md-50 { height: 50% !important; }
    .h-md-25 { height: 25% !important; }

    .px-30 { padding-left: 20px; padding-right: 30px; }
    .px-3rem { padding-left: 2rem; padding-right: 2rem; }
    .py-1rem { padding-top: .8rem; padding-bottom: .8rem; }
    .py-3rem { padding-top: 2rem; padding-bottom: 2rem; }
    .pt-30 { padding-top: 20px; }
    .py-30 { padding-top: 20px; padding-bottom: 20px; }

    .mt-1rem { margin-top: .85rem; }
        .mt-xs-1rem { margin-top: 0.85rem; }
    .mt-2rem { margin-top: 1.7rem; }
    .mt-3rem { margin-top: 2.5rem; }

    .mb-20 { margin-bottom: 10px; }
    .mb-30 { margin-bottom: 20px; }
    .my-1rem { margin-top: .9rem; margin-bottom: .9rem; }
    

    .pl-md-0 { padding-left: 0; }
    .pr-md-0 { padding-right: 0; }
    .pr-md-1em { padding-right: 1em; }
    .pl-md-1em { padding-left: 1em; }

    .p-2rem { padding: 1.6rem; }
    .pb-2rem { padding-bottom: 1.6rem; }
    .pb-3rem { padding-bottom: 2.6rem; }

    .p-20 { padding: 10px; }
    .p-30 { padding: 20px; }
    .p-40 { padding: 30px; }
}

@media (max-width: 768px) {
    .hidden-inline-sm { display: none; }
    .visible-inline-md { display: inline; }

    .text-center-sm { text-align: center !important; }
}

@media (max-width: 993px) {
    .hidden-inline-sm { display: inline; }
    .visible-inline-md { display: none; }
    .hidden-lg { display: block; }
    .visible-lg { display: none; }
}


/* ************************************************************************** */
                    /* lg (desktops, 992px and up)*/
/* ************************************************************************** */

@media (min-width: 992px) {
    .hidden-lg { display: none; }
    .visible-lg { display: block; }
    .w-lg-100 { width: 100% !important; }
    .w-lg-75 { width: 75% !important; }
    .w-lg-50 { width: 50% !important; }
    .w-lg-25 { width: 25% !important; }
    .h-lg-100 { height: 100% !important; }
    .h-lg-75 { height: 75% !important; }
    .h-lg-50 { height: 50% !important; }
    .h-lg-25 { height: 25% !important; }
    
    .mt-1rem { margin-top: 1rem; }
    .mt-2rem { margin-top: 2rem; }
    .mt-3rem { margin-top: 3rem; }
    .mr-30 { margin-right: 30px; }

    .mt-xs-1rem { margin-top: 0; }

    .p-2rem { padding: 1.9rem; }
    .p-40 { padding: 36px; }

    .hidden-inline-sm { display: inline; }
    .visible-inline-md { display: none; }
}


/* ************************************************************************** */
                /* xl (large desktops, 1200px and up)*/
/* ************************************************************************** */

@media (min-width: 1200px) {
    
    .mb-3rem { margin-bottom: 3.5rem; }

    .w-xl-100 { width: 100% !important; }
    .w-xl-75 { width: 75% !important; }
    .w-xl-50 { width: 50% !important; }
    .w-xl-25 { width: 25% !important; }
    .h-xl-100 { height: 100% !important; }
    .h-xl-75 { height: 75% !important; }
    .h-xl-50 { height: 50% !important; }
    .h-xl-25 { height: 25% !important; }
}