/* ==========================================================================
   Homepage Hero — full-width sharp showcase (scoped .tlkv-hero)
   Slider logic: js/hero-slider.js (unchanged)
   ========================================================================== */

.tlkv-hero {
  --tlkv-hero-gold: var(--tlkv-gold, #c9a14a);
  --tlkv-hero-border: #ebe6dc;
  --tlkv-hero-native-w: 2048px;

  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin: 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
  background: #0a0a0a;
  border-bottom: 1px solid var(--tlkv-hero-border);
}

.tlkv-hero__carousel {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
}

.tlkv-hero__showcase {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Stage height follows viewport width + native 2.67:1 ratio */
.tlkv-hero__carousel-stage:not([data-drag-disabled]) {
  cursor: grab;
  user-select: none;
}

.tlkv-hero__carousel-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 8 / 3;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #0a0a0a;
}

.tlkv-hero__slide {
  position: absolute;
  inset: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  opacity: 0;
  transition: opacity 520ms ease-in-out;
  pointer-events: none;
}

.tlkv-hero__slide.is-active {
  z-index: 2;
  opacity: 1;
  pointer-events: auto;
}

.tlkv-hero__slide.is-prev {
  opacity: 0;
}

/* Edge fill only — never stacked on top of sharp foreground */
.tlkv-hero__slide-fill {
  position: absolute;
  inset: 0;
  background-color: #0a0a0a;
  background-image: var(--tlkv-hero-fill, none);
  background-size: cover;
  background-position: center;
  filter: blur(40px);
  transform: scale(1.2);
  opacity: 0.35;
  pointer-events: none;
}

.tlkv-hero__slide-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      to right,
      rgba(0, 0, 0, 0.06) 0%,
      transparent 20%,
      transparent 80%,
      rgba(0, 0, 0, 0.06) 100%
    );
}

/* Primary image: 1:1 pixels when possible, never upscale past native width */
.tlkv-hero__slide-img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: auto;
  max-width: min(100%, var(--tlkv-hero-native-w));
  max-height: 100%;
  margin: 0 auto;
  object-fit: contain;
  object-position: center center;
  image-rendering: auto;
  transform: translateZ(0);
}

@media (prefers-reduced-motion: reduce) {
  .tlkv-hero__slide {
    transition: none;
  }
}
