/* IpoTeco 3.7.2 - scroll performance + FAQ controls
 * Keep static premium gradients and interaction effects, but avoid permanent
 * painting of full-width backgrounds, animated shadows, and large photos.
 * No content, data, or Elementor widget migration is required.
 */

/* Background-position animations and box-shadow pulses repaint repeatedly on
 * many elements at once. A static finish + hover response is less costly. */
.ipo-app .ipo-hero,
.ipo-app .ipo-hero-photo img,
.ipo-app .ipo-hero-card,
.ipo-app .ipo-hero-handnote,
.ipo-app .ipo-header,
.ipo-app .ipo-process,
.ipo-app .ipo-process-handnote,
.ipo-app .ipo-step-number,
.ipo-app .ipo-referral,
.ipo-app .ipo-referral-photo img,
.ipo-app .ipo-referral-handnote,
.ipo-app .ipo-referral-reward,
.ipo-app .ipo-reward-icon,
.ipo-app .ipo-stars,
.ipo-app .ipo-testimonials,
.ipo-app .ipo-faq,
.ipo-app .ipo-faq-contact,
.ipo-app .ipo-faq-contact-icon,
.ipo-app .ipo-footer,
.ipo-app .ipo-btn-primary .ipo-button,
.ipo-default-header,
.ipo-default-footer,
.ipo-app .ipo-services::before,
.ipo-app .ipo-service-icon::after,
.ipo-app .ipo-process::before,
.ipo-app .ipo-referral::before,
.ipo-app .ipo-testimonials::before,
.ipo-app .ipo-faq::before,
.ipo-app .ipo-step-icon::before,
.ipo-app .ipo-step::after {
  animation:none!important;
}

/* Avoid full-card backdrop blur on moving surfaces. Retain the original
 * gradient overlays and border treatments for the same overall look. */
.ipo-app .ipo-service-card::before,
.ipo-app .ipo-made-by {backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
.ipo-app .ipo-process::before {filter:none!important;}

/* One-time, short, composited entrance. No permanent looping animation. */
@keyframes ipxPerfReveal {
  from {opacity:0;translate:0 9px;}
  to {opacity:1;translate:0 0;}
}
.ipo-app .ipx-in-view {
  animation:ipxPerfReveal .34s cubic-bezier(.2,.7,.28,1) both!important;
  animation-delay:var(--ipx-reveal-delay,0ms)!important;
}
.ipo-app .ipo-faq-item .ipo-tab-title[aria-expanded="true"] + .ipo-tab-content {
  animation:none!important;
}

/* FAQ: same position whether the question fits on one or multiple lines.
 * Explicitly override the old icons-v371 transform:none which placed badges
 * too low, starting at 50% instead of centring around 50%. */
.ipo-app .ipo-faq-item .ipo-tab-title {
  position:relative;
  padding-right:44px!important;
}
.ipo-app .ipo-faq-item .ipo-tab-title > .ipo-toggle-icon {
  position:absolute!important;
  inset:auto 11px auto auto!important;
  top:50%!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  flex:0 0 20px!important;
  border-radius:7px!important;
  transform:translateY(-50%)!important;
  translate:none!important;
  scale:1!important;
  line-height:0!important;
  font-size:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#e7f5ed!important;
}
.ipo-app .ipo-faq-item .ipo-tab-title > .ipo-toggle-icon::before,
.ipo-app .ipo-faq-item .ipo-tab-title > .ipo-toggle-icon::after {
  content:"";
  position:absolute;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:9px!important;
  height:1.75px!important;
  background:#008f58!important;
  border-radius:3px!important;
  transform:translate(-50%,-50%)!important;
  transform-origin:center!important;
}
.ipo-app .ipo-faq-item .ipo-tab-title > .ipo-toggle-icon::after {
  transform:translate(-50%,-50%) rotate(90deg)!important;
}
.ipo-app .ipo-faq-item .ipo-tab-title[aria-expanded="true"] > .ipo-toggle-icon {
  background:#d6f3e2!important;
  transform:translateY(-50%)!important;
}
.ipo-app .ipo-faq-item .ipo-tab-title[aria-expanded="true"] > .ipo-toggle-icon::after {
  transform:translate(-50%,-50%) rotate(0deg)!important;
}

@media (max-width:620px) {
  .ipo-app .ipx-in-view {animation-duration:.22s!important;}
  .ipo-app .ipo-faq-item .ipo-tab-title > .ipo-toggle-icon {
    right:9px!important;
    width:19px!important;height:19px!important;min-width:19px!important;flex-basis:19px!important;
  }
}
@media (prefers-reduced-motion:reduce) {
  .ipo-app .ipx-in-view {animation:none!important;}
  .ipo-app .ipo-faq-item .ipo-toggle-icon,
  .ipo-app .ipo-faq-item .ipo-toggle-icon::before,
  .ipo-app .ipo-faq-item .ipo-toggle-icon::after {transition:none!important;}
}
.elementor-editor-active .ipo-app .ipx-in-view {animation:none!important;}
