/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.1
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2016 Daniel Eden
 */
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.animated.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }

.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

@-webkit-keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }
@keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }
.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom; }

@-webkit-keyframes flash {
  from, 50%, to {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@keyframes flash {
  from, 50%, to {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
.flash {
  -webkit-animation-name: flash;
  animation-name: flash; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 1.15, 1.15);
    transform: scale3d(1.15, 1.15, 1.15); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 1.15, 1.15);
    transform: scale3d(1.15, 1.15, 1.15); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse; }

@-webkit-keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand; }

@-webkit-keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }
@keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }
.shake {
  -webkit-animation-name: shake;
  animation-name: shake; }

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg); }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg); }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg); }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg); }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }
@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg); }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg); }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg); }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg); }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }
.headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake; }

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }
@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }
.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing; }

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.tada {
  -webkit-animation-name: tada;
  animation-name: tada; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  to {
    -webkit-transform: none;
    transform: none; } }
.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble; }

@-webkit-keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg); }
  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } }
@keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg); }
  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } }
.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center; }

@-webkit-keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }
.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

@-webkit-keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown; }

@-webkit-keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft; }

@-webkit-keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }
.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight; }

@-webkit-keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp; }

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }
@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }
.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown; }

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft; }

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight; }

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp; }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -150%, 0);
    transform: translate3d(0, -150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -150%, 0);
    transform: translate3d(0, -150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig; }

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-10%, 0, 0);
    transform: translate3d(-10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-10%, 0, 0);
    transform: translate3d(-10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig; }

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(10%, 0, 0);
    transform: translate3d(10%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight; }

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig; }

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 150%, 0);
    transform: translate3d(0, 150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 150%, 0);
    transform: translate3d(0, 150%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp; }

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig; }

@-webkit-keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }
@keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }
.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut; }

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
@keyframes fadeOutDown {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown; }

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
@keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }
.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig; }

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
@keyframes fadeOutLeft {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft; }

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
@keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }
.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig; }

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
@keyframes fadeOutRight {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight; }

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
@keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }
.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig; }

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
@keyframes fadeOutUp {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
@keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }
.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig; }

@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }
@keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }
.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip; }

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX; }

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }
.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY; }

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }
@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }
.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important; }

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }
@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }
.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY; }

@-webkit-keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out; }

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1; }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }
@keyframes lightSpeedOut {
  from {
    opacity: 1; }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }
.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in; }

@-webkit-keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn; }

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft; }

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight; }

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft; }

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
@keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }
.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight; }

@-webkit-keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }
@keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }
.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut; }

@-webkit-keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }
@keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }
.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft; }

@-webkit-keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
@keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight; }

@-webkit-keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
@keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }
.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft; }

@-webkit-keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }
@keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }
.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight; }

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }
@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }
.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }
.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
@keyframes rollOut {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut; }

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }
@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }
.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn; }

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown; }

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft; }

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight; }

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp; }

@-webkit-keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  to {
    opacity: 0; } }
@keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  to {
    opacity: 0; } }
.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut; }

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown; }

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }
@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }
.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft; }

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }
@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }
.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight; }

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }
.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp; }

@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown; }

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft; }

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight; }

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }
.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp; }

@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }
.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown; }

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }
.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft; }

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }
.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight; }

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }
.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp; }

/**/
@-webkit-keyframes blurFadeIn {
  0% {
    opacity: 0;
    transform: scale(1.3); }
  50% {
    opacity: 0.5; }
  100% {
    opacity: 1;
    transform: scale(1); } }
@keyframes blurFadeIn {
  0% {
    opacity: 0;
    transform: scale(1.3); }
  50% {
    opacity: 0.5; }
  100% {
    opacity: 1;
    transform: scale(1); } }
.blurFadeIn {
  -webkit-animation-name: blurFadeIn;
  animation-name: blurFadeIn; }

@-webkit-keyframes blurFadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
    -moz-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    -o-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }
@keyframes blurFadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-10px);
    -moz-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    -o-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0); } }
.blurFadeInDown {
  -webkit-animation-name: blurFadeInDown;
  animation-name: blurFadeInDown; }

@-webkit-keyframes passing {
  0% {
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; } }
@keyframes passing {
  0% {
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(50%);
    -ms-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; } }
@-webkit-keyframes passing-reverse {
  0% {
    -webkit-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; } }
@keyframes passing-reverse {
  0% {
    -webkit-transform: translateX(50%);
    -ms-transform: translateX(50%);
    transform: translateX(50%);
    opacity: 0; }
  50% {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
    opacity: 1; }
  100% {
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    opacity: 0; } }
@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom; }
  50% {
    transform: rotate(-10deg); }
  70% {
    transform: rotate(3deg); }
  to {
    opacity: 1;
    transform: scale(1); } }
.jackInTheBox {
  animation-name: jackInTheBox; }

.contact-display-1-row .title-contact{
  display: inline;
}

/* Optillo: restore Ecolife-like desktop header geometry after rollback. */
@media (min-width: 992px) {
  #header {
    position: relative !important;
  }

  #header .optillo-auth-buttons,
  #header .optillo-auth-buttons.optillo-header-recovered-actions {
    display: none !important;
  }

  #header .optillo-top-account-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    top: 18px !important;
    z-index: 60 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    color: rgba(255, 255, 255, .72) !important;
    font-family: Rubik, sans-serif !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  #header .optillo-top-account-row a,
  #header .optillo-top-account-row span {
    color: rgba(255, 255, 255, .72) !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
  }

  #header .optillo-top-account-row a:hover,
  #header .optillo-top-account-row a:focus-visible {
    color: #ffffff !important;
  }

  #header .optillo-demo-menu-row {
    position: absolute !important;
    left: clamp(500px, 28vw, 545px) !important;
    bottom: 0 !important;
    z-index: 58 !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    gap: 34px !important;
  }

  #header .optillo-demo-menu-row a {
    color: #ffffff !important;
    font-family: Rubik, sans-serif !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }

  #header .optillo-recovered-search {
    position: absolute !important;
    left: 50% !important;
    top: 82px !important;
    z-index: 58 !important;
    width: min(790px, 42vw) !important;
    min-width: 360px !important;
    transform: translateX(-50%) !important;
  }

  #header .optillo-recovered-search form {
    display: flex !important;
    width: 100% !important;
    height: 44px !important;
    background: #ffffff !important;
    border-radius: 4px !important;
    overflow: hidden !important;
  }

  #header .optillo-recovered-search input {
    flex: 1 1 auto !important;
    height: 44px !important;
    border: 0 !important;
    padding: 0 16px !important;
    color: #213039 !important;
    font-size: 14px !important;
  }

  #header .optillo-recovered-search button {
    width: 82px !important;
    height: 44px !important;
    border: 0 !important;
    background: #d80707 !important;
    color: #ffffff !important;
    font-weight: 800 !important;
    text-transform: none !important;
  }

  #header .optillo-desktop-actions-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    top: 82px !important;
    z-index: 60 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 14px !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }

  #header .optillo-desktop-actions-row a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 54px !important;
    min-width: 54px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: #d80707 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    text-decoration: none !important;
  }

  #header .optillo-desktop-actions-row a i {
    color: #ffffff !important;
    font-size: 26px !important;
    line-height: 1 !important;
  }

  #header .optillo-desktop-actions-row a span {
    position: absolute !important;
    right: -6px !important;
    top: -8px !important;
    width: 18px !important;
    height: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: #d80707 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
  }

  #header .optillo-desktop-actions-row .optillo-desktop-cart {
    width: auto !important;
    min-width: 104px !important;
    padding: 0 16px !important;
    gap: 10px !important;
  }

  #header .optillo-desktop-actions-row .optillo-desktop-cart strong {
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
  }
}

/* Optillo: final header override. This must stay after older recovery rules. */
@media (min-width: 992px) {
  #header {
    position: relative !important;
  }

  #header .optillo-auth-buttons,
  #header .optillo-auth-buttons.optillo-header-recovered-actions {
    display: none !important;
  }

  #header .optillo-top-account-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    top: 18px !important;
    z-index: 90 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    color: rgba(255, 255, 255, .72) !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  #header .optillo-top-account-row a,
  #header .optillo-top-account-row span {
    color: rgba(255, 255, 255, .72) !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
  }

  #header .optillo-recovered-search {
    position: absolute !important;
    left: 50% !important;
    top: 82px !important;
    z-index: 88 !important;
    width: min(790px, 42vw) !important;
    min-width: 360px !important;
    transform: translateX(-50%) !important;
  }

  #header .optillo-recovered-search form {
    display: flex !important;
    width: 100% !important;
    height: 44px !important;
    background: #ffffff !important;
    border-radius: 4px !important;
    overflow: hidden !important;
  }

  #header .optillo-recovered-search input {
    flex: 1 1 auto !important;
    height: 44px !important;
    border: 0 !important;
    padding: 0 16px !important;
  }

  #header .optillo-recovered-search button {
    width: 82px !important;
    height: 44px !important;
    border: 0 !important;
    background: #d80707 !important;
    color: #ffffff !important;
    font-weight: 800 !important;
  }

  #header .optillo-desktop-actions-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    top: 82px !important;
    z-index: 90 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }

  #header .optillo-desktop-actions-row a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 54px !important;
    min-width: 54px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: #d80707 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-size: 0 !important;
    text-decoration: none !important;
  }

  #header .optillo-desktop-actions-row a i {
    color: #ffffff !important;
    font-size: 26px !important;
  }

  #header .optillo-desktop-actions-row a span {
    position: absolute !important;
    right: -6px !important;
    top: -8px !important;
    width: 18px !important;
    height: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: #d80707 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
  }

  #header .optillo-desktop-actions-row .optillo-desktop-cart {
    width: auto !important;
    min-width: 104px !important;
    padding: 0 16px !important;
    gap: 10px !important;
    font-size: 16px !important;
  }

  #header .optillo-desktop-actions-row .optillo-desktop-cart strong {
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
  }

  #header .optillo-demo-menu-row {
    position: absolute !important;
    left: clamp(500px, 28vw, 545px) !important;
    bottom: 0 !important;
    z-index: 88 !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    gap: 34px !important;
  }

  #header .optillo-demo-menu-row a {
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }

  #header .elementor-widget-posCart,
  #header .blockcart:not(.optillo-desktop-cart),
  #header .elementor-widget-posWishlist,
  #header .wishlist-top:not(.optillo-header-wishlist),
  #header .elementor-widget-posCompare,
  #header .compare-top:not(.optillo-header-compare),
  #header .elementor-element-jkvfxny {
    display: none !important;
  }

  #header .optillo-demo-phone-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    bottom: 0 !important;
    z-index: 88 !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
  }

  #header .optillo-demo-phone-row i {
    color: #ffffff !important;
    font-size: 26px !important;
  }

  #header .optillo-demo-phone-row span {
    display: block !important;
    color: #ffffff !important;
    white-space: nowrap !important;
  }

  #header .title_vertical .icon-rt-bars-solid::before {
    content: "\f0c9" !important;
    font-family: FontAwesome !important;
    font-style: normal !important;
  }

  #header .title_vertical::after {
    content: "\f107" !important;
    font-family: FontAwesome !important;
    font-style: normal !important;
    font-weight: 400 !important;
    margin-left: auto !important;
  }
}
@media (max-width: 1600px) and (min-width: 1024px){
  .banner-left{
    max-width: 52%;
  }
  .banner-right{
    max-width: 46%;
  }
}
.med-bestsale .product-miniature{
  border-bottom: none;
  border-left: none;
  border-right: none;
  padding-left: 0;
  padding-right: 0;
  margin: 0 20px !important;
}
.med-bestsale .product-miniature:hover{
  border-color: #ebebeb;
}
.med-bestsale .pos-product-widget .slick-arrow{
  top: -2.957rem !important;
}
.med-bestsale .pos-product-widget .slick-next{
  right: 1rem !important;
}
.med-bestsale .pos-product-widget .slick-prev{
  right: 3.5rem !important;
}
.toy-bestsale .product-miniature{
  border-bottom: none;
  border-left: none;
  border-right: none;
  padding-left: 0;
  padding-right: 0;
  margin: 0 20px;
  border-radius:0;
}
.toy-bestsale .product-miniature:hover{
  border-color: #ebebeb;
}
.toy-bestsale .pos-product-widget .slick-slide > *:not(:last-child) {
    margin-bottom: 0;
}
.toy-bestsale .pos-product-widget .slick-next{
  right: 1rem !important;
}
.toy-bestsale .pos-product-widget .slick-prev{
  right: 3.5rem !important;
}
/*# sourceMappingURL=animate.css.map */

.list-bigger-image .style_product_list .img_block{
  max-width: 170px;
}

.has-section-inner .elementor-widget-wrap{
  display: block !important;
}
.elementor-widget-wrap > section{
  width: 100% !important;
}
.elementor-editor-active .elementor.elementor-edit-mode .elementor-top-column .elementor-widget-wrap .elementor-inner-section{
  margin-top: 0;
}

/* ============================================================
   Optillo cluster navigation (home / category / product / brand)
   Theme accent: #F2AD0F (amber)
   ============================================================ */

/* ---- shared base ---- */
.optillo-cluster {
  margin: 28px 0 18px;
  font-family: inherit;
}

.optillo-cluster__inner {
  border-radius: 6px;
  background: #fff;
  border: 1px solid #e8e8e8;
  padding: 22px 22px 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
.dark-theme .optillo-cluster__inner {
  background: #1e2229;
  border-color: #2e333c;
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
}

.optillo-cluster__title {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0 0 4px;
  color: #1a1a1a;
  letter-spacing: -.01em;
}
.dark-theme .optillo-cluster__title {
  color: #f2f2f2;
}

.optillo-cluster__subtitle {
  margin: 0 0 16px;
  font-size: 0.9rem;
  color: #888;
  line-height: 1.4;
}
.dark-theme .optillo-cluster__subtitle {
  color: #aaa;
}

/* ---- columns layout ---- */
.optillo-cluster__cols {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
}

.optillo-cluster-col {
  flex: 1 1 150px;
  min-width: 0;
}

.optillo-cluster-col__heading {
  font-size: .875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #F2AD0F;
  margin: 0 0 6px;
  padding-bottom: 4px;
  border-bottom: 2px solid #F2AD0F;
  display: inline-block;
}
.dark-theme .optillo-cluster-col__heading {
  color: #f9c742;
  border-bottom-color: #f9c742;
}

.optillo-cluster-col__list {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
}
.optillo-cluster-col__list li {
  margin-bottom: 4px;
}
.optillo-cluster-col__list a {
  font-size: .875rem;
  color: #444;
  text-decoration: none;
  display: inline-block;
  transition: color .15s, padding-left .15s;
}
.optillo-cluster-col__list a:hover {
  color: #d99800;
  padding-left: 4px;
}
.dark-theme .optillo-cluster-col__list a {
  color: #ccc;
}
.dark-theme .optillo-cluster-col__list a:hover {
  color: #f9c742;
}

.optillo-cluster-col__list--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.optillo-cluster-col__list--inline li {
  margin-bottom: 0;
}
.optillo-cluster-col__list--inline a {
  background: #f6f6f6;
  border: 1px solid #e0e0e0;
  border-radius: 3px;
  padding: 3px 10px;
  font-size: .82rem;
  font-weight: 600;
  color: #333;
}
.optillo-cluster-col__list--inline a:hover {
  background: #F2AD0F;
  border-color: #F2AD0F;
  color: #fff;
  padding-left: 10px;
}
.dark-theme .optillo-cluster-col__list--inline a {
  background: #2b2f38;
  border-color: #3a3f4b;
  color: #ddd;
}
.dark-theme .optillo-cluster-col__list--inline a:hover {
  background: #F2AD0F;
  color: #fff;
}

/* ---- HOME section ---- */
.optillo-cluster--home {
  margin: 0 0 24px;
  padding: 0;
}
.optillo-cluster__surface {
  /* full-bleed accent bar at top */
  border-top: 4px solid #F2AD0F;
  border-radius: 0 0 6px 6px;
  background: #fff;
  padding: 22px 24px 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.dark-theme .optillo-cluster__surface {
  background: #1e2229;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}

.optillo-cluster--home .optillo-cluster__title {
  font-size: 1.35rem;
  margin-bottom: 2px;
}
.optillo-cluster--home .optillo-cluster__subtitle {
  margin-bottom: 18px;
}

.optillo-cluster__grid {
  margin-top: 0;
}

/* ---- HOME card tiles ---- */
.optillo-cluster-card {
  border-radius: 5px;
  background: #fafafa;
  border: 1px solid #e8e8e8;
  padding: 16px 16px 10px;
  margin-bottom: 18px;
  height: calc(100% - 18px);
  transition: box-shadow .2s, border-color .2s;
}
.optillo-cluster-card:hover {
  box-shadow: 0 3px 12px rgba(0,0,0,.1);
  border-color: #F2AD0F;
}
.dark-theme .optillo-cluster-card {
  background: #252930;
  border-color: #333944;
}
.dark-theme .optillo-cluster-card:hover {
  border-color: #f9c742;
}

.optillo-cluster-card__heading {
  font-size: .95rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 10px;
  padding-bottom: 6px;
  border-bottom: 2px solid #F2AD0F;
}
.dark-theme .optillo-cluster-card__heading {
  color: #f0f0f0;
  border-bottom-color: #f9c742;
}

.optillo-cluster-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.optillo-cluster-card__list li {
  margin-bottom: 5px;
}
.optillo-cluster-card__list a {
  font-size: .875rem;
  color: #444;
  text-decoration: none;
  transition: color .15s, padding-left .15s;
  display: inline-block;
}
.optillo-cluster-card__list a::before {
  content: '›';
  margin-right: 5px;
  color: #F2AD0F;
  font-weight: 700;
}
.optillo-cluster-card__list a:hover {
  color: #d99800;
  padding-left: 3px;
}
.dark-theme .optillo-cluster-card__list a {
  color: #bbb;
}
.dark-theme .optillo-cluster-card__list a:hover {
  color: #f9c742;
}

.optillo-cluster-card__list--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 8px;
  margin-top: 2px;
}
.optillo-cluster-card__list--inline li {
  margin-bottom: 0;
}
.optillo-cluster-card__list--inline a {
  background: #f0f0f0;
  border: 1px solid #ddd;
  border-radius: 20px;
  padding: 4px 13px;
  font-size: .82rem;
  font-weight: 700;
  color: #333;
  letter-spacing: .01em;
}
.optillo-cluster-card__list--inline a::before {
  display: none;
}
.optillo-cluster-card__list--inline a:hover {
  background: #F2AD0F;
  border-color: #F2AD0F;
  color: #fff;
  padding-left: 13px;
}
.dark-theme .optillo-cluster-card__list--inline a {
  background: #2b2f38;
  border-color: #3a3f4b;
  color: #ddd;
}

/* ---- PRODUCT page variant ---- */
.optillo-cluster--product {
  margin-top: 18px;
}
.optillo-cluster--product .optillo-cluster__inner {
  padding: 16px 18px 12px;
  border-top: 3px solid #F2AD0F;
}
.optillo-cluster--product .optillo-cluster__title {
  font-size: 1.05rem;
  margin-bottom: 10px;
}
.optillo-cluster--product .optillo-cluster__cols {
  gap: 2px 20px;
}

/* ---- CATEGORY page variant ---- */
.optillo-cluster--category .optillo-cluster__inner {
  border-top: 3px solid #F2AD0F;
}

/* ---- BRAND page variant ---- */
.optillo-cluster--brand .optillo-cluster__inner {
  border-top: 3px solid #F2AD0F;
}

/* ---- Responsive ---- */
@media (max-width: 991px) {
  .optillo-cluster__surface {
    padding: 18px 16px 16px;
  }
}

@media (max-width: 767px) {
  .optillo-cluster {
    margin: 18px 0 12px;
  }
  .optillo-cluster__inner {
    padding: 14px 14px 10px;
  }
  .optillo-cluster__cols {
    flex-direction: column;
    gap: 0;
  }
  .optillo-cluster-col {
    margin-bottom: 12px;
  }
  .optillo-cluster-card {
    padding: 14px 14px 10px;
    height: auto;
    margin-bottom: 12px;
  }
  .optillo-cluster__surface {
    padding: 16px 14px 14px;
  }
  .optillo-cluster--home .optillo-cluster__title {
    font-size: 1.15rem;
  }
}

/* ================================================================
   NEW HOME + PRODUCT GRID LAYOUT (fbc-* and related cards)
   ================================================================ */

/* HOME tiles must be visual cards, not vertical list */
.fbc-home {
  margin: 26px 0 24px;
  border-top: 4px solid #F2AD0F;
  border-radius: 0 0 8px 8px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  overflow: hidden;
}
.fbc-home__head {
  padding: 18px 22px 12px;
  border-bottom: 1px solid #e8e8e8;
}
.fbc-home__title {
  margin: 0 0 3px;
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a1a1a;
}
.fbc-home__sub {
  margin: 0;
  color: #666;
  font-size: .9rem;
}
.fbc-home__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
  padding: 16px !important;
}
.fbc-tile {
  display: flex !important;
  flex-direction: column !important;
  min-height: 210px;
  height: 100%;
  padding: 14px 14px 12px;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  background: #fafafa;
  transition: box-shadow .2s, border-color .2s, transform .15s;
}
.fbc-tile:hover {
  border-color: #F2AD0F;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
  transform: translateY(-1px);
}
.fbc-tile__heading {
  margin: 0 0 8px;
  padding-bottom: 5px;
  border-bottom: 2px solid #F2AD0F;
  font-size: .95rem;
  font-weight: 700;
  color: #1a1a1a;
}
.fbc-tile__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.fbc-tile__list li { margin: 0 0 5px; }
.fbc-tile__list a {
  display: inline-block;
  font-size: .86rem;
  color: #3f3f3f;
  text-decoration: none;
}
.fbc-tile__list a:hover { color: #d99800; }

/* PRODUCT related cards must render as horizontal card grid */
.optillo-related__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
.optillo-related-card {
  height: 100%;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}
.optillo-related-card__link {
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
  text-decoration: none;
}
.optillo-related-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 88px;
}

/* Tablet */
@media (max-width: 991px) {
  .fbc-home__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .optillo-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .fbc-home__head { padding: 14px 14px 10px; }
  .fbc-home__grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 12px !important;
  }
  .fbc-tile {
    min-height: 0;
    padding: 12px 12px 10px;
  }
  .optillo-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media (max-width: 480px) {
  .optillo-related__grid {
    grid-template-columns: 1fr !important;
  }
}

/* ================================================================
   Core Web Vitals hardening (mobile CLS/INP)
   ================================================================ */
/* Reserve media space before image load */
.js-product-miniature .img_block,
.product-miniature .img_block,
.products .thumbnail-container .product-thumbnail,
.featured-products .product-thumbnail,
.product-accessories .product-thumbnail,
.homefeatured .product-thumbnail,
.poslistcategories .thumb-category,
.slick-slide .product-thumbnail {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.js-product-miniature .img_block img,
.product-miniature .img_block img,
.products .thumbnail-container .product-thumbnail img,
.featured-products .product-thumbnail img,
.product-accessories .product-thumbnail img,
.homefeatured .product-thumbnail img,
.slick-slide .product-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Reserve hero/banner area to avoid first-paint jump */
#slideshow_container,
.pos-slideshow,
.nivoSlider,
.homeslider-container {
  min-height: 280px;
}

@media (max-width: 767px) {
  #slideshow_container,
  .pos-slideshow,
  .nivoSlider,
  .homeslider-container {
    min-height: 180px;
  }
}

/* Reserve late-injected product sections */
.optillo-related-section,
.fbc-home {
  content-visibility: auto;
  contain-intrinsic-size: 600px;
}

/* ================================================================
   Category: lead above grid, full description below products
   ================================================================ */
.fb-cat-hero {
  margin: 0 0 14px;
  padding: 0 2px;
}
.fb-cat-hero__lead {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #444;
  max-width: 58rem;
}
.fb-cat-seo {
  margin: 22px 0 8px;
  padding: 16px 18px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.04);
}
.fb-cat-seo__title {
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 700;
  border-bottom: 2px solid #f2ad0f;
  padding-bottom: 6px;
  color: #1a1a1a;
}
.fb-cat-seo__body {
  font-size: 0.92rem;
  line-height: 1.55;
  color: #333;
}
.fb-cat-seo__body p:first-child {
  margin-top: 0;
}

/* Manufacturer: intro above, long text below listing */
.fb-mfr-hero .manufacturer-intro {
  margin: 0 0 6px;
  max-width: 58rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: #444;
}
.fb-mfr-below {
  margin-top: 18px;
}
.fb-mfr-seo {
  margin: 0 0 16px;
  padding: 16px 18px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fafafa;
}
.fb-mfr-seo__title {
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-weight: 700;
  border-bottom: 2px solid #f2ad0f;
  padding-bottom: 6px;
}

/* Brands listing: kafle tekstowe (div — pełna siata, bez konfliktów z ul w motywie) */
.fb-brands-page__intro {
  margin: 0 0 20px;
  font-size: 1rem;
  color: #444;
  max-width: 48rem;
  line-height: 1.5;
}
body#manufacturer #main.fb-brands-page .fb-brand-grid,
#main.fb-brands-page .fb-brand-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.fb-brand-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
.fb-brand-tile {
  margin: 0 !important;
  padding: 0 !important;
  min-width: 0 !important;
}
.fb-brand-tile__inner {
  height: 100%;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  padding: 16px 18px;
  border: 1px solid #d9d9d9;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s, border-color 0.2s, transform 0.15s;
}
.fb-brand-tile__inner:hover {
  border-color: #f2ad0f;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-1px);
}
.fb-brand-tile__name {
  margin: 0 0 8px;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.25;
}
.fb-brand-tile__name a {
  text-decoration: none;
  color: #1a1a1a;
}
.fb-brand-tile__name a:hover {
  color: #d99800;
}
.fb-brand-tile__lead {
  margin: 0 0 10px;
  flex: 1;
  font-size: 0.86rem;
  line-height: 1.45;
  color: #555;
}
.fb-brand-tile__count {
  margin: 0 0 10px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #666;
}
.fb-brand-tile__cta {
  align-self: flex-start;
  display: inline-block;
  padding: 8px 14px;
  border-radius: 4px;
  background: #f2ad0f;
  color: #fff !important;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none !important;
}
.fb-brand-tile__cta:hover {
  filter: brightness(0.95);
  color: #fff !important;
}
.brand .brand-img {
  display: none !important;
}
@media (max-width: 991px) {
  body#manufacturer #main.fb-brands-page .fb-brand-grid,
  #main.fb-brands-page .fb-brand-grid,
  .fb-brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 575px) {
  body#manufacturer #main.fb-brands-page .fb-brand-grid,
  #main.fb-brands-page .fb-brand-grid,
  .fb-brand-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ================================================================
   Przegląd sklepu — centrum nawigacji (fb-map)
   ================================================================ */
.fb-map-shell.page-content.card {
  padding: 22px 22px 28px !important;
  margin-bottom: 24px !important;
  border-radius: 12px !important;
  border: 1px solid #e2e2e2 !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06) !important;
  background: #fff !important;
}
#main .fb-map,
.page-content .fb-map {
  max-width: none;
  margin: 0;
  padding: 0;
}
.fb-map__hero {
  margin: 0 0 28px;
  padding: 28px 26px 26px;
  border-radius: 12px;
  background: linear-gradient(135deg, #faf8f3 0%, #fff 45%, #f6f7f9 100%);
  border: 1px solid #e6e2d8;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
}
.fb-map__eyebrow {
  margin: 0 0 6px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #b8860b;
}
.fb-map__title {
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 800;
  color: #1a1a1a;
  line-height: 1.2;
}
.fb-map__sub {
  margin: 0;
  max-width: 46rem;
  font-size: 0.96rem;
  line-height: 1.55;
  color: #4a4a4a;
}
.fb-map__quick {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.fb-map__pill {
  display: inline-flex;
  align-items: center;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid #ddd;
  background: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none !important;
  color: #222 !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
  transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.12s;
}
.fb-map__pill:hover {
  background: #f2ad0f;
  border-color: #f2ad0f;
  color: #fff !important;
  transform: translateY(-1px);
}
.fb-map__section-title {
  margin: 0 0 16px;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a1a1a;
  padding-bottom: 8px;
  border-bottom: 3px solid #f2ad0f;
  display: inline-block;
}
.fb-map__section-title--mt {
  margin-top: 36px;
}
.fb-map__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.fb-map__card {
  background: #fff;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  padding: 18px 18px 16px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
  min-height: 100%;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.fb-map__card:hover {
  border-color: #e0c78a;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
}
.fb-map__grid--main .fb-map__card,
.fb-map__grid--topics .fb-map__card {
  min-height: 100%;
}
.fb-map__card-lead {
  margin: 0 0 10px;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #4b5563;
}
.fb-map__card-title {
  margin: 0 0 12px;
  font-size: 1rem;
  font-weight: 800;
  color: #111;
  line-height: 1.25;
}
.fb-map__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.fb-map__list li {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid #f0f0f0;
}
.fb-map__list li:last-child {
  border-bottom: 0;
}
.fb-map__list a {
  display: block;
  padding: 8px 2px;
  text-decoration: none;
  color: #333;
  font-size: 0.9rem;
  line-height: 1.35;
  transition: color 0.12s, padding-left 0.12s;
}
.fb-map__list a:hover {
  color: #c78f00;
  padding-left: 4px;
}
.fb-map__linkstack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  width: 100%;
}
/* Każdy link w osobnej linii — nadpisanie globalnych stylów inline dla <a> */
.fb-map-shell .fb-map__linkstack {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 8px !important;
  width: 100% !important;
}
.fb-map__linkitem {
  display: block;
  padding: 9px 10px;
  border: 1px solid #e6ecf3;
  border-radius: 9px;
  background: #f8fafc;
  text-decoration: none !important;
  color: #1f2937 !important;
  font-size: 0.9rem;
  line-height: 1.35;
  transition: border-color .12s, background .12s, transform .12s;
}
.fb-map-shell .fb-map__linkitem {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  white-space: normal !important;
}
.fb-map__linkitem:hover {
  background: #eef6ff;
  border-color: #bfd5ee;
  transform: translateY(-1px);
}
.fb-map__cta {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border-radius: 10px;
  background: #0f766e;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 0.86rem;
  font-weight: 700;
  transition: transform .12s, background .12s;
}
.fb-map__cta:hover {
  background: #0b5f59;
  transform: translateY(-1px);
}
.fb-map__row2 {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
/* Tematy specjalne = ta sama siatka co Główna siatka (identyczne karty) */
.fb-map-shell .fb-map__grid.fb-map__grid--topics {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
}
.fb-map__details {
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  background: #fafafa;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.fb-map__details summary {
  cursor: pointer;
  list-style: none;
  padding: 14px 18px;
  font-weight: 800;
  font-size: 0.92rem;
  background: #fff;
  border-bottom: 1px solid transparent;
}
.fb-map__details summary::-webkit-details-marker {
  display: none;
}
.fb-map__details[open] summary {
  border-bottom-color: #eee;
  color: #b8860b;
}
.fb-map__details-body {
  padding: 4px 8px 12px 8px;
  background: #fff;
}
.fb-map__list--cols {
  columns: 2;
  column-gap: 24px;
}
.fb-map__list--cols li {
  break-inside: avoid;
}
@media (max-width: 991px) {
  .fb-map__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .fb-map-shell .fb-map__grid.fb-map__grid--topics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 600px) {
  .fb-map__grid {
    grid-template-columns: 1fr;
  }
  .fb-map-shell .fb-map__grid.fb-map__grid--topics {
    grid-template-columns: 1fr !important;
  }
  .fb-map__list--cols {
    columns: 1;
  }
  .fb-map__hero {
    padding: 20px 16px;
  }
}

/* ================================================================
   Opisy produktów — struktura .fpd-body / .fb-product-desc
   ================================================================ */
.product-description.rte.fb-product-desc,
.product-description.fb-product-desc {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #333;
}
.fb-product-desc .fpd-body,
.fpd-body {
  max-width: 52rem;
}
.fb-product-desc .fpd-intro,
.fpd-body .fpd-intro {
  margin-bottom: 1.25rem;
  padding: 14px 16px;
  border-left: 4px solid #f2ad0f;
  background: #faf9f5;
  border-radius: 0 8px 8px 0;
}
.fb-product-desc h2,
.fpd-body h2 {
  margin: 1.5rem 0 0.65rem;
  font-size: 1.08rem;
  font-weight: 800;
  color: #1a1a1a;
  padding-bottom: 6px;
  border-bottom: 2px solid #eee;
}
.fb-product-desc h2:first-child,
.fpd-body h2:first-child {
  margin-top: 0;
}
.fb-product-desc ul,
.fb-product-desc ol,
.fpd-body ul,
.fpd-body ol {
  margin: 0.4rem 0 1rem 1.1rem;
  padding: 0;
}
.fb-product-desc li,
.fpd-body li {
  margin-bottom: 0.35rem;
}
.fb-product-desc .fpd-crosssell,
.fpd-body .fpd-crosssell {
  margin-top: 1.5rem;
  padding: 14px 16px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fcfcfc;
}
.fb-product-desc .fpd-faq dl,
.fpd-body .fpd-faq dl {
  margin: 0.5rem 0 0;
}
.fb-product-desc .fpd-faq dt,
.fpd-body .fpd-faq dt {
  font-weight: 700;
  margin-top: 0.75rem;
  color: #222;
}
.fb-product-desc .fpd-faq dd,
.fpd-body .fpd-faq dd {
  margin: 0.25rem 0 0 0;
  color: #555;
}
.fb-brands-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 8px 40px;
  box-sizing: border-box;
}

/* Homepage H1 (SEO + UX) */
.fb-home-h1 {
  margin: 10px 0 14px;
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
  line-height: 1.25;
  color: #1f1f1f;
  font-weight: 800;
}
@media (min-width: 992px) {
  body.page-index .fb-home-h1 {
    margin-left: calc(33.333% + 15px);
    max-width: calc(66.667% - 15px);
  }
}
@media (max-width: 767px) {
  .fb-home-h1 {
    margin: 8px 0 10px;
    font-size: 1.12rem;
  }
}

/* Equalize the three homepage promotional banners.
   Keeps future replaced images in the same visual frame as the third banner. */
body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner {
  width: 100%;
  height: auto;
  min-height: 0;
  background: transparent;
  line-height: 0;
}
body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner .rt-banner-link {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  line-height: 0;
}
body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center center;
}

/* Optillo equal homepage promo banners v2.
   Keeps the three lower promotional banners in one equal, persistent frame. */
body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner,
body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner .rt-banner-link {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
  background: transparent !important;
  line-height: 0 !important;
}
body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
}
@media (max-width: 1199px) {
  body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner .rt-banner-link,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner img {
    min-height: 0 !important;
  }
}
@media (max-width: 767px) {
  body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner .rt-banner-link,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-vnzrgzs .elementor-widget-pos_banner .home-banner img {
    min-height: 0 !important;
  }
}

/* Main homepage slider: show the full 3:1 banner artwork without crop. */
body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow,
body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slick-list,
body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slick-track,
body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slider-item {
  height: clamp(260px, 33.333vw, 724px) !important;
  min-height: 0 !important;
}
body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slider-item {
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-color: #fff !important;
}
@media (max-width: 767px) {
  body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slick-list,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slick-track,
  body.page-index .elementor-2010000 .elementor-element.elementor-element-kipamte .pos-slideshow .slider-item {
    height: clamp(150px, 33.333vw, 260px) !important;
  }
}

/* Optillo homepage category boxes and water comparison */
:root {
  --optillo-navy: #061f35;
  --optillo-navy-light: #0b344f;
  --optillo-cyan: #12c7d8;
  --optillo-aqua: #58e8f4;
  --optillo-bg: #f6fafb;
  --optillo-text: #213039;
}

body.page-index .elementor-2010000 .elementor-element.elementor-element-thjujhu {
  display: none !important;
}

.optillo-home-sections {
  width: 100%;
}

.optillo-container {
  width: min(1400px, calc(100% - 32px));
  margin: 0 auto;
}

.optillo-section-heading {
  max-width: 880px;
  margin: 0 auto 34px;
  text-align: center;
}

.optillo-section-heading h2,
.optillo-water-compare-content h2 {
  margin: 0;
  color: var(--optillo-navy);
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.12;
  font-weight: 800;
  letter-spacing: -0.03em;
  text-transform: none;
}

.optillo-section-heading p,
.optillo-water-compare-content p {
  margin: 14px 0 0;
  color: #5f717d;
  font-size: 16px;
  line-height: 1.75;
}

.optillo-category-boxes-section {
  margin: 64px 0 0;
  padding: 72px 0;
  background:
    radial-gradient(circle at 10% 0%, rgba(18, 199, 216, 0.18), transparent 36%),
    linear-gradient(180deg, #f6fafb 0%, #edf7fa 100%);
}

.optillo-category-boxes-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.optillo-category-box {
  position: relative;
  display: flex;
  gap: 16px;
  min-height: 190px;
  padding: 24px;
  overflow: hidden;
  color: var(--optillo-text);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid #e3eef2;
  border-radius: 20px;
  box-shadow: 0 16px 38px rgba(6, 31, 53, 0.08);
  text-decoration: none !important;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}

.optillo-category-box::after {
  content: "";
  position: absolute;
  inset: auto -24px -48px auto;
  width: 116px;
  height: 116px;
  border-radius: 999px;
  background: rgba(18, 199, 216, 0.13);
  transition: transform 0.22s ease, background 0.22s ease;
}

.optillo-category-box:hover,
.optillo-category-box:focus-visible {
  color: #fff;
  border-color: rgba(88, 232, 244, 0.42);
  background: linear-gradient(135deg, var(--optillo-navy) 0%, var(--optillo-navy-light) 62%, #075a71 100%);
  box-shadow: 0 22px 48px rgba(6, 31, 53, 0.22);
  transform: translateY(-4px);
}

.optillo-category-box:hover::after,
.optillo-category-box:focus-visible::after {
  background: rgba(88, 232, 244, 0.22);
  transform: scale(1.2);
}

.optillo-category-box__icon {
  flex: 0 0 54px;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  color: var(--optillo-cyan);
  background: linear-gradient(135deg, rgba(18, 199, 216, 0.12), rgba(88, 232, 244, 0.22));
  border-radius: 16px;
}

.optillo-category-box__icon svg {
  width: 31px;
  height: 31px;
}

.optillo-category-box:hover .optillo-category-box__icon,
.optillo-category-box:focus-visible .optillo-category-box__icon {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
}

.optillo-category-box__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.optillo-category-box h3 {
  margin: 0 0 10px;
  color: inherit;
  font-size: 19px;
  line-height: 1.22;
  font-weight: 800;
  text-transform: none;
}

.optillo-category-box p {
  margin: 0;
  color: #61727d;
  font-size: 14px;
  line-height: 1.6;
}

.optillo-category-box:hover p,
.optillo-category-box:focus-visible p {
  color: rgba(255, 255, 255, 0.78);
}

.optillo-category-box__cta {
  margin-top: auto;
  padding-top: 18px;
  color: var(--optillo-cyan);
  font-size: 14px;
  font-weight: 800;
}

.optillo-category-box:hover .optillo-category-box__cta,
.optillo-category-box:focus-visible .optillo-category-box__cta {
  color: var(--optillo-aqua);
}

.optillo-water-compare-section {
  padding: 78px 0;
  background: #fff;
}

.optillo-water-compare-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: center;
}

.optillo-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  color: var(--optillo-cyan);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.optillo-eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background: currentColor;
}

.optillo-water-compare-note {
  padding: 14px 16px;
  color: #536873 !important;
  background: var(--optillo-bg);
  border-left: 4px solid var(--optillo-cyan);
  border-radius: 12px;
}

.optillo-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 22px;
  padding: 0 24px;
  color: #fff !important;
  background: linear-gradient(135deg, var(--optillo-cyan), #07a9c2);
  border-radius: 999px;
  box-shadow: 0 16px 28px rgba(18, 199, 216, 0.22);
  font-weight: 900;
  text-decoration: none !important;
}

.optillo-button:hover,
.optillo-button:focus-visible {
  background: linear-gradient(135deg, #0aa9bd, var(--optillo-navy-light));
}

.optillo-before-after {
  --optillo-position: 50%;
  position: relative;
  aspect-ratio: 1619 / 971;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
  cursor: ew-resize;
  touch-action: none;
  user-select: none;
  background: linear-gradient(135deg, #dff7fb, #fff);
  border: 1px solid #dcecf1;
  border-radius: 26px;
  box-shadow: 0 28px 70px rgba(6, 31, 53, 0.16);
}

.optillo-before-after__image {
  position: absolute;
  inset: 0;
}

.optillo-before-after__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.optillo-before-after__image--before {
  z-index: 2;
  clip-path: inset(0 calc(100% - var(--optillo-position)) 0 0);
}

.optillo-before-after__image--after {
  z-index: 1;
  clip-path: none;
}

.optillo-before-after__label {
  position: absolute;
  top: 18px;
  z-index: 3;
  padding: 8px 13px;
  color: #fff;
  background: rgba(6, 31, 53, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  backdrop-filter: blur(8px);
}

.optillo-before-after__label--before {
  left: 18px;
}

.optillo-before-after__label--after {
  right: 18px;
}

.optillo-before-after__line,
.optillo-before-after__handle {
  position: absolute;
  left: var(--optillo-position);
  z-index: 4;
  pointer-events: none;
}

.optillo-before-after__line {
  top: 0;
  bottom: 0;
  width: 3px;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(6, 31, 53, 0.08), 0 0 24px rgba(18, 199, 216, 0.52);
  transform: translateX(-50%);
}

.optillo-before-after__handle {
  top: 50%;
  display: grid;
  grid-template-columns: repeat(3, 4px);
  gap: 4px;
  width: 54px;
  height: 54px;
  place-content: center;
  background: linear-gradient(135deg, var(--optillo-cyan), var(--optillo-aqua));
  border: 4px solid #fff;
  border-radius: 999px;
  box-shadow: 0 14px 34px rgba(6, 31, 53, 0.24);
  transform: translate(-50%, -50%);
}

.optillo-before-after__handle span {
  width: 4px;
  height: 18px;
  background: rgba(6, 31, 53, 0.72);
  border-radius: 999px;
}

.optillo-before-after__range {
  position: absolute;
  inset: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: ew-resize;
  opacity: 0;
}

.optillo-before-after__range:focus-visible + * {
  outline: 3px solid var(--optillo-cyan);
}

body.page-index .elementor-widget-pos_tab_products .optillo-product-grid-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

body.page-index .elementor-widget-pos_tab_products .optillo-product-grid-list article.product-miniature {
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 1199px) {
  .optillo-category-boxes-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  body.page-index .elementor-widget-pos_tab_products .optillo-product-grid-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .optillo-category-boxes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .optillo-water-compare-layout {
    grid-template-columns: 1fr;
  }

  .optillo-before-after {
    min-height: 0;
  }
}

@media (max-width: 575px) {
  .optillo-container {
    width: min(100% - 22px, 1400px);
  }

  .optillo-category-boxes-section,
  .optillo-water-compare-section {
    padding: 48px 0;
  }

  .optillo-category-boxes-grid {
    grid-template-columns: 1fr;
  }

  .optillo-category-box {
    min-height: 0;
    padding: 20px;
  }

  .optillo-before-after {
    min-height: 0;
    border-radius: 20px;
  }
}

@media (max-width: 767px) {
  body.page-index .elementor-widget-pos_tab_products .optillo-product-grid-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 479px) {
  body.page-index .elementor-widget-pos_tab_products .optillo-product-grid-list {
    grid-template-columns: 1fr !important;
  }
}

.optillo-footer-hub-section {
  padding: 34px 0 48px;
  background:
    radial-gradient(circle at 12% 0%, rgba(88, 232, 244, 0.18), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f6fafb 100%);
}

.optillo-footer-hub {
  overflow: hidden;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid #dcecf1;
  border-top: 5px solid var(--optillo-cyan);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(6, 31, 53, 0.12);
}

.optillo-footer-hub,
.optillo-footer-hub * {
  text-transform: none !important;
}

.optillo-footer-hub__header {
  padding: 24px 28px 18px;
  border-bottom: 1px solid #e6f0f4;
}

.optillo-footer-hub__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: var(--optillo-cyan);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase !important;
}

.optillo-footer-hub__eyebrow::before {
  content: "";
  width: 28px;
  height: 2px;
  background: currentColor;
}

.optillo-footer-hub__header h2 {
  margin: 0 0 6px;
  color: var(--optillo-navy);
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 900;
  line-height: 1.15;
}

.optillo-footer-hub__header p {
  max-width: 860px;
  margin: 0;
  color: #536873;
  font-size: 15px;
  line-height: 1.65;
}

.optillo-footer-hub__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 18px;
}

.optillo-footer-hub__card {
  position: relative;
  min-height: 236px;
  padding: 20px 18px 18px;
  background:
    linear-gradient(145deg, rgba(18, 199, 216, 0.06), transparent 42%),
    #fff;
  border: 1px solid #dcecf1;
  border-radius: 14px;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.optillo-footer-hub__card:hover {
  transform: translateY(-3px);
  border-color: rgba(18, 199, 216, 0.48);
  box-shadow: 0 18px 36px rgba(6, 31, 53, 0.12);
}

.optillo-footer-hub__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 8px;
  color: var(--optillo-navy);
  background: #dcfbfe;
  border: 1px solid rgba(18, 199, 216, 0.24);
  border-radius: 11px;
  font-weight: 900;
}

.optillo-footer-hub__card h3 {
  margin: 0 0 12px;
  padding-bottom: 10px;
  color: var(--optillo-navy);
  border-bottom: 2px solid var(--optillo-cyan);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.25;
}

.optillo-footer-hub__card ul {
  display: grid;
  gap: 7px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.optillo-footer-hub__card a {
  color: #213039;
  text-decoration: none !important;
}

.optillo-footer-hub__card li a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #334b57;
  font-size: 14px;
  line-height: 1.35;
}

.optillo-footer-hub__card li a::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  background: var(--optillo-cyan);
  border-radius: 999px;
  opacity: 0.75;
}

.optillo-footer-hub__card a:hover,
.optillo-footer-hub__card a:focus-visible {
  color: #039eb5;
}

.optillo-footer-hub__cta {
  display: inline-flex;
  margin-top: auto;
  color: var(--optillo-navy) !important;
  font-size: 14px;
  font-weight: 900;
}

@media (max-width: 1199px) {
  .optillo-footer-hub__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .optillo-footer-hub-section {
    padding: 26px 0 36px;
  }

  .optillo-footer-hub__header {
    padding: 20px 18px 16px;
  }

  .optillo-footer-hub__grid {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .optillo-footer-hub__card {
    min-height: 0;
    padding: 18px 16px;
  }
}
/* Optillo: visible account actions in the header builder. */
.optillo-auth-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  width: 100%;
}

.optillo-auth-buttons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  background: #253237;
  color: #fff !important;
  font-family: Rubik, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(37, 50, 55, 0.14);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.optillo-auth-buttons a:hover,
.optillo-auth-buttons a:focus {
  background: #12c7d8;
  color: #fff !important;
  transform: translateY(-1px);
}

.optillo-auth-buttons i {
  font-size: 13px;
  line-height: 1;
}

@media (max-width: 991px) {
  .optillo-auth-buttons {
    justify-content: center;
    flex-wrap: wrap;
  }
}

/* Optillo: keep account actions visible even if later theme rules override generic links. */
#header .optillo-auth-buttons {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  width: 100% !important;
}

#header .optillo-auth-buttons a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-height: 38px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  background: #253237 !important;
  color: #fff !important;
  font-family: Rubik, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(37, 50, 55, 0.14) !important;
}

#header .optillo-auth-buttons a:hover,
#header .optillo-auth-buttons a:focus {
  background: #12c7d8 !important;
  color: #fff !important;
}

/* Optillo: final header auth correction after cached/theme link rules made the buttons look invisible. */
#header .optillo-auth-buttons,
#header .optillo-auth-buttons * {
  opacity: 1 !important;
  visibility: visible !important;
}

#header .optillo-auth-buttons a,
#header .optillo-auth-buttons a span,
#header .optillo-auth-buttons a i {
  color: #fff !important;
}

#header .optillo-auth-buttons a {
  background: #d60000 !important;
  border: 1px solid #ef2b2b !important;
  box-shadow: 0 10px 24px rgba(214, 0, 0, 0.24) !important;
}

#header .optillo-auth-buttons a:hover,
#header .optillo-auth-buttons a:focus-visible {
  background: #b90000 !important;
  border-color: #ff3a3a !important;
}

/* Optillo: keep account, wishlist and compare actions directly after cart. */
#header .optillo-header-recovered-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 10px !important;
  vertical-align: middle !important;
}

#header .compare-top a,
#header .wishlist-top a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 14px !important;
  border-radius: 6px !important;
  background: #d60000 !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  gap: 6px !important;
}

#header .compare-top a:hover,
#header .compare-top a:focus-visible,
#header .wishlist-top a:hover,
#header .wishlist-top a:focus-visible {
  background: #b90000 !important;
  color: #ffffff !important;
}

#header .compare-top-count,
#header .wishlist-top-count {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: #d60000 !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

/* Optillo: file-only header action correction after old docroot restore. */
#header .optillo-auth-buttons.optillo-header-recovered-actions {
  width: auto !important;
  flex: 0 0 auto !important;
  margin-left: 10px !important;
}

#header .optillo-auth-buttons.optillo-header-recovered-actions a,
#header .compare-top.optillo-header-recovered-actions a,
#header .wishlist-top.optillo-header-recovered-actions a {
  min-height: 46px !important;
  padding: 0 14px !important;
  border-radius: 6px !important;
  white-space: nowrap !important;
}

#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
}

#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] > .elementor-element,
#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] > .optillo-header-recovered-actions {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}

#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] .elementor-widget-posCart {
  order: 1 !important;
}

#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] .optillo-auth-buttons {
  order: 2 !important;
}

#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] .elementor-widget-posWishlist,
#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] .wishlist-top {
  order: 3 !important;
}

#header .elementor-widget-wrap[data-optillo-recovered-actions="1"] .compare-top {
  order: 4 !important;
}

#header .elementor-element-zunhxki {
  position: relative !important;
}

#header {
  position: relative !important;
}

#header .optillo-desktop-actions-row {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  width: auto !important;
  max-width: min(760px, 52vw) !important;
  margin: 0 !important;
  z-index: 45 !important;
}

#header .optillo-desktop-actions-row a {
  min-height: 42px !important;
  padding: 0 12px !important;
  border-radius: 6px !important;
  background: #d60000 !important;
  border: 1px solid #ef2b2b !important;
  color: #ffffff !important;
  font-family: Rubik, sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-shadow: 0 10px 24px rgba(214, 0, 0, 0.24) !important;
}

#header .optillo-desktop-actions-row a:hover,
#header .optillo-desktop-actions-row a:focus-visible {
  background: #b90000 !important;
  border-color: #ff3a3a !important;
  color: #ffffff !important;
}

#header .optillo-desktop-actions-row i {
  color: #ffffff !important;
  font-size: 13px !important;
}

@media (min-width: 992px) {
  #header .optillo-desktop-actions-row {
    position: absolute !important;
    top: 112px !important;
    right: clamp(24px, 12vw, 240px) !important;
    transform: none !important;
  }
}

@media (max-width: 1199px) {
  #header .optillo-desktop-actions-row a {
    padding: 0 9px !important;
    font-size: 11px !important;
  }
}

@media (max-width: 991px) {
  #header .optillo-desktop-actions-row {
    display: none !important;
  }
}

#header .elementor-widget-pos_logo img {
  width: auto !important;
  max-width: 178px !important;
  height: auto !important;
  display: block !important;
}

#footer .elementor-widget-image-box .elementor-image-box-img:has(img[src*="aut5_icon_cms"]) {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-right: 18px !important;
  border-radius: 14px !important;
  background: #12c7d8 !important;
}

#footer .elementor-widget-image-box .elementor-image-box-img img[src*="aut5_icon_cms"] {
  width: 42px !important;
  height: auto !important;
  max-width: 42px !important;
  display: block !important;
  opacity: 1 !important;
}

@media (max-width: 991px) {
  #header .optillo-auth-buttons.optillo-header-recovered-actions {
    margin-left: 0 !important;
    margin-top: 8px !important;
  }
}

/* Optillo: keep homepage promo banners equal and fully visible after image swaps. */
body.page-index .elementor-widget-pos_banner .home-banner {
  aspect-ratio: 1.855 / 1 !important;
  width: 100% !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  background: #f6fafb !important;
}

body.page-index .elementor-widget-pos_banner .home-banner a,
body.page-index .elementor-widget-pos_banner .home-banner img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

body.page-index .elementor-widget-pos_banner .home-banner img {
  object-fit: contain !important;
  object-position: center center !important;
}

/* Optillo recovery mobile clamp: after rollback some Elementor sections keep desktop stretched widths. */
@media (max-width: 767px) {
  html,
  body,
  body.page-index {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.page-index .elementor-section-stretched {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    right: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.page-index .optillo-section-heading,
  body.page-index .optillo-section-heading h2,
  body.page-index .optillo-section-heading p,
  body.page-index .optillo-category-box,
  body.page-index .optillo-category-box__content,
  body.page-index .optillo-category-box__content h3,
  body.page-index .optillo-category-box__content p {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
  }
}

/* Optillo: final header override. This block is intentionally last. */
@media (min-width: 992px) {
  #header {
    position: relative !important;
  }

  #header .optillo-auth-buttons,
  #header .optillo-auth-buttons.optillo-header-recovered-actions {
    display: none !important;
  }

  #header .optillo-top-account-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    top: 18px !important;
    z-index: 90 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    color: rgba(255, 255, 255, .72) !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }

  #header .optillo-top-account-row a,
  #header .optillo-top-account-row span {
    color: rgba(255, 255, 255, .72) !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
  }

  #header .optillo-recovered-search {
    position: absolute !important;
    left: 50% !important;
    top: 82px !important;
    z-index: 88 !important;
    width: min(790px, 42vw) !important;
    min-width: 360px !important;
    transform: translateX(-50%) !important;
  }

  #header .optillo-recovered-search form {
    display: flex !important;
    width: 100% !important;
    height: 44px !important;
    background: #ffffff !important;
    border-radius: 4px !important;
    overflow: hidden !important;
  }

  #header .optillo-recovered-search input {
    flex: 1 1 auto !important;
    height: 44px !important;
    border: 0 !important;
    padding: 0 16px !important;
  }

  #header .optillo-recovered-search button {
    width: 82px !important;
    height: 44px !important;
    border: 0 !important;
    background: #d80707 !important;
    color: #ffffff !important;
    font-weight: 800 !important;
  }

  #header .optillo-desktop-actions-row {
    position: absolute !important;
    right: clamp(24px, 13vw, 250px) !important;
    top: 82px !important;
    z-index: 90 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }

  #header .optillo-desktop-actions-row a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 54px !important;
    min-width: 54px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: #d80707 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-size: 0 !important;
    text-decoration: none !important;
  }

  #header .optillo-desktop-actions-row a i {
    color: #ffffff !important;
    font-size: 26px !important;
  }

  #header .optillo-desktop-actions-row a span {
    position: absolute !important;
    right: -6px !important;
    top: -8px !important;
    width: 18px !important;
    height: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: #d80707 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
  }

  #header .optillo-desktop-actions-row .optillo-desktop-cart {
    width: auto !important;
    min-width: 104px !important;
    padding: 0 16px !important;
    gap: 10px !important;
    font-size: 16px !important;
  }

  #header .optillo-desktop-actions-row .optillo-desktop-cart strong {
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
  }

  #header .optillo-demo-menu-row {
    position: absolute !important;
    left: clamp(500px, 28vw, 545px) !important;
    bottom: 0 !important;
    z-index: 88 !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    gap: 34px !important;
  }

  #header .optillo-demo-menu-row a {
    color: #ffffff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }
}
