.component-bg {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:-1px;
  overflow:hidden;
  clip:rect(auto,auto,auto,auto);
  pointer-events:none;
  z-index:0
}

.component-bg .overlay {
  z-index:2;
  transition:all .18s
}

.component-bg .image-holder,.component-bg .overlay {
  width:100%;
  height:100%;
  position:absolute;
  left:0;
  top:0
}

.component-bg .image-holder {
  opacity:1;
  visibility:visible;
  z-index:1;
  transition:opacity .4s cubic-bezier(.21,.67,.58,1),visibility .4s cubic-bezier(.21,.67,.58,1)
}

.component-bg .image-holder__preview {
  width:100%;
  height:100%;
  position:absolute;
  left:0;
  top:0;
  z-index:2;
  transition:opacity .4s ease,visibility .4s ease;
  visibility:visible
}

.component-bg .image-holder__preview.effect--blur {
  background-size:cover;
  background-repeat:no-repeat
}

.component-bg .image-holder__preview.effect--backdrop {
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px)
}

.component-bg.image-loaded .image-holder__preview {
  opacity:0;
  visibility:hidden
}

.component-bg .video_bg_container.custom .high_fixed {
  height:auto
}

.component-bg .video_bg_container.custom .wide_fixed {
  width:auto
}

.component-bg .video_bg_container.custom .wide {
  height:100%;
  width:auto
}

.component-bg .video_bg_container.custom .high {
  width:100%;
  height:auto
}

.component-bg.bg-video[data-parallax] {
  clip:rect(auto,auto,auto,auto)
}

.component-bg.bg-image[data-parallax] .overlay {
  transition:none
}

.component-bg.bg-color .image-holder,.component-bg.bg-color .video_bg_container {
  display:none
}

.component-bg.video_is_loaded .image-holder {
  opacity:0;
  visibility:hidden
}

.component-bg.video_is_loaded .video_bg_container iframe {
  opacity:1
}

.component-bg .parallax-outer,.component-bg .video_bg_container {
  position:absolute;
  z-index:1;
  top:0;
  left:0;
  width:100%;
  height:100%
}

.component-bg[data-parallax=fixed] .image-holder,.component-bg[data-parallax=fixed] .video_bg_container {
  height:var(--100vh);
  z-index:0
}

.component-bg .video_bg_player {
  position:relative
}

.component-bg .video_bg_player video {
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  min-width:100%;
  min-height:100%;
  width:auto;
  height:auto
}

.component-bg .video_bg_player iframe {
  opacity:0;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%)
}

.component-bg[data-parallax=fixed] .video_bg_player iframe {
  top:0;
  left:50%;
  transform:translate(-50%)
}

.component-bg .image,.component-bg .video_bg_player,.component-bg canvas {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background-repeat:no-repeat;
  background-size:cover
}

.component-bg[data-parallax=fixed] .image-holder {
  position:fixed;
  left:0;
  width:var(--100vw)
}

.component-bg .image {
  image-rendering:optimizeSpeed;
  image-rendering:auto;
  image-rendering:-o-crisp-edges;
  image-rendering:optimize-contrast;
  -ms-interpolation-mode:nearest-neighbor
}

.component-bg .parallax-outer+.image-holder {
  animation:none!important
}

.component-bg .parallax-outer.ready+.image-holder {
  opacity:0;
  visibility:hidden;
  transition-duration:.65s
}

.component-bg .loader-image {
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  right:0;
  background-size:cover;
  background-color:#fff;
  opacity:0;
  visibility:hidden;
  transition:all .3s
}

.component-bg.bg-video[data-parallax] .video_bg_container {
  position:fixed;
  height:var(--100vh)
}

.component-bg.bg-video[data-parallax] .video_bg_container .image,.component-bg.bg-video[data-parallax] .video_bg_container .video_bg_player {
  will-change:transform
}

.component-bg.bg-video[data-parallax] .image-holder {
  position:fixed
}

body.adaptive-mobile .component-bg[data-mobile-video-enabled=false] .video_bg_container {
  display:none
}

body.adaptive-mobile .component-bg.video_is_loaded .image-holder {
  opacity:1;
  visibility:visible
}

body.adaptive-mobile .component-bg[data-parallax=fixed] .image-holder {
  left:var(--fixedOffset)
}

body.adaptive-mobile .component-bg[data-parallax=fixed] .image-holder,body.adaptive-mobile .component-bg[data-parallax=fixed] .video_bg_container {
  height:calc(var(--100vh) + 140px);
  z-index:0
}

.is-screenshoter .component-bg[data-parallax=fixed] .image-holder,.is-screenshoter .component-bg[data-parallax=fixed] .video_bg_container {
  position:static
}

.is-ios .component-bg[data-parallax=fixed] .image-holder,.is-ios .component-bg[data-parallax=fixed] .video_bg_container {
  transform:translateZ(0)!important
}

.is-android .component-bg.bg-video .image-holder,.is-android .component-bg.bg-video .video_bg_container,.is-android .component-bg[data-parallax=fixed] .image-holder,.is-android .component-bg[data-parallax=fixed] .video_bg_container,.is-chrome .component-bg.bg-video .image-holder,.is-chrome .component-bg.bg-video .video_bg_container,.is-chrome .component-bg[data-parallax=fixed] .image-holder,.is-chrome .component-bg[data-parallax=fixed] .video_bg_container {
  z-index:-1!important
}

.b_block .component-bg .overlay[data-opacity="1"] {
  opacity:1!important
}

.bg-element {
  position:relative;
  box-sizing:border-box;
  --bgColor:none;
  --bgContrast:var(--currentColor);
  --bgImage:none;
  --bgAverageColor:none;
  --bgShadingColor:none;
  --bgPositionX:50%;
  --bgPositionY:50%;
  --bgShadow:none;
  --borderWidth:0px;
  --borderColor:transparent;
  --hoverFadeInFrom:0;
  --hoverFadeInTo:1;
  z-index:auto
}

.bg-element.image-loaded .bg-element__preview {
  opacity:0;
  visibility:hidden
}

.bg-element__border,.bg-element__fill,.bg-element__fill_hover,.bg-element__preview,.bg-element__shading,.bg-element__shadow {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  pointer-events:none
}

.bg-element__fill {
  overflow:hidden;
  z-index:996
}

.bg-element__fill--color {
  background:var(--bgColor)
}

.bg-element__fill--image {
  background-size:cover;
  background-repeat:no-repeat;
  background-position:var(--bgPositionX) var(--bgPositionY)
}

.bg-element__fill--image[data-ext=png] {
  background-color:transparent
}

.bg-element__fill_hover {
  display:none;
  z-index:996
}

.bg-element__fill_hover--color {
  background:var(--hoverBgColor)
}

.bg-element__fill_hover--image {
  background-size:cover;
  background-repeat:no-repeat;
  background-color:var(--hoverBgAverageColor);
  background-position:var(--hoverBgPositionX) var(--hoverBgPositionY)
}

.bg-element__fill_hover--image[data-ext=png] {
  background-color:transparent
}

.bg-element__fill_hover--image:before {
  content:"";
  display:block;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  box-sizing:border-box;
  background-color:var(--hoverBgShadingColor);
  border-radius:inherit
}

.bg-element__border,.bg-element__fill,.bg-element__fill_hover,.bg-element__preview,.bg-element__shading,.bg-element__shadow {
  border-radius:var(--topLeftRadius,var(--bgRadius,0)) var(--topRightRadius,var(--bgRadius,0)) var(--bottomRightRadius,var(--bgRadius,0)) var(--bottomLeftRadius,var(--bgRadius,0))
}

.bg-element__shading {
  background:var(--bgShadingColor);
  z-index:998
}

.bg-element__preview {
  z-index:997;
  transition:opacity .4s ease,visibility .4s ease;
  visibility:visible
}

.bg-element__preview.effect--color {
  background-color:var(--bgAverageColor)
}

.bg-element__preview.effect--blur {
  background-repeat:no-repeat;
  background-size:cover;
  background-position:var(--bgPositionX) var(--bgPositionY)
}

.bg-element__preview.effect--backdrop {
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px)
}

.bg-element__border {
  border:var(--borderWidth) solid var(--borderColor);
  z-index:1001
}

.bg-element__shadow {
  box-shadow:var(--bgShadow);
  z-index:995
}

.editor-focus.bg-element--hover.bg-element--hover-fill_circle,.editor-focus.bg-element--hover.bg-element--hover-fill_fade,.editor-focus.bg-element--hover.bg-element--hover-scale,.editor-focus.bg-element--hover.bg-element--hover-shift,.editor-focus.bg-element--hover .bg-element__border,.editor-focus.bg-element--hover .bg-element__fill,.editor-focus.bg-element--hover .bg-element__fill_hover,.editor-focus.bg-element--hover .bg-element__shadow,.is-view .bg-element--hover.bg-element--hover-fill_circle,.is-view .bg-element--hover.bg-element--hover-fill_fade,.is-view .bg-element--hover.bg-element--hover-scale,.is-view .bg-element--hover.bg-element--hover-shift,.is-view .bg-element--hover .bg-element__border,.is-view .bg-element--hover .bg-element__fill,.is-view .bg-element--hover .bg-element__fill_hover,.is-view .bg-element--hover .bg-element__shadow {
  transition:all var(--transitionDuration) var(--transitionTiming,ease)
}

.editor-focus.bg-element--hover.bg-element--hover-fadein .element-content,.is-view .bg-element--hover.bg-element--hover-fadein .element-content {
  opacity:var(--hoverFadeInFrom,0);
  transition:opacity var(--transitionDuration) var(--transitionTiming,ease)
}

.editor-focus.bg-element--hover.bg-element--hover-fill_circle .bg-element__fill_hover,.is-view .bg-element--hover.bg-element--hover-fill_circle .bg-element__fill_hover {
  --hoverBgFromDistance:0;
  display:flex;
  -webkit-clip-path:circle(var(--hoverBgFromDistance) at var(--hoverBgFromX) var(--hoverBgFromY));
  clip-path:circle(var(--hoverBgFromDistance) at var(--hoverBgFromX) var(--hoverBgFromY));
  transition:-webkit-clip-path var(--transitionDuration) cubic-bezier(.51,.27,.47,.74);
  transition:clip-path var(--transitionDuration) cubic-bezier(.51,.27,.47,.74);
  transition:clip-path var(--transitionDuration) cubic-bezier(.51,.27,.47,.74),-webkit-clip-path var(--transitionDuration) cubic-bezier(.51,.27,.47,.74);
  will-change:transform
}

.editor-focus.bg-element--hover.bg-element--hover-fill_fade .bg-element__fill,.is-view .bg-element--hover.bg-element--hover-fill_fade .bg-element__fill {
  --transitionTiming:ease-out
}

.editor-focus.bg-element--hover.bg-element--hover-fill_fade .bg-element__fill_hover,.is-view .bg-element--hover.bg-element--hover-fill_fade .bg-element__fill_hover {
  --transitionTiming:ease-in;
  display:flex;
  opacity:0;
  visibility:hidden
}

.editor-focus.bg-element--hover.hover.bg-element--hover-fadein .element-content,.is-view .bg-element--hover.hover.bg-element--hover-fadein .element-content {
  opacity:var(--hoverFadeInTo,1)
}

.editor-focus.bg-element--hover.hover.bg-element--hover-fill_fade,.is-view .bg-element--hover.hover.bg-element--hover-fill_fade {
  --currentColor:var(--currentColorHover)!important;
  --contrastColor:var(--contrastColorHover)!important
}

.editor-focus.bg-element--hover.hover.bg-element--hover-fill_fade .bg-element__fill,.is-view .bg-element--hover.hover.bg-element--hover-fill_fade .bg-element__fill {
  --transitionTiming:ease-in;
  opacity:0;
  visibility:hidden
}

.editor-focus.bg-element--hover.hover.bg-element--hover-fill_fade .bg-element__fill_hover,.is-view .bg-element--hover.hover.bg-element--hover-fill_fade .bg-element__fill_hover {
  --transitionTiming:ease-out;
  opacity:1;
  visibility:visible
}

.editor-focus.bg-element--hover.hover.bg-element--hover-fill_circle,.is-view .bg-element--hover.hover.bg-element--hover-fill_circle {
  color:var(--currentColorHover)!important;
  --currentColor:var(--currentColorHover);
  --contrastColor:var(--contrastColorHover)
}

.editor-focus.bg-element--hover.hover.bg-element--hover-fill_circle .bg-element__fill_hover,.is-view .bg-element--hover.hover.bg-element--hover-fill_circle .bg-element__fill_hover {
  --hoverBgFromDistance:160%
}

.editor-focus.bg-element--hover.hover.bg-element--hover-border .bg-element__border,.is-view .bg-element--hover.hover.bg-element--hover-border .bg-element__border {
  border-color:var(--hoverBorderColor)
}

.editor-focus.bg-element--hover.hover.bg-element--hover-shadow .bg-element__shadow,.is-view .bg-element--hover.hover.bg-element--hover-shadow .bg-element__shadow {
  box-shadow:var(--hoverBgShadow)
}

.editor-focus.bg-element--hover.hover.bg-element--hover-shift,.is-view .bg-element--hover.hover.bg-element--hover-shift {
  transform:translateY(var(--hoverShift))
}

.editor-focus.bg-element--hover.hover.bg-element--hover-shift:after,.editor-focus.bg-element--hover.hover.bg-element--hover-shift:before,.is-view .bg-element--hover.hover.bg-element--hover-shift:after,.is-view .bg-element--hover.hover.bg-element--hover-shift:before {
  content:"";
  display:block;
  position:absolute;
  width:100%;
  height:max(var(--hoverShift),calc(var(--hoverShift) * -1))
}

.editor-focus.bg-element--hover.hover.bg-element--hover-shift:before,.is-view .bg-element--hover.hover.bg-element--hover-shift:before {
  bottom:100%
}

.editor-focus.bg-element--hover.hover.bg-element--hover-shift:after,.is-view .bg-element--hover.hover.bg-element--hover-shift:after {
  top:100%
}

.editor-focus.bg-element--hover.hover.bg-element--hover-scale,.is-view .bg-element--hover.hover.bg-element--hover-scale {
  transform:scale(var(--hoverScale))
}

.editor-focus.bg-element--hover.hover.bg-element--hover-shift.bg-element--hover-scale,.is-view .bg-element--hover.hover.bg-element--hover-shift.bg-element--hover-scale {
  transform:translateY(var(--hoverShift)) scale(var(--hoverScale))
}

.is-editor .bg-element--hover-fadein:not(.editor-effects-focus) {
  --hoverFadeInFrom:1!important
}

.component-icon {
  --iconSize:60px;
  --borderSize:1px;
  --borderRounded:8%;
  --transitionDuration:0.35s;
  --transitionTiming:ease-in-out;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:0;
  overflow:hidden;
  width:var(--iconSize);
  max-width:100%;
  flex-shrink:0;
  transition:all var(--transitionDuration) var(--transitionTiming)
}

.component-icon:after {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  display:none;
  content:"";
  border-radius:inherit;
  box-sizing:border-box;
  z-index:0
}

.component-icon .icon-wrap {
  display:flex;
  position:relative;
  width:100%;
  padding-bottom:100%;
  z-index:1
}

.component-icon .icon {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:50%
}

.component-icon.style--bordered.border--medium {
  --borderSize:2px
}

.component-icon.style--bordered.border--large {
  --borderSize:3px;
  --borderRounded:10%
}

.component-icon.style--bordered.border--xlarge {
  --borderSize:5px;
  --borderRounded:15%
}

.component-icon.size--xsmall {
  --iconSize:26px
}

.component-icon.size--small {
  --iconSize:40px
}

.component-icon.size--medium {
  --iconSize:60px
}

.component-icon.size--large {
  --iconSize:80px
}

.component-icon:not(.editor-hover).hover--opacity .icon-wrap,.component-icon:not(.editor-hover).hover--opacity:after {
  transition:opacity var(--transitionDuration) var(--transitionTiming)
}

.component-icon:not(.editor-hover).hover--opacity:hover .icon-wrap,.component-icon:not(.editor-hover).hover--opacity:hover:after {
  opacity:.7
}

.component-icon:not(.editor-hover).hover--zoom {
  overflow:visible
}

.component-icon:not(.editor-hover).hover--zoom .icon-wrap,.component-icon:not(.editor-hover).hover--zoom:after {
  transition:transform var(--transitionDuration) var(--transitionTiming)
}

.component-icon:not(.editor-hover).hover--zoom:hover.style--bordered:after,.component-icon:not(.editor-hover).hover--zoom:hover.style--filled:after,.component-icon:not(.editor-hover).hover--zoom:hover.style--none .icon-wrap {
  transform:scale(1.12)
}

.component-icon.style--bordered:after,.component-icon.style--filled:after {
  display:block
}

.component-icon.style--bordered .icon,.component-icon.style--filled .icon {
  width:56.667%;
  height:56.667%;
  top:21.6665%;
  left:21.6665%
}

.component-icon.style--bordered.size--xsmall,.component-icon.style--filled.size--xsmall {
  --iconSize:46px
}

.component-icon.style--bordered.size--small,.component-icon.style--filled.size--small {
  --iconSize:60px
}

.component-icon.style--bordered.size--medium,.component-icon.style--filled.size--medium {
  --iconSize:80px
}

.component-icon.style--bordered.size--large,.component-icon.style--filled.size--large {
  --iconSize:100px
}

.component-icon.style--filled:after {
  background-color:var(--currentColor)
}

.component-icon.style--filled .icon-wrap {
  color:var(--contrastColor);
  transition:color var(--transitionDuration) var(--transitionTiming)
}

.component-icon.style--bordered:after {
  border:1px solid var(--currentColor);
  border-width:var(--borderSize);
  background-color:transparent;
  z-index:1
}

.component-icon.shape--round {
  border-radius:50%
}

.component-icon.shape--rounded {
  border-radius:var(--borderRounded)
}

.component-icon.scale--cover .icon {
  top:0;
  left:0;
  width:100%;
  height:100%;
  background-size:cover
}

.component-icon.color--dark {
  --currentColor:#1b1b1c;
  --contrastColor:#fff
}

.component-icon.color--light {
  --currentColor:#fff;
  --contrastColor:#1b1b1c
}

.component-logo {
  --logoSize:180px;
  --proportion:35;
  position:relative;
  max-width:100%;
  width:var(--logoSize,100%)
}

.component-logo a {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%
}

.component-logo-img {
  width:100%;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:50%;
  padding-bottom:calc(var(--proportion, 35) * 1%);
  aspect-ratio:100/var(--proportion)
}

.component-button {
  background:none;
  color:inherit;
  border:none;
  padding:0;
  font:inherit;
  cursor:pointer;
  outline:inherit;
  display:inline-flex;
  position:relative;
  font-size:15px;
  min-width:46px;
  min-height:46px;
  text-align:center;
  vertical-align:middle;
  align-items:center;
  justify-content:center;
  max-width:100%;
  text-decoration:none!important;
  --iconMargin:10px;
  --iconSize:16px;
  --currentColor:var(--buttonColor);
  --currentContrast:var(--buttonContrast);
  --buttonRadius:0
}

.component-button,.component-button a[data-action] {
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none
}

.component-button a[data-action] {
  --focusRing:transparent;
  width:100%;
  height:100%;
  position:absolute;
  z-index:100
}

.component-button.wide {
  width:100%
}

.component-button:after,.component-button:before {
  content:"";
  display:block;
  position:absolute;
  left:0;
  right:0;
  top:0;
  bottom:0;
  margin:auto;
  border-radius:var(--buttonRadius);
  background:transparent
}

.component-button:after {
  opacity:0
}

.component-button.hover .btn-content {
  color:var(--buttonColorHover,currentColor)
}

.component-button .btn-content {
  line-height:1.467;
  position:relative;
  z-index:1;
  color:var(--buttonColor,currentColor)
}

.component-button.bordered.background--gradient .btn-text {
  background:var(--buttonColor,currentColor);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent
}

.component-button.bordered.background--gradient.hover .btn-text {
  background:var(--buttonColorHover,currentColor);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent
}

.component-button .submitting-status {
  display:none;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s ease,visibility .3s ease
}

.component-button .submitting-status .icon {
  display:block;
  position:absolute;
  width:22px;
  height:22px;
  top:50%;
  left:50%;
  margin:auto;
  transform:translate(-50%,-50%)
}

.component-button .submitting-status .circular-loader {
  fill:none;
  stroke:currentColor;
  stroke-width:6px;
  transform-origin:center center
}

.component-button .submitting-status .loader-path {
  stroke-dasharray:150,200;
  stroke-dashoffset:-10;
  stroke-linecap:round;
  animation:circular-loader 1.5s ease-in-out infinite reverse
}

.component-button .btn-icon {
  display:block;
  width:18px;
  height:18px
}

.component-button .btn-icon svg {
  max-height:100%
}

.component-button .btn-content-icon-text,.component-button .btn-content-text {
  padding:12px 22px;
  max-width:100%
}

.component-button .btn-content-icon,.component-button .btn-content-icon-text {
  display:flex;
  align-items:center
}

.component-button .btn-content-icon-text.icon-on-right,.component-button .btn-content-icon.icon-on-right {
  flex-flow:row-reverse
}

.component-button .btn-content-icon-text.icon-on-right .component-icon,.component-button .btn-content-icon.icon-on-right .component-icon {
  margin-right:0;
  margin-left:var(--iconMargin)
}

.component-button .btn-content-icon-text .component-icon,.component-button .btn-content-icon .component-icon {
  margin:-20px var(--iconMargin) -20px 0;
  transition:opacity .2s ease,color .05s ease
}

.component-button .btn-content-icon-text .component-icon .icon,.component-button .btn-content-icon .component-icon .icon {
  width:100%;
  height:100%
}

.component-button .btn-content-icon {
  padding:0!important;
  justify-content:center
}

.component-button .btn-content-icon .component-icon {
  margin:0!important
}

.component-button .btn-text {
  display:block!important;
  word-break:break-word;
  -webkit-hyphens:none;
  -ms-hyphens:none;
  hyphens:none;
  transition:all .2s
}

.component-button .success-icon {
  position:absolute;
  top:50%;
  left:50%;
  width:18px;
  transform:translate3d(-50%,-50%,0) scale(.6);
  opacity:0;
  visibility:hidden
}

.component-button.animate-add-to-cart {
  pointer-events:none
}

.component-button.animate-add-to-cart .component-icon {
  transition:none;
  opacity:0
}

.component-button.animate-add-to-cart .success-icon {
  transition:opacity .45s,visibility .45s,transform .3s cubic-bezier(.25,1,.1,3);
  transform:translate3d(-50%,-50%,0) scale(1);
  opacity:1;
  visibility:visible;
  will-change:transform
}

.component-button.animate-add-to-cart .btn-text {
  transition:none;
  opacity:0;
  will-change:transform
}

.component-button.effect--opacity:after,.component-button.effect--opacity:before {
  transition:all .2s ease
}

.component-button.effect--opacity.background--gradient:after {
  background:var(--buttonBackgroundHover,currentColor)
}

.component-button.effect--fill:after,.component-button.effect--fill:before {
  transition:all .2s ease
}

.component-button.effect--fill.background--gradient:after {
  background:var(--buttonBackgroundHover,currentColor)
}

.component-button.effect--zoom:before {
  transition:all .3s cubic-bezier(.21,.67,.58,1)
}

.component-button.hover {
  --currentColor:var(--buttonColorHover);
  --currentContrast:var(--buttonContrastHover)
}

.component-button.hover.effect--opacity:not(.background--gradient).filled:before {
  background:var(--buttonBackgroundHover,currentColor)
}

.component-button.hover.effect--opacity:not(.background--gradient).transparent .component-button.hover.effect--opacity:not(.background--gradient):before {
  opacity:.3
}

.component-button.hover.effect--opacity.background--gradient:after,.component-button.hover.effect--opacity.background--gradient:before {
  opacity:1!important
}

.component-button.hover.effect--fill:not(.background--gradient):before {
  background:var(--buttonBackgroundHover,currentColor)
}

.component-button.hover.effect--fill:not(.background--gradient).bordered:before {
  border-color:transparent
}

.component-button.hover.effect--fill.background--gradient:before {
  opacity:0
}

.component-button.hover.effect--fill.background--gradient:after {
  opacity:1
}

.component-button.hover.effect--zoom:before {
  transform:scale(1.03)
}

.component-button.bordered.line_size--small:before {
  --buttonBorderWidth:1px
}

.component-button.bordered.line_size--medium:before {
  --buttonBorderWidth:2px
}

.component-button.bordered.line_size--large:before {
  --buttonBorderWidth:3px
}

.component-button.size--large {
  font-size:17px;
  min-width:56px;
  min-height:56px
}

.component-button.size--large .btn-content {
  padding:16px 30px
}

.component-button.size--small {
  font-size:14px;
  min-width:40px;
  min-height:40px
}

.component-button.size--small .btn-content {
  padding:10px 20px
}

.component-button.size--small .btn-content .component-icon {
  --iconMargin:8px
}

.component-button {
  --currentColor:var(--buttonColor);
  --contrastColor:var(--buttonContrast)
}

.component-button.filled {
  border:0
}

.component-button.filled:before {
  outline:1px solid transparent;
  background:var(--buttonBackground,currentColor)
}

.component-button.bordered:before {
  border:var(--buttonBorderWidth,1px) solid var(--buttonBorder,currentColor)
}

.component-button.text--light {
  --buttonColor:var(--lightColor)!important;
  --buttonColorHover:var(--lightColor)!important
}

.component-button.text--light .btn-content {
  --currentColor:var(--lightColor)!important
}

.component-button.text--light .btn-text {
  color:var(--currentColor)!important
}

.component-button.text--dark {
  --buttonColor:var(--darkColor)!important;
  --buttonColorHover:var(--darkColor)!important
}

.component-button.text--dark .btn-content {
  --currentColor:var(--darkColor)!important
}

.component-button.text--dark .btn-text {
  color:var(--currentColor)!important
}

.component-button.transparent:after,.component-button.transparent:before {
  opacity:.2;
  will-change:opacity
}

.component-button.transparent .btn-content {
  color:currentColor!important
}

.component-button.squared {
  --buttonRadius:4px
}

.component-button.rounded {
  --buttonRadius:100px
}

.component-button.rounded.background--gradient {
  --buttonRadius:27px
}

.component-button.rounded.background--gradient.size--small {
  --buttonRadius:19px
}

.component-button.rounded.background--gradient.size--medium {
  --buttonRadius:22px
}

.component-button.background--gradient.bordered:before {
  border:none;
  background:var(--buttonBorder)
}

.component-button.weight--light {
  font-weight:300
}

.component-button.weight--normal {
  font-weight:400
}

.component-button.weight--medium {
  font-weight:500
}

.component-button.weight--bold {
  font-weight:700
}

.component-image {
  width:100%;
  position:relative;
  overflow:hidden;
  display:block;
  z-index:1;
  transition:filter .4s ease
}

.component-image.round {
  border-radius:50%;
  overflow:hidden
}

.component-image.loading .component-image__loading {
  opacity:1;
  visibility:visible
}

.component-image.loading.effect--blur {
  transition:none;
  filter:blur(20px)
}

.component-image[data-img-type=background] {
  padding-bottom:100%
}

.component-image[data-img-type=image] {
  padding-bottom:0!important
}

.component-image[data-action-target] {
  cursor:pointer
}

.is-pointer .component-image[data-effect=zoom] .component-image__image {
  transition:transform .5s ease;
  left:-1px;
  right:-1px;
  bottom:-1px;
  top:-1px
}

.is-pointer .component-image[data-effect=zoom]:hover .component-image__image {
  transform:scale(1.06);
  transition:transform 1.35s cubic-bezier(.21,.32,0,.57)
}

.component-image img.real-image {
  display:block;
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  -webkit-user-drag:none;
  text-indent:-9999px
}

.component-image img.real-image:not([src]) {
  content:url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)
}

.component-image .overlay-container {
  position:absolute;
  z-index:2;
  text-align:left;
  top:0;
  left:0;
  width:100%;
  height:100%;
  opacity:0;
  overflow:hidden;
  transition:opacity .35s ease .15s
}

.component-image .overlay-container[data-size=large] .overlay-title {
  font-size:30px
}

.component-image .overlay-container[data-size=large] .overlay-desc {
  font-size:16px
}

.component-image .overlay-container[data-size=small] .overlay-container {
  padding:15px
}

.component-image .overlay-container[data-size=small] .overlay-title {
  font-size:18px
}

.component-image .overlay-container[data-size=small] .overlay-title+.overlay-desc {
  margin-top:5px
}

.component-image .overlay-container[data-size=xsmall] .overlay-container {
  padding:7px
}

.component-image .overlay-container[data-size=xsmall] .overlay-title {
  font-size:15px
}

.component-image .overlay-container[data-size=xsmall] .overlay-desc {
  font-size:13px
}

.component-image .overlay-container[data-size=xsmall] .overlay-title+.overlay-desc {
  margin-top:5px
}

.component-image .overlay-content {
  position:relative;
  width:100%;
  min-height:100%;
  display:flex;
  flex-flow:column;
  padding:30px
}

body.adaptive-mobile .component-image .overlay-content {
  padding:10px
}

.component-image .overlay-content[data-position=top_left] {
  justify-content:flex-start;
  text-align:left
}

.component-image .overlay-content[data-position=center] {
  justify-content:center;
  align-items:center;
  text-align:center
}

.component-image .overlay-content[data-position=bottom_left] {
  justify-content:flex-end;
  align-items:flex-start;
  text-align:left
}

.component-image .overlay-content[data-position=bottom_right] {
  justify-content:flex-end;
  align-items:flex-end;
  text-align:right
}

.component-image .overlay-layer {
  z-index:0;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  pointer-events:none
}

.component-image .overlay-title {
  font-size:22px;
  line-height:1.37;
  font-weight:700;
  z-index:1;
  transform:translateY(4px);
  transition:transform .3s ease .15s
}

.component-image .overlay-desc {
  display:block;
  font-size:14px;
  line-height:1.37;
  z-index:1;
  transform:translateY(7px);
  transition:transform .35s ease .15s
}

.component-image .overlay-title+.overlay-desc {
  margin-top:10px
}

.component-image.editor-focus .overlay-container,.component-image.editor-hover .overlay-container,.component-image .overlay-container.hover,.component-image .overlay-container[data-type=static],.component-slider:hover .component-image .overlay-container {
  opacity:1;
  transition-delay:0s
}

.component-image.editor-focus .overlay-container .overlay-desc,.component-image.editor-focus .overlay-container .overlay-title,.component-image.editor-hover .overlay-container .overlay-desc,.component-image.editor-hover .overlay-container .overlay-title,.component-image .overlay-container.hover .overlay-desc,.component-image .overlay-container.hover .overlay-title,.component-image .overlay-container[data-type=static] .overlay-desc,.component-image .overlay-container[data-type=static] .overlay-title,.component-slider:hover .component-image .overlay-container .overlay-desc,.component-slider:hover .component-image .overlay-container .overlay-title {
  transform:translateZ(0);
  transition-delay:0s
}

.component-image__natural {
  display:none!important
}

.component-image__img {
  position:relative;
  -o-object-fit:contain;
  object-fit:contain;
  opacity:1;
  visibility:visible;
  z-index:0
}

.component-image__layer {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  transition:opacity .4s ease,visibility .4s ease
}

.component-image__bg {
  image-rendering:optimizeSpeed;
  image-rendering:auto;
  image-rendering:-o-crisp-edges;
  image-rendering:optimize-contrast;
  -ms-interpolation-mode:nearest-neighbor;
  background-repeat:no-repeat;
  background-position:var(--imagePositionX,50%) var(--imagePositionY,50%);
  background-size:cover;
  opacity:1;
  visibility:visible;
  z-index:0
}

.component-image__bg--contain {
  background-size:contain
}

.component-image__bg--repeat {
  background-size:auto;
  background-repeat:repeat
}

.component-image__loading {
  opacity:0;
  visibility:hidden;
  z-index:1;
  transition:opacity .4s ease,visibility .4s ease;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:var(--imagePositionX,50%) var(--imagePositionY,50%)
}

.component-image__loading.bg--contain {
  background-size:contain
}

.component-image__loading.effect--backdrop {
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px)
}

.component-slider .component-image__bg--contain {
  --imagePositionX:50%!important;
  --imagePositionY:50%!important
}

body.adaptive-mobile .component-image .overlay-container {
  overflow-y:auto
}