/* =============================================================================
   Hero Block — hero-block.css
   ============================================================================= */

/* ── Custom properties ───────────────────────────────────────────────────────── */
.hero-block {
  --hero-height: 100svh;
  --hero-overlay-color: rgba(0, 0, 0, 0.28);
  --hero-text-color: #ffffff;
  --hero-title-font: "Barlow Condensed", "Arial Narrow", sans-serif;
  --hero-body-font: "Barlow", "Arial", sans-serif;
  --hero-padding-x: 150px;
  --hero-padding-bottom: clamp(3rem, 7vh, 6rem);
  --hero-transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);

  position: relative;
  width: 100%;
  height: var(--hero-height);
  min-height: 520px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hero-text-color);
  background: #fff;
}

/* ── Media layer ─────────────────────────────────────────────────────────────── */
.hero-block__media {
  position: absolute;
  inset: -28% 0; /* Extra vertical room for parallax travel */
  z-index: 0;
  will-change: transform; /* Only here — not on children */
}

.hero-block__image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.hero-block__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: transparent;
}

/* Hide native video controls in webkit */
.hero-block__video::-webkit-media-controls,
.hero-block__video::-webkit-media-controls-enclosure {
  display: none !important;
}

/* ── Dark overlay ────────────────────────────────────────────────────────────── */
.hero-block__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));
  z-index: 1;
}

/* ── Content layer ───────────────────────────────────────────────────────────── */
.hero-block__content {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: flex;
  pointer-events: none;
}

.hero-block__content * {
  pointer-events: auto;
}

/* ── CENTER placement ────────────────────────────────────────────────────────── */
.hero-block__content--center {
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero-block__center-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  padding: 0 var(--hero-padding-x);
  max-width: 900px;
  width: 100%;
  animation: heroFadeUp 0.85s var(--hero-transition) both;
}

.hero-block__content--center .hero-block__title {
  font-family: "ITCAvantGarde", sans-serif;
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin: 0;
}

.hero-block__content--center .hero-block__description {
  font-family: "ITCAvantGarde", sans-serif;
  font-weight: 400;
  font-size: var(--hng-body-size, clamp(1rem, 1.5vw, 1.25rem));
  line-height: 1.65;
  max-width: 520px;
  margin: 0;
}

/* ── BOTTOM-CENTER placement ─────────────────────────────────────────────────── */
.hero-block__content--bottom_center {
  align-items: flex-end;
  justify-content: center;
  padding: 0 var(--hero-padding-x) var(--hero-padding-bottom);
}

.hero-block__bottom-row {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: clamp(1.5rem, 4vw, 5rem);
}

/* Large title — bottom-left */
.hero-block__bottom-left {
  flex: 1 1 0;
  min-width: 0;
  animation: heroFadeUp 0.85s var(--hero-transition) 0.05s both;
  text-align: right;
}

.hero-block__title--large {
  font-family: "ITCAvantGarde", sans-serif;
  /* Single declaration — clamp handles the full range */
  font-size: clamp(3.5rem, 7vw, 8rem);
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  margin: 0;
}

/* Body — bottom-right */
.hero-block__bottom-right {
  margin: auto;
  flex: 0 0 auto;
  width: clamp(280px, 35vw, 460px);
  animation: heroFadeUp 0.85s var(--hero-transition) 0.18s both;
}

.hero-block__content--bottom_center .hero-block__description {
  font-family: "ITCAvantGarde", sans-serif;
  font-weight: 400;
  font-size: var(--hng-body-size, clamp(1rem, 1.5vw, 1.25rem));
  line-height: 1.7;
  margin: 0;
}

/* ── Title image (logo lockup) ───────────────────────────────────────────────── */
.hero-block__title-img {
  max-width: 100%;
  max-height: 260px;
  width: auto;
  display: block;
  /* Opacity-only animation — avoids compositing blur on every frame */
  opacity: 0;
  animation: heroLogoFade 6s ease-in-out forwards;
}

/* ── Entrance animation ──────────────────────────────────────────────────────── */
@keyframes heroFadeUp {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Logo fade — opacity only, no blur or scale (cheaper composite) */
@keyframes heroLogoFade {
  0%   { opacity: 0; }
  12%  { opacity: 1; }
  70%  { opacity: 1; }
  100% { opacity: 0; }
}

/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .hero-block {
    --hero-height: 85svh;
    --hero-padding-x: 1.5rem;
    --hero-padding-bottom: 2.5rem;
  }

  .hero-block__bottom-row {
    flex-direction: column;
    gap: 1rem;
  }

  .hero-block__title--large {
    font-size: clamp(3rem, 14vw, 5rem);
  }

  .hero-block__bottom-right {
    flex: none;
    width: 100%;
  }

  .hero-block__video {
    object-fit: cover;
  }
}

@media (max-width: 480px) {
  .hero-block__title--large {
    font-size: 45px;
    text-align: left;
  }
}

/* ── Reduced motion ──────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .hero-block__center-wrap,
  .hero-block__bottom-left,
  .hero-block__bottom-right,
  .hero-block__title-img {
    animation: none;
    opacity: 1;
  }
}

/* ── Mobile-compact hero ─────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .hero-block--mobile-compact {
    height: 50vh;
    min-height: unset;
  }

  .hero-block--mobile-compact[data-mobile-compact-text] {
    height: 80vh;
  }

  .hero-block--mobile-compact .hero-block__media {
    inset: -1% 0;
  }
}

/* iPad portrait — reduce parallax inset to avoid gap at top */
@media (min-width: 768px) and (max-width: 820px) and (min-height: 1000px) {
  .hero-block__media {
    inset: -18% 0;
  }
}

@media (max-width: 600px) {
  .hero-block__media {
    inset: -3% 0;
  }
}