/* ── UNIFIED HERO — shared across all pages ── */

/* ── 1. Base section ── */
.hero {
  position: relative;
  width: 100%;
  min-height: auto;
  height: auto;
  background-color: var(--bg-deep);
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
}

/* Page-specific hero sections share these base properties */
.index-hero,
.index2-hero,
.about-hero,
.about-battalion-hero,
.vacancies-hero,
.bpla-hero,
.reb-hero,
.zakrip-hero,
.join-success-hero,
.success-hero,
.donate-hero,
.zsu-transformation-hero,
.join-zsu-hero,
.zapyt-hero,
.join-zsu-contract-hero,
.news-hero,
.legal-hero,
.lp-hero,
.hero--half {
  position: relative;
  min-height: auto;
  height: auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
  background-color: transparent;
  z-index: 2;
}

/* ── 2. Background layers ── */

/* hero__gradient — upper teal gradient image, present on all pages */
.hero__gradient,
.index-hero__bg-upper,
.index2-hero__bg-upper,
.about-hero__bg-upper,
.bpla-hero__bg-upper,
.reb-hero__bg-upper,
.zakrip-hero__bg-upper,
.join-success-hero__bg-upper,
.success-hero__bg-upper,
.vacancies-hero__bg-upper,
.donate-hero__bg-upper,
.zsu-transformation-hero__bg-upper,
.join-zsu-hero__bg-upper,
.zapyt-hero__bg-upper,
.join-zsu-contract-hero__bg-upper {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: auto;
  z-index: 1;
  pointer-events: none;
}

/* hero__bg-text — giant "160 ОМБр" watermark.
   Centered with left:50% + translateX(-50%) on a relative-positioned
   shrink-wrapped box. The previous margin:0 auto left the long
   nowrap text anchored to the box's left, so it appeared shifted
   to the right. The transform trick works regardless of width. */
.hero__bg-text {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: none;
  font-family: "u3", sans-serif;
  font-weight: 700;
  font-size: min(22vw, 18rem);
  line-height: 0.85;
  color: #506673;
  opacity: 0.2;
  white-space: nowrap;
  text-align: center;
  z-index: 0;
  pointer-events: none;
}

/* hero__pattern — subtle background texture image, 10% opacity */
.hero__pattern,
.index-hero__bg-pattern,
.index2-hero__bg-pattern,
.about-hero__bg-pattern,
.bpla-hero__bg-pattern,
.reb-hero__bg-pattern,
.zakrip-hero__bg-pattern,
.join-success-hero__bg-pattern,
.success-hero__bg-pattern,
.vacancies-hero__bg-pattern,
.donate-hero__bg-pattern,
.zsu-transformation-hero__bg-pattern,
.join-zsu-hero__bg-pattern,
.zapyt-hero__bg-pattern,
.join-zsu-contract-hero__bg-pattern {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0.1;
  z-index: 3;
  pointer-events: none;
}

/* ── 3. Right hero photo ── */

/* hero--half: image pinned to the right half, top-aligned */
.hero__image-wrap,
.hero--half .hero__photo,
.about-hero__image-wrap,
.index2-hero__image,
.index-hero__image,
.vacancies-hero__image-wrap,
.bpla-hero__image-wrap,
.reb-hero__image-wrap,
.zakrip-hero__image-wrap,
.join-success-hero__image,
.success-hero__image,
.donate-hero__image,
.zsu-transformation-hero__image,
.join-zsu-hero__image-wrap,
.zapyt-hero__image-wrap,
.join-zsu-contract-hero__image-wrap {
  position: absolute;
  top: 0;
  left: 40%;
  width: 60%;
  max-width: calc(100% - 40%);
  pointer-events: none;
}

.hero--half .hero__photo img {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100vh - 150px);
  object-fit: cover;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.5));
}

/* ── 4. Inner container ── */
.hero__inner,
.index-hero__inner,
.index2-hero__inner,
.about-hero__inner,
.vacancies-hero__inner,
.bpla-hero__inner,
.reb-hero__inner,
.zakrip-hero__inner,
.join-success-hero__inner,
.success-hero__inner,
.donate-hero__inner,
.zsu-transformation-hero__inner,
.join-zsu-hero__inner,
.zapyt-hero__inner,
.join-zsu-contract-hero__inner {
  position: relative;
  z-index: 4;
  width: 100%;
  max-width: 1200px;
  padding: 0 20px;
}

/* hero--half inner is a flex child of the section */
.hero--half .hero__inner {
  flex: 1;
  width: 100%;
}

/* hero--half: allow bg-text to extend below the section (desktop only) */
@media (min-width: 1280px) {
  .hero--half {
    overflow: visible;
  }
}

/* ── 5. Logo ── */
.hero__logo,
.hero__logo-wrap,
.index-hero__logo,
.index2-hero__logo,
.about-hero__logo,
.vacancies-hero__logo,
.bpla-hero__logo,
.reb-hero__logo,
.zakrip-hero__logo,
.join-success-hero__logo,
.success-hero__logo,
.donate-hero__logo,
.zsu-transformation-hero__logo,
.join-zsu-hero__logo,
.zapyt-hero__logo,
.join-zsu-contract-hero__logo {
  position: absolute;
  top: 120px;
  display: flex;
  align-items: center;
  gap: 24px;
  z-index: 5;
  filter: drop-shadow(0 3px 6px rgba(51, 26, 5, 0.59)) drop-shadow(0 12px 12px rgba(51, 26, 5, 0.51))
    drop-shadow(0 26px 16px rgba(51, 26, 5, 0.3)) drop-shadow(0 47px 19px rgba(51, 26, 5, 0.09))
    drop-shadow(0 73px 20px rgba(51, 26, 5, 0.01));
}

.hero__logo-union {
  position: static;
  width: auto;
  display: flex;
  flex-direction: column;
}

.hero__logo img {
  display: block;
  width: 411px;
  height: auto;
}

/* ── 6. Social icons ── */
.hero__social {
  position: absolute;
  top: 25%;
  right: 40px;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 16px;
  z-index: 5;
}

.hero--half .hero__social {
  top: calc(50% + 200px);
}

.hero__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 231, 186, 0.08);
  color: rgba(255, 231, 186, 0.6);
  transition: all 0.25s ease;
  border: 1px solid rgba(255, 231, 186, 0.1);
  text-decoration: none;
}

.hero__social-link:hover {
  background: rgba(255, 166, 0, 0.15);
  color: var(--gold, #ffa600);
  border-color: rgba(255, 166, 0, 0.3);
  transform: scale(1.1);
}

.hero__social-link svg {
  width: 20px;
  height: 20px;
  display: block;
}

/* ── 7. Content slot ── */

/* hero--half: normal flow, left-aligned, clears the absolute logo */
.hero--half .hero__content {
  max-width: 520px;
  position: relative;
  z-index: 4;
  padding-top: 340px;
  margin-left: 140px;
  text-align: left;
}

/* ── 8. Shared text elements ── */
.hero__label,
.about-hero__label,
.bpla-hero__label,
.reb-hero__label,
.zakrip-hero__label,
.vacancies-hero__subtitle,
.donate-hero__subtitle,
.zsu-transformation-hero__subtitle,
.join-zsu-hero__subtitle,
.zapyt-hero__subtitle,
.join-zsu-contract-hero__subtitle {
  font-family: "u3", sans-serif;
  font-weight: 500;
  color: rgba(255, 231, 186, 0.6);
  text-transform: uppercase;
  letter-spacing: 2px;
}

.hero__title,
.index2-hero__title,
.about-hero__title,
.vacancies-hero__title,
.bpla-hero__title,
.reb-hero__title,
.zakrip-hero__title,
.join-success-hero__title,
.success-hero__title,
.donate-hero__title,
.zsu-transformation-hero__title,
.join-zsu-hero__title,
.zapyt-hero__title,
.join-zsu-contract-hero__title {
  font-family: "u3", sans-serif;
  font-weight: 700;
  font-size: 38px;
  color: #ffe7ba;
  text-transform: uppercase;
  line-height: 1.1;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  overflow-wrap: anywhere;
}

.hero__desc,
.index2-hero__desc,
.about-hero__desc,
.bpla-hero__desc,
.reb-hero__desc,
.zakrip-hero__desc,
.join-success-hero__desc,
.success-hero__desc,
.vacancies-hero__desc,
.donate-hero__desc,
.zsu-transformation-hero__desc,
.join-zsu-hero__desc,
.zapyt-hero__desc,
.join-zsu-contract-hero__desc {
  font-family: "u3", sans-serif;
  font-weight: 400;
  font-size: 18px;
  color: #ffe7ba;
  line-height: 1.6;
  opacity: 0.95;
  margin-bottom: 36px;
}

/* ── 9. CTA — normal flow on hero--half ── */
.hero__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
  width: fit-content;
}

.hero__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  height: auto;
  padding: 12px 32px;
  background-color: #ffa600;
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 0;
  box-shadow:
    0 0 0 16px rgb(255 201 137 / 9%),
    inset 0 0 0 0 rgba(255, 255, 255, 0.25);
  text-decoration: none;
  font-family: "u3", sans-serif;
  font-weight: 600;
  font-size: 20px;
  text-transform: uppercase;
  color: #001e28;
  cursor: pointer;
  transition: filter 0.2s ease;
  white-space: normal;
  text-align: center;
  line-height: 1.25;
  box-sizing: border-box;
}

.hero__cta-btn:hover {
  filter: brightness(1.08);
}

.hero__cta-btn--ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 12px 24px;
  background: transparent;
  color: var(--gold-soft, #ffe7ba);
  text-decoration: none;
  font-family: "u3", sans-serif;
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.35px;
  border: 1px solid rgba(255, 231, 186, 0.35);
  border-radius: 0;
  box-shadow: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}

.hero__cta-btn--ghost:hover {
  background: rgba(255, 231, 186, 0.08);
  color: var(--gold-soft, #ffe7ba);
  border-color: var(--gold-soft, #ffe7ba);
  transform: translateY(-2px);
  filter: none;
}

.hero__cta-sub {
  font-family: "u3", sans-serif;
  font-weight: 500;
  font-size: 18px !important;
  color: #ffe7ba;
  text-align: center;
  width: 100%;
  line-height: 1.4;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  text-decoration: none;
}

a.hero__cta-sub {
  cursor: pointer;
  transition: color 0.3s ease, opacity 0.3s ease, text-decoration 0.3s ease;
  display: block;
}

a.hero__cta-sub:hover {
  color: var(--gold, #ffa600);
  text-decoration: underline;
  opacity: 0.95;
}

/* ── 10. Scroll arrow ── */
.hero__scroll-arrow {
  position: absolute;
  top: 18px;
  left: 50%;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 32px;
  transform: translateX(-50%);
  text-decoration: none;
  opacity: 0.82;
  color: #a69779;
  animation: heroScrollArrowFloat 2.4s ease-in-out infinite;
  transition:
    opacity 0.2s ease,
    color 0.2s ease;
}

.hero__scroll-arrow:hover {
  opacity: 1;
  color: #d1c1a0;
  animation-play-state: paused;
}

.hero__scroll-arrow-icon {
  display: block;
  width: 63px;
  height: 21px;
  overflow: visible;
}

@keyframes heroScrollArrowFloat {
  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(8px);
  }
}

/* ── 11. Under-box (divider + info cols) ── */
/* Generic: static, centered, sits below hero__content in normal flow */
.hero__under-box {
  position: relative;
  width: 100%;
  max-width: 1080px;
  min-height: 154px;
  margin: 0 auto;
  overflow: visible;
}

/* Divider line — thin horizontal rule above info columns */
.hero__divider {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 2px;
  margin-top: 24px;
  margin-bottom: 24px;
}

.hero__divider img {
  display: block;
  width: 100%;
  height: 2px;
}

/* ── Desktop breakpoint ── */
@media (min-width: 1280px) {
  .hero__scroll-arrow {
    top: 38px;
    animation: heroScrollArrowFloat 2.4s ease-in-out infinite !important;
  }

  .hero--half .hero__content {
    padding-top: 310px;
  }

  /* Empty under-box on desktop: shrink to ~60px (1/3 of 154px) so the next
     section overlaps the watermark while the divider/arrow remain visible. */
  .hero__under-box {
    min-height: 68px;
  }

  .hero__under-box:has(.hero__info-cols .hero__info-item) {
    min-height: 154px;
  }

  .hero__info-cols:not(:has(.hero__info-item)) {
    display: none;
  }

  /* Non-index heroes: add breathing room between content and under-box */
  .index-hero__under-box,
  .index2-hero__under-box,
  .about-hero__under-box,
  .vacancies-hero__under-box,
  .bpla-hero__under-box,
  .reb-hero__under-box,
  .zakrip-hero__under-box,
  .join-success-hero__under-box,
  .success-hero__under-box,
  .donate-hero__under-box,
  .zsu-transformation-hero__under-box,
  .join-zsu-hero__under-box,
  .zapyt-hero__under-box,
  .join-zsu-contract-hero__under-box,
  .vac-hero__under-box,
  .decom-hero__under-box {
    margin-top: 20px;
  }

  /* Small breathing room below the under-box (was: 220px/134px watermark
     clearance reservations — removed as harmful; the watermark is
     decorative and the follower sections start right below the hero). */
  .hero__under-box:has(.hero__bg-text) {
    margin-bottom: 20px;
  }

  .hero__under-box:has(.hero__info-cols .hero__info-item) {
    margin-bottom: 20px;
  }
}

