.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* =====================================================
   PERFORMANCELABS UK — HOMEPAGE ANIMATIONS
   ===================================================== */

/* ---- Keyframes ---- */
@keyframes pluk-fade-up {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pluk-float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-8px); }
}
@keyframes pluk-pulse-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(59,130,246,0); }
  50%       { box-shadow: 0 0 24px 4px rgba(59,130,246,0.35); }
}
@keyframes pluk-shimmer-sweep {
  0%   { left: -100%; }
  100% { left: 160%; }
}
@keyframes pluk-counter-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* =====================================================
   SMOOTH SCROLL
   ===================================================== */
html { scroll-behavior: smooth; }

/* =====================================================
   HERO SECTION — staggered entrance
   ===================================================== */
.elementor-section:first-of-type .elementor-heading-title {
  animation: pluk-fade-up 0.9s cubic-bezier(.22,1,.36,1) 0.1s both;
}
.elementor-section:first-of-type .elementor-widget-text-editor p {
  animation: pluk-fade-up 0.9s cubic-bezier(.22,1,.36,1) 0.3s both;
}
.elementor-section:first-of-type .elementor-button {
  animation: pluk-fade-up 0.9s cubic-bezier(.22,1,.36,1) 0.5s both;
}

/* =====================================================
   PRODUCT IMAGES — float hover
   ===================================================== */
.elementor-widget-image img {
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.elementor-widget-image:hover img {
  transform: translateY(-6px) scale(1.02);
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}

/* =====================================================
   ICON STRIP — lift + teal on hover
   ===================================================== */
.elementor-icon-box-wrapper {
  transition: transform 0.35s cubic-bezier(.22,1,.36,1);
}
.elementor-icon-box-wrapper:hover {
  transform: translateY(-7px);
}
.elementor-icon-box-wrapper .elementor-icon i,
.elementor-icon-box-wrapper .elementor-icon svg {
  transition: color 0.3s ease, fill 0.3s ease, filter 0.3s ease;
}
.elementor-icon-box-wrapper:hover .elementor-icon i,
.elementor-icon-box-wrapper:hover .elementor-icon svg {
  animation: pluk-float 2s ease-in-out infinite;
  filter: drop-shadow(0 0 8px rgba(34,211,238,0.7));
}

/* =====================================================
   PRODUCT CARDS — lift + shadow on hover
   ===================================================== */
.wc-block-grid__product,
.products li.product,
.elementor-products-grid .product {
  transition: transform 0.35s cubic-bezier(.22,1,.36,1),
              box-shadow 0.35s ease !important;
  border-radius: 12px;
}
.wc-block-grid__product:hover,
.products li.product:hover,
.elementor-products-grid .product:hover {
  transform: translateY(-9px) !important;
  box-shadow: 0 24px 60px rgba(0,30,80,0.22) !important;
}
.wc-block-grid__product a img,
.products li.product a img {
  transition: transform 0.5s cubic-bezier(.22,1,.36,1) !important;
  overflow: hidden;
}
.wc-block-grid__product:hover a img,
.products li.product:hover a img {
  transform: scale(1.05) !important;
}

/* =====================================================
   CTA BUTTONS — shimmer + lift
   ===================================================== */
.elementor-button {
  position: relative;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
.elementor-button::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  transform: skewX(-20deg);
  pointer-events: none;
}
.elementor-button:hover::after {
  animation: pluk-shimmer-sweep 0.55s ease forwards;
}
.elementor-button:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 32px rgba(59,130,246,0.4) !important;
}
.elementor-button:active {
  transform: translateY(0) !important;
}

/* =====================================================
   ADD TO CART — pulse glow
   ===================================================== */
.add_to_cart_button,
.single_add_to_cart_button {
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
.add_to_cart_button:hover,
.single_add_to_cart_button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 0 20px 4px rgba(59,130,246,0.4) !important;
}

/* =====================================================
   STAT / COUNTER WIDGETS
   ===================================================== */
.elementor-counter-number-wrapper {
  animation: pluk-counter-up 0.7s cubic-bezier(.22,1,.36,1) 0.2s both;
}

/* =====================================================
   SECTION CONTAINERS — gentle entrance via JS class
   ===================================================== */
.pluk-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s cubic-bezier(.22,1,.36,1),
              transform 0.65s cubic-bezier(.22,1,.36,1);
}
.pluk-reveal.pluk-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}
.pluk-reveal-left {
  opacity: 0;
  transform: translateX(-36px);
  transition: opacity 0.65s cubic-bezier(.22,1,.36,1),
              transform 0.65s cubic-bezier(.22,1,.36,1);
}
.pluk-reveal-left.pluk-visible { opacity: 1; transform: translateX(0); }
.pluk-reveal-right {
  opacity: 0;
  transform: translateX(36px);
  transition: opacity 0.65s cubic-bezier(.22,1,.36,1),
              transform 0.65s cubic-bezier(.22,1,.36,1);
}
.pluk-reveal-right.pluk-visible { opacity: 1; transform: translateX(0); }

/* =====================================================
   NAV LINKS — subtle hover underline
   ===================================================== */
.elementor-nav-menu a {
  position: relative;
}
.elementor-nav-menu a::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 50%;
  width: 0; height: 2px;
  background: #22d3ee;
  transition: width 0.3s ease, left 0.3s ease;
}
.elementor-nav-menu a:hover::after {
  width: 100%;
  left: 0;
}

/* =====================================================
   REDUCED MOTION SAFETY
   ===================================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}/* End custom CSS */