/**
 *  Definitions
 *  Breakpoints: 1440, 1066, 768, 375
 */

:root {
   --Dark-Blue: #0F143C;
   --Blue: #191E5A;
   --Dark-Violet: #5412B2;
   --Vivid-Violet: #7F4BE6;
   --Violet: #996EEA;
   --Light-Violet: #B292EF;
   --Pastel-Violet: #CCB7F5;

   --Black: #111;
   --Dark-Grey: #222;
   --Solid-Grey: #4D4D4D;
   --Grey: #828282;
   --Silver: #AFAFAF;
   --Light-Grey: #CCC;
   --Soft-Grey: #E2E2E2;
   --White: #FFF;

   --Error: #FD6A6A;
   --Soft-Bg: #EFEFEF;
   --Light-Bg: #E9E9E9;
   --Blue-Line: #54577E;
   --Table-Border: #F5F5F5;
   --Image-Hover: #E5E5E5;
}


/** 
 *   Body styles 
 */

* {
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   margin: 0;
}
html {
   min-height: 100%;
   height: 100%;
   overflow-y: scroll;
   overflow-x: clip;
}
body {
   position: relative;
   width: 100%;
   min-width: 375px;
   min-height: 100vh;
   padding: 0;
   margin: 0;
   font-family: Saans, SourceSansCN, "Microsoft YaHei", sans-serif; 
   font-size: 15px;
   font-style: normal;
   font-weight: 350; 
   line-height: 1.8em;
   letter-spacing: normal;
   color: var(--Black);
   background-color: var(--White);
   overflow-x: clip;
}



/* H1 55 regular */
h1 {
    font-size: 55px;
    font-style: normal;
    font-weight: 350;
    line-height: 1.35em;
    letter-spacing: 0.01em;
}
/* H2 42 medium */
h2 {
    font-size: 42px;
    font-style: normal;
    font-weight: 450;
    line-height: 1.2em;
    letter-spacing: 0.01em;
}
/* H3 28 regular */
h3 {
    font-size: 28px;
    font-style: normal;
    font-weight: 350;
    line-height: 1.6em;
    letter-spacing: 0.01em;
}
/* H4 24 medium */
h4 {
    font-size: 24px;
    font-style: normal;
    font-weight: 450;
    line-height: 1.3em;
    letter-spacing: 0.01em;
}
/* Captions */
h6 {
    max-width: var(--Max-Width);
    font-size: 14px;
    font-style: normal;
    font-weight: 450;
    line-height: 1em;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--Black);
}


/* P1 14 regular */
.p1--regular, p {
   font-size: 15px;
   font-style: normal;
   font-weight: 350; 
   line-height: 1.8em;
   letter-spacing: 0.05em;
}

/* P1 14 medium */
.p1--medium {
   font-size: 15px;
   font-style: normal;
   font-weight: 450;
   line-height: 1.8em;
   letter-spacing: 0.05em;
}

/* P1 14 bold */
.p1--strong, p strong, p b {
   font-size: 15px;
   font-style: normal;
   font-weight: 700; 
   line-height: 1.8em;
   letter-spacing: 0.05em;
}


/* P1 16 regular */
.p1--large {
   font-size: 16px;
   font-style: normal;
   font-weight: 350; 
   line-height: 1.8em;
   letter-spacing: 0.04em;
}

/* P2 regular */
.p2--regular {
    font-size: 18px;
    font-style: normal;
    font-weight: 350; 
    line-height: 1.5em;
    letter-spacing: 0.04em;
}
/* P2 medium */
.p2--medium {
    font-size: 18px;
    font-style: normal;
    font-weight: 450; 
    line-height: 1.3em;
    letter-spacing: 0.04em;
}

/* breadcrumbs 11 */
.breadcrumbs {
    font-size: 11px;
    font-style: normal;
    font-weight: 350;
    line-height: 2.2em;
    letter-spacing: 0.05em; 
}

/* Subcripts / Supercripts */
sup {
    vertical-align: baseline; 
    position: relative;
    font-size: 0.7em;
    top: -0.6em;
}
sub {
    vertical-align: baseline; 
    position: relative;
    font-size: 0.7em;
    bottom: -0.3em;
}
u {
    text-transform: none !important;
}


@media (max-width: 1440px) {
}
@media (max-width: 1066px) {
    h2 {
        font-size: 38px;
    }    
    .p1--large {
        font-size: 15px;
        letter-spacing: 0.04em;
    }
    .p2--regular {
        font-size: 17px;
    }
}
@media (max-width: 768px) {
    h2 {
        font-size: 36px;
        line-height: 1.25em;
    }    
    .p1--large {
        font-size: 14px;
        letter-spacing: 0.05em;
    }
    .p2--regular {
        font-size: 16px;
    }
}
@media (max-width: 450px) {
    h2 {
        font-size: 32px;
        line-height: 1.3em;
    }    
}



/** Sections */
.section--viewport {
    width: 1320px;
    padding-left: 0;
    padding-right: 0;
    margin-left: auto;
    margin-right: auto;
}
    .section--screen {
        width: 100%;
        padding-left: 0;
        padding-right: 0;
        margin-left: 0;
        margin-right: 0;
    }

    .section--viewport .section--screen,
    .section--viewport .section--window {
        position: relative;
        width: calc(100vw - var(--Scroll-Width)); 
        left: calc((100vw - 100% - var(--Scroll-Width)) / -2);
    }
  

@media (max-width: 1440px) {
    .section--viewport {
        width: calc(100% - 120px);
    }    
    .section--viewport .section--screen,
    .section--viewport .section--window {
        width: calc(100vw - var(--Scroll-Width)); 
    }
}
@media (max-width: 1066px) {
    .section--viewport {
        width: calc(100% - 100px);
    }    
}
@media (max-width: 768px) {
    .section--viewport {
        width: calc(100% - 80px);
    }    
}
@media (max-width: 450px) {
    .section--viewport {
        width: calc(100% - 44px);
    }    
}


/** Content section */
.section--content {
    position: relative;
    width: 100%;
    /* height: 100%; */
    min-height: 100vh;
    padding-top: 80px;
    background-color: var(--White);
}
    .has--poster .section--content {
        height: auto;
        min-height: unset;
        padding-top: 0;
    }

    .content--wrap {
        height: 100%;
    }
    .content--container {
        width: 100%;
        height: 100%;
        position: relative;
    }
        .products--catalog_page .content--container {
            padding-top: 22px;
            padding-bottom: 80px;
        }




/** Footer section */
.section--footer {
   position: relative;
	width: 100%;
   min-height: 100px;
   padding-bottom: 0;
   background: var(--Dark-Blue); 
}


.footer--top {
   display: flex;
   flex-wrap: nowrap;
   justify-content: space-between;
   align-items: center;
   padding-top: 72px;
   padding-bottom: 48px;
}
   .footer--logo {
      display: block;
      height: 48px;
   }
   .footer--logo img {
      display: block;
      height: 100%;
      width: auto;
   }
   .footer--buttons {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: 8px;
   }
   .footer--button_item {
      min-width: 150px;
   }


.footer--line {
   height: 0.5px;
   background: var(--Light-Grey);
   opacity: 0.3;
}


.footer--menu {
   display: flex;
   flex-wrap: nowrap;
   justify-content: space-between;
   align-items: center;
   padding-top: 48px;
   padding-bottom: 48px;
}
   .footer--menu_item {
      display: block;
      height: 40px;
      padding: 13px 24px;
      font-size: 14px;
      font-style: normal;
      font-weight: 500;
      line-height: 1em;
      letter-spacing: 0.05em;
      color: var(--White);
   }
   .footer--menu_item:first-child {
      padding-left: 0;
   }
   .footer--menu_item:last-child {
      padding-right: 0;
   }


.footer--bottom {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
}
.footer--copyright {
    flex-grow: 1;
    color: var(--Soft-Grey);
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.footer--bottom_links {
   display: flex;
   flex-wrap: nowrap;
   justify-content: flex-end;
   align-items: center;
   margin-right: 16px;
   column-gap: 20px;
}
   .footer--bottom_link {
      position: relative;
      display: inline-block;
      padding: 26px 0;
      color: var(--Soft-Grey);
      font-size: 12px;
      font-style: normal;
      font-weight: 350;
      line-height: 1;
      letter-spacing: 0.07em;
   }
   .footer--bottom_link img {
      position: absolute;
      width: 20px;
      height: auto;
      top: 50%;
      transform: translateY(-50%);
   }
   .footer--bottom_link.footer--link_icon_left {
      padding-left: 24px;
   }
   .footer--bottom_link.footer--link_icon_left img {
      left: 0;
   }
   .footer--bottom_link.footer--link_icon_right {
      padding-right: 24px;
   }
   .footer--bottom_link.footer--link_icon_right img {
      right: 0;
   }

.footer--social {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
}
   .footer--bottom_social {
      display: block;
      padding: 4px;
   }
   .footer--bottom_social:last-child {
      padding-right: 0;
   }
   .footer--bottom_social svg {
      display: block;
   }
.footer--line_social {
    display: none;
}

.footer--bottom_buttons {
    display: none;
}

@media (hover: hover) {
   .footer--menu_item:hover {
      color: var(--Pastel-Violet);
   }
   .footer--bottom_link:hover {
      color: var(--Pastel-Violet);
   }
   .footer--bottom_social:hover .social {
      fill: var(--Pastel-Violet);
   }
}

@media (max-width: 950px) {
   .footer--bottom_links {
      margin-right: 0;
   }
   .footer--bottom {
      flex-wrap: wrap;
      flex-direction: column;
   }
   .footer--social {
      order: 1;
      gap: 16px;
      margin-top: 32px;
   }
   .footer--bottom_links {
      order: 4;
      margin-top: 16px;
      margin-right: 0;
   }
   .footer--bottom_link {
      font-size: 11px;
   }

   .footer--copyright {
      order: 5;
      margin-bottom: 24px;
   }
}
@media (max-width: 768px) {

   .footer--top {
      display: block;
      padding-top: 32px;
      padding-bottom: 28px;
      text-align: center;
   }
   .footer--logo {
      display: inline-block;
      height: 48px;
   }
   .footer--top_buttons {
      display: none;
   }

   .footer--menu {
      flex-wrap: wrap;
      flex-direction: column;
      gap: 24px;
      padding-top: 52px;
      padding-bottom: 52px;

   }
   .footer--menu .footer--menu_item {
      padding: 13px 24px;
   }
   
   .footer--line_bottom {
      display: none;
   }
   .footer--social {
      margin-top: 0;
   }
   .footer--line_social {
      display: block;
      width: 100%;
      margin-top: 24px;
      margin-bottom: 32px;
      order: 2;
   }
   .footer--bottom_buttons {
      display: flex;
      order: 3;
   }
   .footer--bottom_links {
      margin-top: 60px;
   }
}
@media (max-width: 500px) {
   .footer--bottom_links {
      flex-wrap: wrap;
      margin-top: 32px;
      margin-bottom: 16px;
      justify-content: center;
      column-gap: 16px;
   }
   .footer--bottom_link {
      /* width: 100%; */
      padding: 8px 10px;
      text-align: center;
   }
}



/** Buttons. Blue default */
.buttons--container {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px;
}

.button--round {
    display: inline-block;
    height: 42px;
    width: 42px;
    padding: 8px;
    background-color: var(--Blue);
    border: 1.5px solid var(--Blue);
    border-radius: 21px;
    cursor: pointer;
    outline: none;
    transition: background-color 0.4s, border-color 0.4s;
    -webkit-tap-highlight-color: transparent;
}
    .button--round .line {
        stroke: var(--White); 
    }




.button--item {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 4px;
    height: 42px;
    padding: 0 26px;
    font-family: Saans, SourceSansCN, "Microsoft YaHei", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.06em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--White);
    background-color: var(--Blue);
    border: 1.5px solid var(--Blue);
    border-radius: 22px;
    cursor: pointer;
    outline: none;
    transition: background-color 0.4s, border-color 0.4s;
    -webkit-tap-highlight-color: transparent;
}
    .button--item .line {
        stroke: var(--White); 
    }
    .button--item.button--icon {
        padding-right: 14px;
    }
    .button--item.button--icon_left {
        padding-left: 17px;
    }
    .button--icon_diagonal svg,
    .button--icon_sw svg {
        transform: rotate(135deg);
    }
    .button--icon_ne svg {
        transform: rotate(-45deg);
    }
    .button--icon_w svg {
        transform: rotate(180deg);
    }
    .button--icon_n svg {
        transform: rotate(90deg);
    }
.button--item.button--disabled {
    cursor: default;
}

.button--small {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    height: 30px;
    padding: 0 22px;
    font-family: Saans, SourceSansCN, "Microsoft YaHei", sans-serif;
    font-size: 11px;
    font-style: normal;
    font-weight: 500;
    line-height: 12px;
    letter-spacing: 0.08em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--White);
    background-color: var(--Blue);
    border: 1.5px solid var(--Blue);
    border-radius: 15px;
    cursor: pointer;
    outline: none;
    transition: background-color 0.4s;
    -webkit-tap-highlight-color: transparent;
}


    .button--violet {
        background-color: var(--Dark-Violet);
        border-color: var(--Dark-Violet); }
    .button--violet .line {
        stroke: var(--White); }
    
    .button--blue {
        background-color: var(--Blue);
        border-color: var(--Blue); }
    .button--blue .line {
        stroke: var(--White); }

    .button--transparient {
        background-color: transparent;
        border-color: var(--White); }
    .button--transparient .line {
        stroke: var(--White); }

    .button--black {
        color: var(--Black);
        background-color: transparent;
        border-color: var(--Black); }
    .button--black .line {
        stroke: var(--Black); }
    .button--black.button--disabled {
        color: var(--Light-Grey);
        background-color: transparent;
        border-color: var(--Light-Grey); }
    .button--black.button--disabled .line {
        stroke: var(--Light-Grey); }
    

    .button--grey {
        color: var(--Blue);
        background-color: var(--Light-Grey);
        border-color: var(--Light-Grey); }
    .button--grey .line {
        stroke: var(--Blue); }
    .button--white {
        color: var(--Blue);
        background-color: var(--White);
        border-color: var(--Blue); }
    .button--white .line {
        stroke: var(--Blue); }
            

    @media (hover: hover) {
        .button--blue.button--hover:hover,
        a.button--blue:hover {
            background-color: var(--Dark-Violet);
            border-color: var(--Dark-Violet);
        }

        .button--transparient.button--hover:not(.button--disabled):hover,
        a.button--transparient:not(.button--disabled):hover {
            background-color: transparent;
            border-color: var(--Pastel-Violet);
        }
        .button--transparient.button--hover:not(.button--disabled):hover span,
        a.button--transparient:not(.button--disabled):hover span {
            color: var(--Pastel-Violet);
        }
        .button--transparient.button--hover:not(.button--disabled):hover .line,
        a.button--transparient:not(.button--disabled):hover .line {
            stroke: var(--Pastel-Violet);
        }

        .button--violet.button--hover:hover span,
        a.button--violet:hover span {
            color: var(--Pastel-Violet);
        }
        .button--violet.button--hover:hover .line,
        a.button--violet:hover .line {
            stroke: var(--Pastel-Violet);
        }

        .button--black.button--hover:not(.button--disabled):hover,
        a.button--black:not(.button--disabled):hover {
            background-color: transparent;
            border-color: var(--Dark-Violet);
        }
        .button--black.button--hover:not(.button--disabled):hover span,
        a.button--black:not(.button--disabled):hover span {
            color: var(--Dark-Violet);
        }
        .button--black.button--hover:not(.button--disabled):hover .line,
        a.button--black:not(.button--disabled):hover .line {
            stroke: var(--Dark-Violet);
        }

        .button--grey.button--hover:hover,
        a.button--grey:hover {
            background-color: var(--Light-Grey);
            border-color: var(--Dark-Violet);
        }
        .button--grey.button--hover:hover span,
        a.button--grey:hover span {
            color: var(--Dark-Violet);
        }
        .button--grey.button--hover:hover .line,
        a.button--grey:hover .line {
            stroke: var(--Dark-Violet);
        }
        .button--white.button--hover:hover,
        a.button--white:hover {
             border-color: var(--Dark-Violet);
        }
        .button--white.button--hover:hover span,
        a.button--white:hover span {
            color: var(--Dark-Violet);
        }

        .button--white.button--hover:hover .line,
        a.button--white:hover .line {
            stroke: var(--Dark-Violet);
        }

    }



/* Input field. Silent height 44 px */
.input--text_field {
	height: 42px;
	padding: 12px 14px;
	font-family: Saans, SourceSansCN, "Microsoft YaHei", sans-serif;
	font-size: 16px;
   line-height: 1em;
	font-weight: 350;
	letter-spacing: 0.1em;
	color: var(--White);
	background-color: transparent;
	border: 1px solid var(--Grey);
	border-radius: 4px;
	outline: none;
}
.input--text_field:focus {
	border: 1px solid var(--White);;
}
.input--text_field::placeholder {
	color: var(--Grey);
    letter-spacing: 0.04em;
	opacity: 1;
}
.input--text_field::-webkit-input-placeholder {
	color: var(--Grey);
    letter-spacing: 0.04em;
	opacity: 1;
}
.input--text_field::-moz-placeholder {
	color: var(--Grey);
    letter-spacing: 0.04em;
	opacity: 1;
}
.input--text_field::-ms-input-placeholder {
	color: var(--Grey);
    letter-spacing: 0.04em;
	opacity: 1;
}
/* Change the white to any color ;) */
.input--text_field:-webkit-autofill::first-line,
.input--text_field:-webkit-autofill,
.input--text_field:-webkit-autofill:hover, 
.input--text_field:-webkit-autofill:focus, 
.input--text_field:-webkit-autofill:active  {
	-webkit-box-shadow: 0 0 0 30px var(--Grey) inset !important;
	box-shadow: 0 0 0 30px var(--Grey) inset !important;
	-webkit-text-fill-color: var(--White) !important;
	font-family: Saans, SourceSansCN, "Microsoft YaHei", sans-serif;
	font-size: 16px;
	font-weight: 350;
}






/** Debug screen */
.debug--screen {
	position: fixed;
	bottom: 0;
	right: 0;
	padding: 5px 10px;
	background-color: var(--Light-Grey);
	font-size: 13px;
    letter-spacing: 0.05em;
	z-index: 50000;
}
pre {
	font-size: 15px;
	line-height: 1.2;
}


/** 
 *   Helpers 
 */
.clear--float::after {
	content: "";
	clear: both;
	display: table;
}

/** 
 *   FancyBox 
 */
.fancybox-caption__body > * {
	font-size: 14px;
   font-weight: 350;
   letter-spacing: 0.08em;
	color: var(--White);
}
.fancybox-caption__body .gb_gallery--fancy_description {
	font-size: 12px;
    color: var(--Silver);
}

@media (max-width: 785px) {
	.fancybox-caption__body > * {
		font-size: 13px;
	}
    .fancybox-caption__body .gb_gallery--fancy_description {
        font-size: 11px;
    }
}



/* FancyBox: Remove background from all buttons */
.fancybox-navigation .fancybox-button {
	background: transparent;
}

/* FancyBox: Navigation arrows */
.fancybox-navigation .fancybox-button div {
	padding: 6px;
	background: transparent;
	border-radius: 20px;
	transition: opacity .2s;
	border: 1px solid var(--White);
	opacity: .7;
}
.fancybox-navigation .fancybox-button:not([disabled]):hover div {
	opacity: .9;
	background: transparent;
    border-color: var(--Pastel-Violet);
}
.fancybox-navigation .fancybox-button[disabled] {
	color: var(--Grey);
}
.fancybox-navigation .fancybox-button:not([disabled]) {
	color: var(--White);
}
.fancybox-navigation .fancybox-button:not([disabled]):hover {
	color: var(--Pastel-Violet);
}



/* Spinner
// -------------------------- */
.spinner--container {
	text-align: center;
	padding-top: 50px;
	padding-bottom: 50px;
}
.spinner {
	display: inline-block;
	width: 42px;
	height: 42px;
	position: relative;
	border-top: 4px solid var(--Violet);
	border-right: 4px solid var(--Violet);
	border-bottom: 4px solid var(--Violet);
	border-left: 4px solid var(--Light-Grey);
	border-radius: 50%;
	-webkit-animation: rotate-frame 1s infinite linear;
	animation: rotate-frame 1s infinite linear;
}
.spinner--dark .spinner {
	border-top-color: var(--Solid-Grey);
	border-right-color: var(--Solid-Grey);
	border-bottom-color: var(--Solid-Grey);
    border-left-color: var(--Light-Violet);
}
.spinner--blue .spinner,
.spinner.spinner--blue {
	border-top-color: var(--Blue);
	border-right-color: var(--Blue);
	border-bottom-color: var(--Blue);
	border-left-color: var(--Light-Grey);
}

@-webkit-keyframes rotate-frame {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes rotate-frame {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}


/** 
 *  Paging styles 
 */
.paging--container {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
}

.paging--item {
	display: block;
	width: 40px;
	height: 40px;
	padding: 12px 0 14px;
	margin: 0 4px;
	border: 1px solid var(--Light-Grey);
	font-size: 14px;
	font-style: normal;
	font-weight: 350;
	line-height: 1;
	letter-spacing: 0.1px;
	color: var(--Solid-Grey);
	text-align: center;
	transition: all 0.2s ease-in-out;
	cursor: pointer;
	text-decoration: none;
	outline: none;
}
	.paging--item span {
		display: block;
	}

.paging--item.paging--item_active {
	background-color: var(--Blue);
	border: 1px solid var(--Blue);
	color: var(--White);
	cursor: default;
}

.paging--item.paging--points {
	border: none;
	width: 26px;
	letter-spacing: 2px;
	cursor: default;
}

@media (hover: hover) {
	a.paging--item:hover {
		background-color: var(--Soft-Grey);
	}
}
