.psp-slider{position:relative;width:100%;max-width:100%;height:var(--psp-height,520px);overflow:hidden;isolation:isolate;box-sizing:border-box;background:#151923;color:#fff;font-family:inherit;border-radius:var(--psp-radius,16px);line-height:1.45}.psp-slider *{box-sizing:border-box}.psp-track{height:100%;position:relative}.psp-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .55s ease;display:flex;align-items:flex-end}.psp-slide.is-active{opacity:1;visibility:visible;z-index:1}.psp-image{position:absolute;inset:0;width:100%;height:100%;object-fit:var(--psp-fit,cover);object-position:var(--psp-position,center center);z-index:-2}.psp-image:after{content:""}.psp-image-placeholder{background:linear-gradient(135deg,#202a44,#6c5ce7)}.psp-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.54),transparent 78%);z-index:-1;pointer-events:none}.psp-content{position:relative;max-width:min(760px,86%);margin:clamp(20px,5vw,64px);padding:clamp(18px,2.6vw,32px);background:color-mix(in srgb,var(--psp-overlay,#101522) calc(var(--psp-overlay-alpha,.65)*100%),transparent);color:var(--psp-text,#f3f4f6);border-radius:calc(var(--psp-radius,16px) * .75);height:var(--psp-content-height,auto);max-height:100%;overflow:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.psp-no-overlay{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;text-shadow:0 2px 14px #000}.psp-title{margin:0 0 12px!important;color:var(--psp-title,#fff)!important;font-size:var(--psp-title-size,36px);font-weight:750;line-height:1.1;letter-spacing:-.025em}.psp-title a{color:inherit!important;text-decoration:none!important}.psp-excerpt{margin:0 0 20px!important;color:var(--psp-text,#f3f4f6)!important;font-size:clamp(.95rem,1.4vw,1.12rem);max-width:65ch}.psp-button{display:inline-flex;align-items:center;gap:12px;padding:11px 18px;border-radius:7px;background:var(--psp-button-bg,#111111);color:#fff!important;text-decoration:none!important;font-weight:700;font-size:.95rem;transition:transform .2s,background .2s}.psp-button:hover{background:var(--psp-button-hover,#252525);transform:translateY(-1px)}.psp-button:active{background:var(--psp-button-active,#000000);transform:translateY(0)}.psp-layout-center .psp-slide{align-items:center}.psp-layout-center .psp-content{margin-inline:auto;text-align:center}.psp-layout-left .psp-slide,.psp-layout-right .psp-slide{align-items:stretch}.psp-layout-left .psp-content,.psp-layout-right .psp-content{width:min(42%,520px);max-width:42%;margin:0;border-radius:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(22px,4vw,56px)}.psp-layout-left .psp-content{margin-right:auto}.psp-layout-right .psp-content{margin-left:auto}.psp-layout-left .psp-slide:before,.psp-layout-right .psp-slide:before{background:linear-gradient(90deg,rgba(0,0,0,.3),transparent)}.psp-arrows{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:0 18px;pointer-events:none}.psp-arrows-center{justify-content:center;gap:16px}.psp-arrows button{pointer-events:auto;width:44px;height:44px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:var(--psp-arrow-bg,rgba(10,14,25,.48));color:#fff;font-size:32px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;backdrop-filter:blur(6px);transition:background .2s,transform .2s}.psp-arrows button svg{display:block;width:22px;height:22px;flex:0 0 22px}.psp-arrows button:hover{background:var(--psp-arrow-hover,#6842f5);transform:scale(1.06)}.psp-arrows button:active{background:var(--psp-arrow-active,#5230dc);transform:scale(.98)}.psp-navigation{position:absolute;z-index:4;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:8px}.psp-indicator{width:24px;height:20px;padding:7px 0;border:0;background:transparent;cursor:pointer}.psp-indicator span{display:block;width:100%;height:4px;border-radius:10px;background:rgba(255,255,255,.52);transition:background .2s,transform .2s}.psp-indicator.is-active span{background:#fff;transform:scaleY(1.35)}.psp-navigation-progress{width:min(560px,72%);gap:8px}.psp-navigation-progress .psp-indicator{flex:1;min-width:34px;width:auto;height:14px;padding:4px 0}.psp-navigation-progress .psp-indicator span{height:5px;background:var(--psp-indicator-bg,rgba(255,255,255,.4));transform:scaleX(1);transform-origin:left}.psp-navigation-progress .psp-indicator.is-active span{background:var(--psp-indicator-active,#ffffff)}.psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span{transform-origin:left;animation:psp-progress var(--psp-duration,5000ms) linear forwards}@keyframes psp-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}.psp-slider button:focus-visible,.psp-slider a:focus-visible{outline:3px solid #a99aff;outline-offset:3px}.psp-slider button{font-family:inherit}@media(max-width:767px){.psp-slider{height:var(--psp-mobile-height,460px);border-radius:var(--psp-radius,16px)}.psp-content{max-width:calc(100% - 32px);margin:16px;padding:18px}.psp-title{font-size:var(--psp-mobile-title-size,28px)}.psp-excerpt{font-size:.94rem;margin-bottom:14px!important}.psp-layout-left .psp-content,.psp-layout-right .psp-content{width:min(78%,440px);max-width:78%;padding:20px 16px}.psp-arrows{padding:0 8px}.psp-arrows button{width:36px;height:36px;font-size:27px}.psp-navigation{bottom:10px}.psp-navigation-progress{width:min(88%,560px);gap:5px}.psp-navigation-progress .psp-indicator{min-width:18px}.psp-button{padding:10px 14px}}@media(prefers-reduced-motion:reduce){.psp-slide,.psp-button,.psp-arrows button{transition:none!important}.psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span{animation:none}}

/* Isolamento de botões contra estilos globais de temas e Elementor */
.psp-slider .psp-arrows button,
.psp-slider .psp-arrows button:visited{background-color:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;color:#fff!important;box-shadow:none!important;text-decoration:none!important;text-transform:none!important}
.psp-slider .psp-arrows button:hover{background-color:var(--psp-arrow-hover,#596273)!important;color:#fff!important}
.psp-slider .psp-arrows button:active{background-color:var(--psp-arrow-active,#454c5a)!important;color:#fff!important}
.psp-slider .psp-arrows button:focus:not(:focus-visible){background:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;background-color:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;outline:none!important;box-shadow:none!important}
.psp-slider .psp-arrows button:focus-visible{outline:2px solid rgba(255,255,255,.8);outline-offset:2px}
.psp-slider .psp-button,
.psp-slider .psp-button:visited{background-color:var(--psp-button-bg,#111)!important;color:#fff!important;box-shadow:none!important;text-decoration:none!important}
.psp-slider .psp-button:hover{background-color:var(--psp-button-hover,#252525)!important;color:#fff!important}
.psp-slider .psp-button:active,
.psp-slider .psp-button:focus{background-color:var(--psp-button-active,#000)!important;color:#fff!important}
.elementor-editor-active .psp-slider{max-width:100%}

/* Indicadores configuráveis e protegidos de estilos globais de tema/Elementor */
.psp-slider .psp-navigation .psp-indicator,
.psp-slider .psp-navigation .psp-indicator:hover,
.psp-slider .psp-navigation .psp-indicator:focus,
.psp-slider .psp-navigation .psp-indicator:active{
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
  border:0!important;
  text-decoration:none!important;
  outline:none;
  -webkit-appearance:none;
  appearance:none;
}
.psp-slider .psp-navigation .psp-indicator span{
  background:var(--psp-indicator-bg,rgba(255,255,255,.52))!important;
  box-shadow:none!important;
}
.psp-slider .psp-navigation .psp-indicator:hover span{
  background:var(--psp-indicator-hover,#d1d5db)!important;
}
.psp-slider .psp-navigation .psp-indicator:active span{
  background:var(--psp-indicator-active,#ffffff)!important;
}
.psp-slider .psp-navigation .psp-indicator.is-active span{
  background:var(--psp-indicator-active,#ffffff)!important;
}
.psp-slider .psp-navigation .psp-indicator:focus:not(:focus-visible) span{
  background:var(--psp-indicator-bg,rgba(255,255,255,.52))!important;
}
.psp-slider .psp-navigation .psp-indicator:focus-visible{
  outline:2px solid rgba(255,255,255,.85)!important;
  outline-offset:4px;
}
.psp-slider .psp-arrows button:focus:not(:focus-visible){box-shadow:none!important}

/* PSP 1.1.9: neutralize sticky theme/Elementor button states */
.psp-slider .psp-arrows button:hover,
.psp-slider .psp-arrows button:focus,
.psp-slider .psp-arrows button:focus-visible,
.psp-slider .psp-arrows button:visited{
  color:#fff!important;
  box-shadow:none!important;
  text-decoration:none!important;
}
.psp-slider .psp-arrows button:hover{background:var(--psp-arrow-hover,#596273)!important;background-color:var(--psp-arrow-hover,#596273)!important}
.psp-slider .psp-arrows button:focus:not(:focus-visible){background:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;background-color:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;outline:none!important}
.psp-slider .psp-arrows button:focus-visible{background:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;background-color:var(--psp-arrow-bg,rgba(10,14,25,.48))!important;outline:2px solid rgba(255,255,255,.8)!important;outline-offset:2px}
.psp-slider .psp-navigation .psp-indicator:hover span{transform:scaleY(1.08)!important}
.psp-slider .psp-navigation-progress .psp-indicator span{height:5px!important;border-radius:999px!important}
@media(max-width:767px){.psp-slider .psp-navigation-progress{width:88%!important;gap:5px!important}}

/* PSP 1.1.11: final neutral interaction states; never use purple as an implicit default */
.psp-slider .psp-arrows button,
.psp-slider .psp-arrows button:visited {
  background: var(--psp-arrow-bg, rgba(10,14,25,.48)) !important;
  background-color: var(--psp-arrow-bg, rgba(10,14,25,.48)) !important;
}
.psp-slider .psp-arrows button:hover {
  background: var(--psp-arrow-hover, #596273) !important;
  background-color: var(--psp-arrow-hover, #596273) !important;
}
.psp-slider .psp-arrows button:active {
  background: var(--psp-arrow-active, #454c5a) !important;
  background-color: var(--psp-arrow-active, #454c5a) !important;
}
.psp-slider .psp-arrows button:focus:not(:focus-visible),
.psp-slider .psp-arrows button:focus-visible {
  background: var(--psp-arrow-bg, rgba(10,14,25,.48)) !important;
  background-color: var(--psp-arrow-bg, rgba(10,14,25,.48)) !important;
  box-shadow: none !important;
}
.psp-slider .psp-arrows button:focus-visible {
  outline: 2px solid rgba(255,255,255,.8) !important;
  outline-offset: 2px;
}
.psp-slider .psp-navigation-progress .psp-indicator span {
  background: var(--psp-indicator-bg, rgba(255,255,255,.4)) !important;
}
.psp-slider .psp-navigation-progress .psp-indicator.is-active span {
  background: var(--psp-indicator-active, #ffffff) !important;
}
.psp-slider .psp-navigation-progress .psp-indicator:hover span {
  background: var(--psp-indicator-hover, #d1d5db) !important;
}
.psp-slider .psp-navigation-progress .psp-indicator:active span {
  background: var(--psp-indicator-active, #ffffff) !important;
}

/* PSP 1.1.12: clearer, responsive progress bars with a visible neutral-to-white fill */
.psp-slider .psp-navigation.psp-navigation-progress {
  width: min(760px, 82%);
  max-width: calc(100% - 32px);
  display: flex;
  gap: 10px;
}
.psp-slider .psp-navigation-progress .psp-indicator {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  height: 22px;
  padding: 7px 0;
  overflow: visible;
}
.psp-slider .psp-navigation-progress .psp-indicator span {
  position: relative;
  display: block;
  width: 100%;
  height: 8px !important;
  overflow: hidden;
  border-radius: 999px;
  background: var(--psp-indicator-bg, rgba(255,255,255,.36)) !important;
  transform: none !important;
  transition: background-color .2s ease;
}
.psp-slider .psp-navigation-progress .psp-indicator span::after {
  content: "";
  position: absolute;
  inset: 0;
  display: block;
  border-radius: inherit;
  background: var(--psp-indicator-active, #ffffff);
  transform: scaleX(0);
  transform-origin: left center;
}
.psp-slider .psp-navigation-progress .psp-indicator.is-active span {
  background: var(--psp-indicator-bg, rgba(255,255,255,.36)) !important;
  transform: none !important;
}
.psp-slider .psp-navigation-progress .psp-indicator.is-active span::after {
  transform: scaleX(1);
}
.psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span::after {
  animation: psp-progress-fill var(--psp-duration, 5000ms) linear forwards;
}
.psp-slider .psp-navigation-progress .psp-indicator:hover span {
  background: var(--psp-indicator-hover, #d1d5db) !important;
}
.psp-slider .psp-navigation-progress .psp-indicator:hover span::after {
  background: var(--psp-indicator-active, #ffffff);
}
@keyframes psp-progress-fill {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@media (max-width: 767px) {
  .psp-slider .psp-navigation.psp-navigation-progress {
    width: calc(100% - 28px);
    max-width: calc(100% - 28px);
    gap: clamp(3px, 1.2vw, 6px);
  }
  .psp-slider .psp-navigation-progress .psp-indicator {
    min-width: 0;
    height: 18px;
    padding: 6px 0;
  }
  .psp-slider .psp-navigation-progress .psp-indicator span {
    height: 6px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span::after {
    animation: none !important;
    transform: scaleX(1);
  }
}

/* PSP 1.1.13: high-contrast timer fill on neutral progress tracks */
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator span {
  background: var(--psp-indicator-bg, #8b8b9a) !important;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator.is-active span {
  background: var(--psp-indicator-bg, #8b8b9a) !important;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator span::after {
  background: var(--psp-indicator-active, #ffffff) !important;
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}
.psp-slider.psp-playing .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
  animation: psp-progress-fill var(--psp-duration, 5000ms) linear both !important;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator:not(.is-active) span::after {
  animation: none !important;
  transform: scaleX(0);
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator.is-active:not(:hover) span {
  background: var(--psp-indicator-bg, #8b8b9a) !important;
}
@media (prefers-reduced-motion: reduce) {
  .psp-slider.psp-playing .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
    animation: none !important;
    transform: scaleX(1);
  }
}

/* PSP 1.1.14: pause the visual timer without resetting its progress on hover/focus */
.psp-slider.psp-paused .psp-navigation-progress .psp-indicator.is-active span::after {
  animation-play-state: paused !important;
}
.psp-slider.psp-playing:not(.psp-paused) .psp-navigation-progress .psp-indicator.is-active span::after {
  animation-play-state: running !important;
}

/* PSP 1.1.15: progress fill is controlled by a pausable Web Animations API timeline */
.psp-slider .psp-navigation-progress .psp-indicator span::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}
.psp-slider .psp-navigation-progress .psp-indicator span .psp-progress-fill {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: var(--psp-indicator-active, #ffffff) !important;
  transform: scaleX(0);
  transform-origin: left center;
  box-shadow: none !important;
  pointer-events: none !important;
}
.psp-slider .psp-navigation-progress .psp-indicator:not(.is-active) span .psp-progress-fill {
  transform: scaleX(0) !important;
}

/* PSP 1.1.16: restore the visible CSS progress fill and pause it without detaching its animation */
.psp-slider .psp-navigation-progress .psp-indicator span::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  border-radius: inherit !important;
  background: var(--psp-indicator-active, #ffffff) !important;
  transform: scaleX(0);
  transform-origin: left center;
  animation: none;
}
.psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span::after {
  animation: psp-progress-fill var(--psp-duration, 5000ms) linear both !important;
  animation-play-state: running;
}
.psp-slider.psp-playing.psp-paused .psp-navigation-progress .psp-indicator.is-active span::after {
  animation-play-state: paused !important;
}
.psp-slider .psp-navigation-progress .psp-indicator:not(.is-active) span::after {
  animation: none !important;
  transform: scaleX(0);
}
.psp-slider .psp-navigation-progress .psp-indicator span .psp-progress-fill {
  display: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span::after {
    animation: none !important;
    transform: scaleX(1);
  }
}

/* PSP 1.1.17: re-trigger progress animation on every slide selection */
.psp-slider.psp-playing .psp-navigation-progress .psp-indicator.is-active span::after {
  animation-name: psp-progress-fill !important;
  animation-duration: var(--psp-duration, 5000ms) !important;
  animation-timing-function: linear !important;
  animation-fill-mode: both !important;
}
.psp-slider.psp-playing.psp-paused .psp-navigation-progress .psp-indicator.is-active span::after {
  animation-play-state: paused !important;
}

/* PSP 1.1.18: reliable progress fill via Web Animations API; disable conflicting pseudo-element animations */
.psp-slider .psp-navigation-progress .psp-indicator span::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}
.psp-slider .psp-navigation-progress .psp-indicator span .psp-progress-fill {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: var(--psp-indicator-active, #ffffff) !important;
  transform: scaleX(0);
  transform-origin: left center;
  box-shadow: none !important;
  pointer-events: none !important;
}
.psp-slider .psp-navigation-progress .psp-indicator:not(.is-active) span .psp-progress-fill {
  transform: scaleX(0);
}

/* PSP 1.1.19: single, deterministic CSS timeline for the active progress indicator */
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator span {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
  transform: none !important;
  animation: none !important;
  isolation: isolate;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator span::after {
  content: "" !important;
  position: absolute !important;
  display: block !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: var(--psp-indicator-active, #ffffff) !important;
  transform: scaleX(0);
  transform-origin: left center;
  animation: none !important;
  box-shadow: none !important;
  pointer-events: none !important;
}
.psp-slider.psp-playing .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
  animation: psp-progress-fill var(--psp-duration, 5000ms) linear both !important;
  animation-play-state: running !important;
}
.psp-slider.psp-playing.psp-paused .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
  animation-play-state: paused !important;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator:not(.is-active) span::after {
  animation: none !important;
  transform: scaleX(0) !important;
}
@keyframes psp-progress-fill {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

/* PSP 1.1.20: canonical progress animation rules; override legacy patches from earlier releases */
.psp-slider.psp-playing .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: var(--psp-indicator-active, #ffffff) !important;
  transform: scaleX(0);
  transform-origin: left center !important;
  animation-name: psp-progress-fill !important;
  animation-duration: var(--psp-duration, 5000ms) !important;
  animation-timing-function: linear !important;
  animation-delay: 0ms !important;
  animation-iteration-count: 1 !important;
  animation-fill-mode: both !important;
  animation-play-state: running !important;
  box-shadow: none !important;
  pointer-events: none !important;
}
.psp-slider.psp-playing.psp-paused .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
  animation-play-state: paused !important;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator:not(.is-active) span::after {
  content: "" !important;
  display: block !important;
  animation: none !important;
  transform: scaleX(0) !important;
}
.psp-slider .psp-navigation.psp-navigation-progress .psp-indicator span {
  position: relative !important;
  overflow: hidden !important;
}
@keyframes psp-progress-fill {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

/* 1.1.21: show an immediate 2% cue on the selected progress indicator,
   including while autoplay is paused by hover. */
.psp-slider.psp-playing .psp-navigation.psp-navigation-progress .psp-indicator.is-active span::after {
  transform: scaleX(.02);
}
@keyframes psp-progress-fill {
  from { transform: scaleX(.02); }
  to { transform: scaleX(1); }
}
