/* Hero block — gradient overlay over a CSS background image,
 * heading + subtitle + CTA on the left, decorative emblem at right edge.
 */

.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--r-xl);
  min-height: 340px;
  display: flex;
  align-items: stretch;
  color: #fff;
  box-shadow: var(--c-shadow-lg);
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-700) 100%);
}

.hero__media {
  position: absolute;
  inset: 0;
  background-image: url("../img/hero-bg.svg");
  background-size: cover;
  background-position: center;
  z-index: -2;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 31, 74, 0.85) 0%, rgba(10, 31, 74, 0.55) 50%, rgba(10, 31, 74, 0.05) 100%);
  z-index: -1;
}

.hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--sp-20);
  padding: var(--sp-48) var(--sp-48);
  max-width: 60%;
}

.hero__title {
  font-size: clamp(var(--fs-32), 3.4vw, var(--fs-48));
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.1;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.hero__subtitle {
  font-size: var(--fs-18);
  line-height: 1.55;
  color: var(--c-text-on-dark);
  max-width: 52ch;
  margin: 0;
}

.hero__cta {
  align-self: flex-start;
  margin-top: var(--sp-12);
}

.hero__emblem {
  position: absolute;
  right: -40px;
  top: 50%;
  transform: translateY(-50%);
  width: 220px;
  height: 220px;
  z-index: var(--z-hero-emblem);
  pointer-events: none;
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.35));
}

.hero__emblem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

@media (max-width: 1023px) {
  .hero {
    min-height: 300px;
    border-radius: var(--r-lg);
  }

  .hero__content {
    max-width: 100%;
    padding: var(--sp-32) var(--sp-24);
  }

  .hero__emblem {
    width: 160px;
    height: 160px;
    right: -30px;
    opacity: 0.45;
  }
}

@media (max-width: 767px) {
  .hero {
    min-height: 280px;
    border-radius: var(--r-md);
  }

  .hero__content {
    padding: var(--sp-24) var(--sp-20);
    gap: var(--sp-12);
  }

  .hero__subtitle {
    display: none;
  }
}

@media (max-width: 480px) {
  .hero {
    min-height: 240px;
    border-radius: var(--r-md);
  }

  .hero__content {
    padding: var(--sp-20) var(--sp-16);
  }

  .hero__title {
    font-size: var(--fs-20);
  }

  .hero__emblem {
    width: 100px;
    height: 100px;
    opacity: 0.25;
  }

  .hero__cta {
    font-size: var(--fs-14);
    padding: var(--sp-12) var(--sp-20);
    white-space: normal;
    text-align: center;
  }
}