/**
 * O6 Toolkit — Hero Slider Styles
 * Integrated with OxyMade Framework Variables
 *
 * Uses [data-*] attribute selectors to beat O6 specificity.
 * Uses OxyMade vars: --ss-*, --s*, --radius-*, --primary, etc.
 * Uses O6TK vars: --o6tk-ease-*, --o6tk-dur-*, --o6tk-shadow-*
 *
 * Height/alignment controlled via inline CSS custom properties:
 *   --slider-height, --slider-height-mobile, --slider-align
 *
 * @version 2.0.0
 */

/* ══════════════════════════════════════════════════
   SLIDER CONTAINER
   ══════════════════════════════════════════════════ */

[data-hero-slider] {
  position: relative !important;
  width: 100% !important;
  height: var(--slider-height, 100vh) !important;
  overflow: hidden !important;
  background: var(--o6tk-dark, #101010) !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  display: block !important;
}

/* ══════════════════════════════════════════════════
   SLIDES
   ══════════════════════════════════════════════════ */

[data-hero-slider] > [data-slide] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: var(--slider-align, center) !important;
  visibility: hidden;
  opacity: 0;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Fallback: show first slide + its content if JS is delayed or fails */
[data-hero-slider] > [data-slide]:first-child {
  visibility: visible;
  opacity: 1;
}

[data-hero-slider] > [data-slide]:first-child [data-slide-content] {
  visibility: visible;
  opacity: 1;
}

/* Hide non-active slides and their content until JS takes over */
[data-hero-slider] > [data-slide]:not(:first-child) {
  visibility: hidden;
  opacity: 0;
}

[data-hero-slider] > [data-slide]:not(:first-child) [data-slide-content] {
  visibility: hidden;
  opacity: 0;
}

/* ══════════════════════════════════════════════════
   BACKGROUND
   ══════════════════════════════════════════════════ */

.c-hero-slider__bg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: var(--slider-align, center) !important;
}

.c-hero-slider__bg img,
.c-hero-slider__bg video,
[data-slide] .c-hero-slider__bg img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  will-change: transform;
  max-width: none !important;
  display: block !important;
  transform: scale(1.08);
}

/* Video backgrounds: no initial scale (video provides its own motion) */
[data-slide-bg-type="video"] .c-hero-slider__bg video {
  transform: none !important;
}

/* Desktop: hide poster when video is active */
@media (min-width: 769px) {
  [data-slide-bg-type="video"] .c-hero-slider__bg-poster {
    display: none !important;
  }
}

/* ══════════════════════════════════════════════════
   OVERLAY
   ══════════════════════════════════════════════════ */

.c-hero-slider__overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.7) 0%,
    rgba(0, 0, 0, 0.4) 50%,
    rgba(0, 0, 0, 0.1) 100%
  ) !important;
  pointer-events: none !important;
}

/* ══════════════════════════════════════════════════
   CONTENT
   ══════════════════════════════════════════════════ */

.c-hero-slider__content,
[data-slide] .c-hero-slider__content {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: var(--o6tk-section-width, 1440px) !important;
  margin: 0 auto !important;
  padding: 0 var(--o6tk-section-padding, 60px) !important;
  color: var(--o6tk-light, #fff) !important;
  text-align: left !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

/* Top alignment: push content down from header */
[data-hero-slider][style*="--slider-align:flex-start"] .c-hero-slider__content {
  padding-top: clamp(100px, 15vh, 180px) !important;
}

/* Bottom alignment: push content up from nav indicators */
[data-hero-slider][style*="--slider-align:flex-end"] .c-hero-slider__content {
  padding-bottom: clamp(80px, 12vh, 140px) !important;
}

/* ── Centered variant ── */
[data-slide].c-hero-slider__slide--center .c-hero-slider__content {
  align-items: center !important;
  text-align: center !important;
}

/* ══════════════════════════════════════════════════
   TYPOGRAPHY
   ══════════════════════════════════════════════════ */

/* Eyebrow / Subhead */
.c-hero-slider__content .t-subhead,
[data-slide] .c-hero-slider__content .t-subhead {
  font-size: clamp(0.75rem, 1.5vw, 1rem) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  opacity: 0.85;
  margin-bottom: var(--o6tk-space-4, 16px) !important;
  color: var(--o6tk-light, #fff) !important;
}

/* Display heading */
.c-hero-slider__content .t-display,
[data-slide] .c-hero-slider__content .t-display {
  font-size: var(--o6tk-hero, clamp(3rem, 7vw, 5.5rem)) !important;
  line-height: 1.05 !important;
  font-weight: 700 !important;
  margin-bottom: var(--o6tk-space-6, 24px) !important;
  color: var(--o6tk-light, #fff) !important;
  letter-spacing: -0.02em !important;
}

/* Body / Description */
.c-hero-slider__description,
[data-slide] .c-hero-slider__description {
  font-size: clamp(1rem, 1.8vw, 1.3rem) !important;
  line-height: 1.6 !important;
  opacity: 0.9;
  max-width: 600px;
  margin-bottom: var(--o6tk-space-8, 32px) !important;
  color: var(--o6tk-light, #fff) !important;
}

/* Centered variant: center description */
.c-hero-slider__slide--center .c-hero-slider__description {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ══════════════════════════════════════════════════
   CTA BUTTONS
   ══════════════════════════════════════════════════ */

.c-hero-slider__ctas,
[data-slide] .c-hero-slider__ctas {
  display: flex !important;
  flex-direction: row !important;
  gap: var(--o6tk-space-4, 16px) !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

/* Centered variant: center buttons */
.c-hero-slider__slide--center .c-hero-slider__ctas {
  justify-content: center !important;
}

/* Hero slider buttons use unified [data-btn] system from o6tk-base.css.
   Only override line-height for vertical centering within slides. */
.c-hero-slider__ctas [data-btn] {
  line-height: 1 !important;
}

/* ══════════════════════════════════════════════════
   NAVIGATION — ARROWS
   ══════════════════════════════════════════════════ */

[data-slider-prev],
[data-slider-next] {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 10 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 48px !important;
  height: 48px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: var(--o6tk-radius-xl, 9999px) !important;
  color: var(--o6tk-light, #fff) !important;
  cursor: pointer !important;
  transition:
    background var(--o6tk-dur-base, 250ms) ease,
    border-color var(--o6tk-dur-base, 250ms) ease !important;
  padding: 0 !important;
  line-height: 1 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex-direction: row !important;
}

[data-slider-prev]:hover,
[data-slider-next]:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

[data-slider-prev] {
  left: clamp(16px, 3vw, 32px) !important;
}
[data-slider-next] {
  right: clamp(16px, 3vw, 32px) !important;
}

[data-slider-prev] svg,
[data-slider-next] svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ══════════════════════════════════════════════════
   NAVIGATION — DOTS (nav="dots")
   ══════════════════════════════════════════════════ */

[data-slider-dots] {
  position: absolute !important;
  bottom: clamp(24px, 4vw, 40px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 10 !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 10px !important;
  padding: 0 !important;
}

[data-slider-dot] {
  width: 12px !important;
  height: 12px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  border-radius: var(--o6tk-radius-xl, 9999px) !important;
  border: 2px solid rgba(255, 255, 255, 0.5) !important;
  background: transparent !important;
  cursor: pointer !important;
  transition: all var(--o6tk-dur-base, 250ms) ease !important;
  padding: 0 !important;
}

[data-slider-dot].is-active {
  background: var(--o6tk-light, #fff) !important;
  border-color: var(--o6tk-light, #fff) !important;
  transform: scale(1.15) !important;
}

[data-slider-dot]:hover:not(.is-active) {
  border-color: rgba(255, 255, 255, 0.8) !important;
}

/* ══════════════════════════════════════════════════
   NAVIGATION — PROGRESS INDICATORS (nav="progress")
   ══════════════════════════════════════════════════ */

[data-slider-nav-progress] {
  position: absolute !important;
  bottom: clamp(24px, 4vw, 40px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 10 !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 8px !important;
  padding: 0 !important;
}

[data-slider-progress-bar] {
  width: clamp(40px, 8vw, 72px) !important;
  height: 3px !important;
  background: rgba(255, 255, 255, 0.2) !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  cursor: pointer !important;
  position: relative !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  transition: background var(--o6tk-dur-base, 250ms) ease !important;
}

[data-slider-progress-bar]:hover {
  background: rgba(255, 255, 255, 0.35) !important;
}

.c-hero-slider__indicator-fill {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: var(--o6tk-light, #fff) !important;
  transform-origin: left !important;
  transform: scaleX(0);
  border-radius: 2px !important;
}

/* ══════════════════════════════════════════════════
   NAVIGATION — FRACTION COUNTER (nav="fraction")
   ══════════════════════════════════════════════════ */

[data-slider-fraction] {
  position: absolute !important;
  bottom: clamp(24px, 4vw, 40px) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 10 !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 0.3em !important;
  font-variant-numeric: tabular-nums !important;
  color: var(--o6tk-light, #fff) !important;
  padding: 0 !important;
}

[data-slider-fraction-current] {
  font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.c-hero-slider__fraction-sep {
  font-size: clamp(0.9rem, 1.2vw, 1.1rem) !important;
  opacity: 0.5;
  font-weight: 400 !important;
}

[data-slider-fraction-total] {
  font-size: clamp(0.9rem, 1.2vw, 1.1rem) !important;
  font-weight: 400 !important;
  opacity: 0.6;
}

/* ══════════════════════════════════════════════════
   LEGACY PROGRESS BAR (bottom full-width bar)
   Kept for backward compatibility with old markup.
   ══════════════════════════════════════════════════ */

.c-hero-slider__progress {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 3px !important;
  background: rgba(255, 255, 255, 0.15) !important;
  z-index: 10 !important;
  padding: 0 !important;
}

.c-hero-slider__progress-bar,
[data-slider-progress] {
  height: 100% !important;
  background: var(--o6tk-light, #fff) !important;
  transform-origin: left !important;
  transform: scaleX(0);
}

/* ══════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════ */

@media (max-width: 768px) {
  [data-hero-slider] {
    height: var(--slider-height-mobile, var(--slider-height, 100svh)) !important;
  }

  .c-hero-slider__content,
  [data-slide] .c-hero-slider__content {
    max-width: 100% !important;
    padding: 0 var(--o6tk-space-6, 24px) !important;
  }

  /* Adjust top/bottom padding for alignment on mobile */
  [data-hero-slider][style*="--slider-align:flex-start"] .c-hero-slider__content {
    padding-top: clamp(80px, 12vh, 120px) !important;
  }

  [data-hero-slider][style*="--slider-align:flex-end"] .c-hero-slider__content {
    padding-bottom: clamp(60px, 10vh, 100px) !important;
  }

  .c-hero-slider__content .t-display,
  [data-slide] .c-hero-slider__content .t-display {
    font-size: clamp(2.25rem, 8vw, 3.5rem) !important;
  }

  [data-slider-prev],
  [data-slider-next] {
    width: 40px !important;
    height: 40px !important;
    top: auto !important;
    bottom: 10% !important;
    transform: none !important;
  }

  [data-slider-prev] {
    left: 12px !important;
  }
  [data-slider-next] {
    right: 12px !important;
  }

  [data-slider-prev] svg,
  [data-slider-next] svg {
    width: 16px;
    height: 16px;
  }

  .c-hero-slider__ctas,
  [data-slide] .c-hero-slider__ctas {
    flex-direction: column !important;
    width: 100% !important;
  }

  .c-hero-slider__ctas [data-btn] {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* Progress bars: narrower on mobile */
  [data-slider-progress-bar] {
    width: clamp(28px, 10vw, 48px) !important;
  }

  /* Mobile: hide video, show poster image instead */
  [data-slide-bg-type="video"] .c-hero-slider__bg video {
    display: none !important;
  }
  [data-slide-bg-type="video"] .c-hero-slider__bg-poster {
    display: block !important;
  }
}

/* ══════════════════════════════════════════════════
   REDUCED MOTION
   ══════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  [data-hero-slider] > [data-slide] {
    visibility: hidden !important;
    opacity: 0 !important;
  }
  [data-hero-slider] > [data-slide]:first-child {
    visibility: visible !important;
    opacity: 1 !important;
  }

  .c-hero-slider__bg img,
  .c-hero-slider__bg video {
    will-change: auto !important;
  }

  /* Reduced motion: hide video, show poster */
  [data-slide-bg-type="video"] .c-hero-slider__bg video {
    display: none !important;
  }
  [data-slide-bg-type="video"] .c-hero-slider__bg-poster {
    display: block !important;
  }
}
