/* Hero Section */

.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background-color: var(--bg, transparent);
}

@keyframes heroFadeIn {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero--sub {
  height: 77vh;
  min-height: 400px;
}

/* Slideshow */
.hero__slides {
  position: absolute;
  inset: 0;
  animation: heroFadeIn 2s ease both;
}

.hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 2.5s ease;
}

.hero__slide--active {
  opacity: 1;
  z-index: 1;
}

.hero__slide picture {
  display: block;
  width: 100%;
  height: 100%;
}

.hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero--sub .hero__slide img {
  object-position: top !important;
}

/* Placeholder for missing images */
.hero__slide--placeholder {
  background-size: cover;
  background-position: center;
}

/* Dark overlay */
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(26, 18, 16, 0.3) 0%,
    rgba(26, 18, 16, 0.1) 40%,
    rgba(26, 18, 16, 0.4) 100%
  );
  pointer-events: none;
}

/* Hero info box (right side) */
.hero__info {
  position: absolute;
  top: calc(var(--header-height) + var(--space-xl));
  right: var(--space-xl);
  z-index: 2;
  background-color: rgba(30, 30, 68, 0.85);
  color: #fff;
  padding: 2em 2.5em;
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  letter-spacing: 0.08em;
  max-width: 320px;
}

.hero__info p {
  margin-bottom: 0.8em;
}

.hero__info-detail {
  margin-top: 1.2em;
  padding-top: 1em;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
}

.hero__info-detail p {
  margin-bottom: 0.4em;
}

/* Hero scroll indicator */
.hero__scroll {
  position: absolute;
  bottom: var(--space-lg);
  right: var(--space-xl);
  z-index: 2;
  color: var(--color-text-dark);
  font-size: var(--text-xs);
  letter-spacing: 0.15em;
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.hero__scroll::after {
  content: '';
  display: block;
  width: 1px;
  height: 40px;
  background-color: currentColor;
  animation: scrollLine 1.5s ease-in-out infinite;
}

@keyframes scrollLine {
  0% { transform: scaleY(0); transform-origin: top; }
  50% { transform: scaleY(1); transform-origin: top; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

/* Bottom corner link */
.hero__corner-link {
  position: absolute;
  bottom: var(--space-lg);
  right: var(--space-xl);
  z-index: 2;
  color: var(--color-text-dark);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  background-color: rgba(26, 18, 16, 0.5);
  padding: 0.5em 1em;
}
