/**
 * 	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, sans-serif; 
   font-size: 14px;
   font-style: normal;
   font-weight: 300; 
   line-height: 1.6em;
   letter-spacing: normal;
   color: var(--Black);
   background-color: var(--White);
   /* overflow-x: clip; */
   overflow-anchor: none;
   overflow-y: scroll;
   overflow-x: clip;
}
body.no_scroll {
   position: fixed;
   left: 0;
   right: 0;
   width: 100%;
}


h1 {
   font-size: 55px;
   font-style: normal;
   font-weight: 300;
   line-height: 1.35em;
   letter-spacing: 0.01em;
}
h2 {
   font-size: 42px;
   font-style: normal;
   font-weight: 500;
   line-height: 1.2em;
   letter-spacing: 0.01em;
}
h3 {
   font-size: 28px;
   font-style: normal;
   font-weight: 300;
   line-height: 1.6em; 
   letter-spacing: 0.01em;
}
h4 {
   font-size: 24px;
   font-style: normal;
   font-weight: 500;
   line-height: 1.3em;
   letter-spacing: 0.01em;
}
h6 {
   max-width: var(--Max-Width);
   font-size: 14px;
   font-style: normal;
   font-weight: 500;
   line-height: 1em;
   letter-spacing: 0.05em;
   text-transform: uppercase;
   color: var(--Black);
}


.p1--regular, p {
   font-size: 14px;
   font-style: normal;
   font-weight: 300; 
   line-height: 1.6em; 
   letter-spacing: 0.05em;
}
.p1--medium {
   font-size: 14px;
   font-style: normal;
   font-weight: 500;
   line-height: 1.6em;
   letter-spacing: 0.05em;
}
.p1--strong, p strong, p b {
   font-size: 14px;
   font-style: normal;
   font-weight: 700; 
   line-height: 1.6em;
   letter-spacing: 0.05em;
}
.p1--large {
   font-size: 16px;
   font-style: normal;
   font-weight: 300; 
   line-height: 1.75em;
   letter-spacing: 0.04em;
}
.p2--regular {
   font-size: 18px;
   font-style: normal;
   font-weight: 300; 
   line-height: 1.5em;
   letter-spacing: 0.04em;
}
.p2--medium {
   font-size: 18px;
   font-style: normal;
   font-weight: 500; 
   line-height: 1.3em;
   letter-spacing: 0.04em;
}

.breadcrumbs {
   font-size: 11px;
   font-style: normal;
   font-weight: 300;
   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: 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;
   }    
}


:root {
   --Scroll-Width: 15px;
}
@-moz-document url-prefix() {
   :root {--Scroll-Width: 0px;}
}
@media (max-width: 500px) {
   :root {--Scroll-Width: 0px;} 
}


.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%;
   min-height: 100vh;
   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 30px;
   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;
}
.footer--bottom_link {
   display: block;
   padding: 26px 10px;
   color: var(--Soft-Grey);
   font-size: 12px;
   font-style: normal;
   font-weight: 500;
   line-height: 1;
   letter-spacing: 0.07em;
}
.footer--cookiebot {
   cursor: pointer;
   -webkit-tap-highlight-color: transparent;
}

.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: 32px;
      margin-right: 0;
   }
   .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: 32px;
   }
   .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, 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, 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, sans-serif;
	font-size: 16px;
   line-height: 1em;
	font-weight: 300;
	letter-spacing: 0.1em;
	color: var(--Black);
	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, sans-serif;
	font-size: 16px;
	font-weight: 300;
}






/** 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: 300;
   letter-spacing: 0.06em;
	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: 300;
	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;
   -webkit-tap-highlight-color: transparent;
}
	.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);
	}
}


