/* ===== Apple TV–style Hero Carousel (no deps) ===== */
.atv-carousel{
  --hero-height: min(720px, 760px);
  --side-pad: clamp(16px, 4vw, 48px);
  --bottom-pad: clamp(16px, 4vw, 48px);
  --logo-max: clamp(140px, 22vw, 320px);
  --text-max: min(60ch, 70vw);
  --dot-size: 8px;
  --dot-gap: 8px;
  --dot-opacity: .45;
  --dot-active: 1;
  --nav-bg: rgba(20,20,20,.55);
  --nav-bg-hover: rgba(20,20,20,.8);

  position: relative;
  overflow: hidden;
  background: #000;
  color: rgba(255,255,255,0.8);
  font-weight: 400;
}

.atv-track{
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  outline: none;
}
@media (prefers-reduced-motion: reduce){
  .atv-track{ scroll-behavior: auto; }
}

.atv-slide{
  position: relative;
  flex: 0 0 100%;
  height: var(--hero-height);
  scroll-snap-align: center;
  scroll-snap-stop: always;
  background: #000;
}

.atv-slide > img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Bottom-left overlay (logo + logline) */
.atv-overlay{
  position: absolute;
  inset: auto 0 0 0;
  padding: var(--bottom-pad) var(--side-pad);
  display: grid;
  align-content: end;
  gap: 12px;
  max-width: 100%;
  /* Readability gradient like tvOS */
  background: linear-gradient(to top, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0.08) 35%, rgba(0, 0, 0, 0) 65%);
}
.atv-logo{
  width: auto;
  max-width: var(--logo-max);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.45));
}
.atv-logline{
  margin: 0;
  max-width: var(--text-max);
  font-size: clamp(13px, 2.1vw, 15px);
  line-height: 1.5;
  text-wrap: balance;
  opacity: .95;
}

/* Dots */
.atv-dots{
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  display: flex;
  gap: var(--dot-gap);
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.25);
  backdrop-filter: blur(6px);
  z-index: 2;
}
.atv-dots > button{
  width: var(--dot-size);
  height: var(--dot-size);
  border-radius: 50%;
  border: 0;
  background: #fff;
  opacity: var(--dot-opacity);
  cursor: pointer;
  padding: 4px;
}
.atv-dots > button[aria-selected="true"]{ opacity: var(--dot-active); }

/* Arrows */
.atv-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  border: 0;
  border-radius: 999px;
  background: var(--nav-bg);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .2s ease;
  
}
.atv-nav:hover{ background: var(--nav-bg-hover); }
.atv-prev{ left: 10px; }
.atv-next{ right: 10px; }



.home-hero-overlay {
  position: relative;
  z-index: 2;
  pointer-events: none;
  bottom: 170px;
  left: 8%;
  height: 0;
  /*  background: linear-gradient(to top, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0.08) 35%, rgba(0, 0, 0, 0) 65%);*/
  text-align: left;
  display: flex;
  flex-direction: column;
}

.atv-slide::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  width: 100%;
  height: 50%; /* bottom fifth */
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, .8), rgba(0, 0, 0, 0));
  z-index: 1;
}


/* Mobile tweaks: slightly taller hero, tighter padding */
@media (max-width: 700px){
  .atv-carousel{ --hero-height: min(72vh, 640px); }
  .atv-dots{ bottom: 8px; }
  .atv-prev, .atv-next{ display: none; } /* avoids thumb overlap */
  .home-hero-overlay {
    bottom: 200px;
    text-align: center;
    left: 0;
    align-items: center;
  }
}
