* {
    box-sizing: border-box;
}

body {
    font-family: sans-serif;
    font-size: 1em;
    line-height: 1.5;
}


p {
    margin: 0 0 1.5em;
}


h1, h2, h3, h4, h5, h6 {
    font-family: sans-serif;
    font-weight: bolder;
}

h1 {
    font-size: 1.625em;
    line-height: 1.1;
    margin: 3.23076923em 0 0.92307692em;
}

h2 {
    font-size: 1.4375em;
    line-height: 1.2;
    margin: 3.13043478em 0 1.04347826em;
}

h3 {
    font-size: 12px;
    line-height: 1.3;
    margin: 3em 0 1.2em;
}

h4 {
    font-size: 1.125em;
    line-height: 1.4;
    margin: 2.66666667em 0 1.33333333em;
}

h5 {
    font-size: 1em;
    line-height: 1.5;
    margin: 2.25em 0 1.5em;
}

h6 {
    font-size: 0.75em;
    line-height: 2;
    margin: 2em 0 0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}


h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
    margin-top: 0;
}

/* double headers */
h1+h2 {
    margin-top: 1.2em;
}

h2+h3 {
    margin-top: 1.3em;
}

h3+h4 {
    margin-top: 1.4em;
}

h4+h5 {
    margin-top: 1.5em;
}

h5+h6 {
    margin-top: 2em;
}


/* images */
img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

p img:not(:only-child) {
    vertical-align: baseline;
}

figure:not([class]) {
    margin: 3em 0;
}

figure:not([class])>p {
    max-width: 37.5rem;
    font-size: 0.75em;
    margin: 0.5em 0 0;
}

figcaption {
    max-width: 37.5rem;
    font-size: 0.75em;
    margin: 0.5em 0 3em;
}

figcaption>p {
    margin: 0.5em 0 0;
}

/* blockquotes */
blockquote {
    max-width: calc(45rem);
    margin: 0 0 1.5em;
    padding: 1.5em 2.5em;
}

blockquote>p:last-child {
    margin-bottom: 0;
}

blockquote>footer, blockquote>cite {
    display: block;
    font-size: 0.75em;
}

/* code */
pre {
    margin: 1.5em 0;
    white-space: pre-wrap;
}

p code {
    line-break: loose;
    overflow-wrap: break-word;
}

/* tables */
table:not([class]) {
    margin-top: 3em;
    margin-bottom: 3em;
    border-collapse: separate;
    border-spacing: 0;
}

table:not([class]) caption {
    text-align: left;
    font-size: 0.75em;
    margin-bottom: 0.625em;
}

table:not([class]) td, table:not([class]) th {
    padding: 0.5em 1em;
    text-align: left;
    vertical-align: top;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.1);
    border-width: 0 0 1px;
}

table:not([class]) thead td, table:not([class]) thead th {
    vertical-align: bottom;
    border-bottom-width: 2px;
}

/* definition lists */
dl:not([class]) {
    max-width: 50rem;
    margin: 0 0 1.5em;
}

dl:not([class]) dt:not([class]) {
    font-weight: bolder;
}

dl:not([class]) dd:not([class]) {
    margin: 0 0 1.5em;
}

/* other tags */
hr:not([class]) {
    border: 0;
    border-bottom: 1px solid;
    margin: 1.5em 0;
    max-width: 50rem;
    opacity: .1;
}

abbr {
    letter-spacing: .05em;
    margin-right: -0.05em;
}

strong, b, dt {
    font-weight: bolder;
}

code, kbd, pre, samp {
    font-family: monospace, monospace;
    font-size: 1em;
}

input[type="search"]::-webkit-search-cancel-button {
    display: none;
}

.container {
  width: 100%;
  max-width: 1310px;
  padding-right: 30px;
  padding-left: 30px;
  margin-right: auto;
  margin-left: auto;
}

.container-fluid {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

.row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.col {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    min-width: 0;
    max-width: 100%;

    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}


/* ----------------------------FAST FLEX-------------------------------- */
.flex {display: flex;}
.flex-jc-sb {justify-content: space-between;}
.flex-jc-fs {justify-content: flex-start;}
.flex-jc-fe {justify-content: flex-end;}
.flex-ai-c {align-items: center;}
.flex-ai-fs {align-items: flex-start;}
.flex-ai-fe {align-items: flex-end;}
.flex-fw-w {flex-wrap: wrap;}
.flex-fw-nw {flex-wrap: nowrap;}
.flex-fd-c {flex-direction: column;}
.flex-fd-cr {flex-direction: column-reverse;}
.flex-fd-r {flex-direction: row;}
.flex-fd-rr {flex-direction: row-reverse;}

/* ----------------------------FAST MARGIN/PADDING-------------------------------- */
.p0 {padding: 0;}
.p5 {padding: 5px;}
.p10 {padding: 10px;}
.p15 {padding: 15px;}
.p20 {padding: 20px;}

.pl0  {padding-left: 0;}
.pl5  {padding-left: 5px;}
.pl10 {padding-left: 10px;}
.pl15 {padding-left: 15px;}
.pl20 {padding-left: 20px;}

.pr0  {padding-right: 0;}
.pr5  {padding-right: 5px;}
.pr10 {padding-right: 10px;}
.pr15 {padding-right: 15px;}
.pr20 {padding-right: 20px;}

.pt0 {padding-top: 0;}
.pt5 {padding-top: 5px;}
.pt10 {padding-top: 10px;}
.pt15 {padding-top: 1px;}
.pt20 {padding-top: 20px;}

.pb0 {padding-bottom: 0;}
.pb5 {padding-bottom: 5px;}
.pb10 {padding-bottom: 10px;}
.pb15 {padding-bottom: 15px;}
.pb20 {padding-bottom: 20px;}

.m0 {margin: 0;}
.m5 {margin: 5px;}
.m10 {margin: 10px;}
.m15 {margin: 15px;}
.m20 {margin: 20px;}

.ml0  {margin-left: 0;}
.ml5  {margin-left: 5px;}
.ml10 {margin-left: 10px;}
.ml15 {margin-left: 15px;}
.ml20 {margin-left: 20px;}

.mr0  {margin-right: 0;}
.mr5  {margin-right: 5px;}
.mr10 {margin-right: 10px;}
.mr15 {margin-right: 15px;}
.mr20 {margin-right: 20px;}

.mt0 {margin-top: 0;}
.mt5 {margin-top: 5px;}
.mt10 {margin-top: 10px;}
.mt15 {margin-top: 1px;}
.mt20 {margin-top: 20px;}

.mb0 {margin-bottom: 0;}
.mb5 {margin-bottom: 5px;}
.mb10 {margin-bottom: 10px;}
.mb15 {margin-bottom: 15px;}
.mb20 {margin-bottom: 20px;}

/* ------------------------------------------------------------ */

.hide {display: none;}

body {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

body #content{
    display: flex;
}

aside#left-col, aside#right-col {
    background: rgba(147,128,108,.1);
}

aside#left-col {
    order: -1;
}

header {
    background: rgba(147,128,108,.1) ;
}

footer {
    background: rgba(147,128,108,.1);
}

main {
    width: 100%;
}

#content > div[class^="container"] {
    display: flex;
    flex: 1 0 0;
}

#totop {position: fixed; bottom: 20px; right: 20px; cursor: pointer;}

.tooltip {position: absolute; bottom: 20px; background: #FFF; padding: 10px; border: 1px solid #F97150; min-width: 200px; border-radius: 3px; left: 5px; color: #000; font-size: 14px; line-height: 130%; box-shadow: 0px 0px 23px rgba(16, 16, 16, 0.08);}

.pagination {width: 100%;}
.pagination .counter {display: none;}

/* ------------------------------------------------------------ */

/* Стили для плиток через Joomla Custom Fields. Альтернативный макет для repeatable - "grid" Необходимо использовать в repeatable названия полей: content_block и content_image. Предполагается подключение parallax и fancybox  */
.desc-grid .grid-item.flex:nth-child(2n){ flex-direction: row-reverse; }
.desc-grid .grid-item-image {height: 300px; width: 50%; display: block;}
.desc-grid .grid-item-text {width: 50%;}
