.kdgi-ui.kdgi-carousel{
  --kdgi-cards-gap:24px;
  --kdgi-edge-peek:0px;
  --kdgi-slide-width:calc((100% - 2 * var(--kdgi-cards-gap)) / 3);
  --kdgi-card-radius:28px;
  --kdgi-front-overlay:rgba(1,3,2,.36);
  --kdgi-front-text:#fff;
  --kdgi-back-bg:#f5f5f7;
  --kdgi-back-text:#010302;
  --kdgi-button-bg:#0000ff;
  --kdgi-button-color:#fff;

  /* KDGI control tokens */
  --kdgi-bg:#262626;
  --kdgi-surface:#262626;
  --kdgi-text:#d9dce0;
  --kdgi-muted:#a3a8ae;
  --kdgi-ease:cubic-bezier(.22,1,.36,1);
  --kdgi-inset:inset 4px 4px 9px rgba(0,0,0,.48),inset -4px -4px 9px rgba(255,255,255,.055);

  position:relative;
  width:100%;
  min-width:0;
  overflow:visible;
}

.kdgi-ui.kdgi-carousel,
.kdgi-ui.kdgi-carousel *,
.kdgi-ui.kdgi-carousel *::before,
.kdgi-ui.kdgi-carousel *::after{
  box-sizing:border-box;
}

.kdgi-ui.kdgi-carousel :is(button,a){
  -webkit-tap-highlight-color:transparent;
}

.kdgi-ui.kdgi-carousel .kdgi-rail{
  display:flex;
  flex-wrap:nowrap;
  gap:var(--kdgi-cards-gap);
  width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding:16px var(--kdgi-edge-peek);
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;
  cursor:grab;
}

.kdgi-ui.kdgi-carousel .kdgi-rail.kdgi-scrolling{
  scroll-snap-type:none;
}

.kdgi-ui.kdgi-carousel .kdgi-rail::-webkit-scrollbar{
  display:none;
}

.kdgi-ui.kdgi-carousel .kdgi-rail.kdgi-dragging{
  scroll-snap-type:none;
  cursor:grabbing;
  user-select:none;
}

.kdgi-ui.kdgi-carousel .kdgi-slide{
  flex:0 0 var(--kdgi-slide-width);
  width:var(--kdgi-slide-width);
  min-width:0;
  scroll-snap-align:center;
  scroll-snap-stop:always;
  overflow-wrap:anywhere;
}

.kdgi-ui.kdgi-carousel .kdgi-flip-card{
  width:100%;
  max-width:none;
  border-radius:var(--kdgi-card-radius);
}

.kdgi-ui.kdgi-carousel .kdgi-flip-card__back{
  background:var(--kdgi-back-bg);
}

.kdgi-ui.kdgi-carousel .kdgi-flip-card__front{
  color:var(--kdgi-front-text);
}

.kdgi-ui.kdgi-carousel .kdgi-flip-card__action{
  background:var(--kdgi-button-bg);
  color:var(--kdgi-button-color);
}

/* KDGI reusable carousel control — geometria aprovada */
.kdgi-ui.kdgi-carousel .kdgi-dock-slot{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  z-index:20;
  margin-top:28px;
  pointer-events:none;
  height:44px;
}

.kdgi-ui.kdgi-carousel .kdgi-dock-positioner{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  height:44px;
  pointer-events:none;
  z-index:20;
}

.kdgi-ui.kdgi-carousel .kdgi-dock-positioner.kdgi-floating{
  position:fixed;
  left:0;
  right:0;
  bottom:24px;
  z-index:9999;
}

.kdgi-ui.kdgi-carousel .kdgi-dock{
  --kdgi-open-width:226px;
  --kdgi-pill-width:168px;
  position:relative;
  width:44px;
  height:44px;
  opacity:0;
  pointer-events:none;
  will-change:transform,opacity,width;
}

.kdgi-ui.kdgi-carousel .kdgi-dock.kdgi-visible{
  opacity:1;
}

.kdgi-ui.kdgi-carousel .kdgi-dock-pill{
  position:absolute;
  left:0;
  top:0;
  height:44px;
  width:44px;
  border-radius:30px;
  background:var(--kdgi-surface);
  box-shadow:var(--kdgi-inset);
  overflow:hidden;
  transition:width .75s var(--kdgi-ease);
}

.kdgi-ui.kdgi-carousel .kdgi-visible .kdgi-dock-pill{
  width:var(--kdgi-pill-width);
}

.kdgi-ui.kdgi-carousel .kdgi-dock-dots{
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:0 8px;
  opacity:0;
  transition:opacity .25s ease .12s;
}

.kdgi-ui.kdgi-carousel .kdgi-visible .kdgi-dock-dots{
  opacity:1;
}

.kdgi-ui.kdgi-carousel .kdgi-dot{
  -webkit-appearance:none;
  appearance:none;
  flex:0 0 22px;
  height:44px;
  padding:0;
  margin:0;
  border:0;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  color:inherit;
  cursor:pointer;
  outline:none!important;
  box-shadow:none!important;
  filter:none!important;
  -webkit-tap-highlight-color:transparent!important;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
  touch-action:manipulation;
  transition:flex-basis .6s var(--kdgi-ease);
}

.kdgi-ui.kdgi-carousel .kdgi-dot[aria-current="step"]{
  flex-basis:58px;
}

.kdgi-ui.kdgi-carousel .kdgi-dot:hover,
.kdgi-ui.kdgi-carousel .kdgi-dot:focus,
.kdgi-ui.kdgi-carousel .kdgi-dot:focus-visible,
.kdgi-ui.kdgi-carousel .kdgi-dot:active{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  outline:none!important;
  border:0!important;
  box-shadow:none!important;
  filter:none!important;
}

.kdgi-ui.kdgi-carousel .kdgi-dot::before,
.kdgi-ui.kdgi-carousel .kdgi-dot::after{
  content:none!important;
  display:none!important;
}

.kdgi-ui.kdgi-carousel .kdgi-dot-track{
  position:relative;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#666;
  overflow:hidden;
  transition:width .6s var(--kdgi-ease),background .2s ease;
}

.kdgi-ui.kdgi-carousel .kdgi-dot[aria-current="step"] .kdgi-dot-track{
  width:42px;
  background:#515154;
}

.kdgi-ui.kdgi-carousel .kdgi-dot.kdgi-done .kdgi-dot-track{
  background:#bfc2c7;
}

.kdgi-ui.kdgi-carousel .kdgi-dot-fill{
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:#f5f5f7;
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}

.kdgi-ui.kdgi-carousel .kdgi-playback{
  -webkit-appearance:none;
  appearance:none;
  position:absolute;
  right:0;
  top:0;
  width:44px;
  height:44px;
  min-width:44px;
  max-width:44px;
  padding:0!important;
  margin:0;
  border:0!important;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--kdgi-surface)!important;
  color:var(--kdgi-text);
  box-shadow:var(--kdgi-inset)!important;
  opacity:0;
  cursor:pointer;
  outline:none!important;
  -webkit-tap-highlight-color:transparent!important;
  transition:opacity .25s ease .14s;
}

.kdgi-ui.kdgi-carousel .kdgi-visible .kdgi-playback{
  opacity:1;
}

.kdgi-ui.kdgi-carousel .kdgi-playback:hover,
.kdgi-ui.kdgi-carousel .kdgi-playback:focus,
.kdgi-ui.kdgi-carousel .kdgi-playback:focus-visible,
.kdgi-ui.kdgi-carousel .kdgi-playback:active{
  background:var(--kdgi-surface)!important;
  box-shadow:var(--kdgi-inset)!important;
  outline:0!important;
}

.kdgi-ui.kdgi-carousel .kdgi-playback svg{
  width:18px;
  height:18px;
  display:block;
}

.kdgi-ui.kdgi-carousel .kdgi-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

/* Entrada física KDGI aprovada: impulso, suspensão, queda, impacto e expansão. */
.kdgi-ui.kdgi-carousel .kdgi-dock.kdgi-entering{
  animation:kdgi-flight 1.35s both,kdgi-expand 1.35s both;
  transform-origin:center bottom;
  pointer-events:none;
}

.kdgi-ui.kdgi-carousel .kdgi-entering .kdgi-dock-pill{
  animation:kdgi-pill-expand 1.35s both;
}

.kdgi-ui.kdgi-carousel .kdgi-entering .kdgi-dock-dots{
  animation:kdgi-reveal-dots 1.35s both;
}

.kdgi-ui.kdgi-carousel .kdgi-entering .kdgi-playback{
  animation:kdgi-release 1.35s both;
}

.kdgi-ui.kdgi-carousel .kdgi-dock.kdgi-fading{
  animation:kdgi-fade-out 280ms ease forwards;
  pointer-events:none;
}

@keyframes kdgi-flight{
  0%{
    opacity:0;
    transform:translateY(72px) scale(.82,1.16);
    animation-timing-function:cubic-bezier(.12,.65,.25,1);
  }
  12%{opacity:1}
  30%{
    transform:translateY(-52px) scale(1);
    animation-timing-function:linear;
  }
  40%{
    transform:translateY(-52px) scale(1);
    animation-timing-function:cubic-bezier(.55,0,1,.55);
  }
  60%{
    transform:translateY(0) scale(1);
    animation-timing-function:ease-out;
  }
  66%{
    transform:translateY(0) scale(1.12,.82);
    animation-timing-function:cubic-bezier(.22,1,.36,1);
  }
  80%{
    transform:translateY(-3px) scale(.99,1.025);
    animation-timing-function:ease-out;
  }
  100%{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

@keyframes kdgi-expand{
  0%,58%{
    width:44px;
    animation-timing-function:cubic-bezier(.22,1,.36,1);
  }
  100%{width:var(--kdgi-open-width)}
}

@keyframes kdgi-pill-expand{
  0%,58%{
    width:44px;
    animation-timing-function:cubic-bezier(.22,1,.36,1);
  }
  100%{width:var(--kdgi-pill-width)}
}

@keyframes kdgi-reveal-dots{
  0%,62%{opacity:0}
  100%{opacity:1}
}

@keyframes kdgi-release{
  0%,66%{
    opacity:0;
    transform:scale(.8);
  }
  82%{
    opacity:1;
    transform:scale(1.045);
  }
  100%{
    opacity:1;
    transform:scale(1);
  }
}

@keyframes kdgi-fade-out{
  from{opacity:1}
  to{opacity:0}
}

.kdgi-ui.kdgi-carousel[data-kdgi-control="false"] .kdgi-dock-slot{
  display:none!important;
}

@media(max-width:1024px){
  .kdgi-ui.kdgi-carousel .kdgi-dock-positioner.kdgi-floating{
    bottom:20px;
  }
}

@media(max-width:767px){
  .kdgi-ui.kdgi-carousel .kdgi-dock-positioner.kdgi-floating{
    bottom:16px;
  }

  .kdgi-ui.kdgi-carousel .kdgi-flip-card__front-content,
  .kdgi-ui.kdgi-carousel .kdgi-flip-card__back-content{
    padding:24px;
  }
}

.kdgi-ui.kdgi-carousel[data-kdgi-motion="reduced"] *{
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important;
}

@media(prefers-reduced-motion:reduce){
  .kdgi-ui.kdgi-carousel *{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}
