/* ==========================================================
   Nalapad Group – Full-width photo banner (component)
   Markup: section.banner > img.bg-img.banner__img + .container.banner__inner > .banner__content
   Variants: .banner--right (text on the right). Page-specific variants
   (e.g. .banner--values) live in that page's stylesheet.
   ========================================================== */

.banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(420px, 38vw, 560px);
  display: flex;
  align-items: center;
  color: var(--color-white);
  background: #0A1626;            /* shows while the photo loads */
}

/* Photo: sizing comes from .bg-img; this adds a slow drift on hover */
.banner__img {
  transform: scale(1.04);
  transition: transform 6s var(--ease);
}
.banner:hover .banner__img { transform: scale(1); }

/* Dark fade on the text side so the words stay readable on any photo */
.banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,
    rgba(6, 14, 28, .82) 0%,
    rgba(6, 14, 28, .55) 35%,
    rgba(6, 14, 28, 0) 70%);
}

.banner__inner { padding-block: 80px; }

.banner__content {
  max-width: 540px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.banner__eyebrow { margin-bottom: 14px; }

.banner__title {
  margin: 0;
  font-weight: 600;
  font-size: clamp(26px, 2.4vw, 36px);
  line-height: 1.3;
  letter-spacing: -.005em;
}

.banner__text {
  margin: 0;
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255, 255, 255, .9);
}

.banner__btn {
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  margin-top: 12px;
  padding: 0 24px;
  border-radius: 999px;
  background: var(--color-white);
  color: var(--color-primary);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: background-color .25s, color .25s, transform .25s;
}
.banner__btn:hover { background: var(--color-primary); color: var(--color-white); transform: translateY(-2px); }
.banner__btn:focus-visible { outline-color: var(--color-white); }

/* Vertical label at the left edge ("OUR VALUES", "OUR SECTORS") with a line under it */
.banner__label {
  margin: 0;
  align-self: center;
  display: flex;
  align-items: center;
  gap: 20px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .85);
}
.banner__label::before {           /* sits below the text once rotated */
  content: "";
  width: 1px;
  height: 120px;
  background: rgba(255, 255, 255, .6);
}

/* Text on the right instead */
.banner--right .banner__content { margin-inline-start: auto; }
.banner--right::before { transform: scaleX(-1); }

/* ---------------- Tablet ---------------- */
@media (max-width: 1024px) {
  .banner__label { display: none; }
}

/* ---------------- Phone: darker all over, text sits at the bottom ---------------- */
@media (max-width: 760px) {
  .banner { min-height: 520px; align-items: flex-end; }
  .banner::before,
  .banner--right::before {
    transform: none;
    background: linear-gradient(0deg, rgba(6, 14, 28, .88) 0%, rgba(6, 14, 28, .55) 55%, rgba(6, 14, 28, .2) 100%);
  }
  .banner__inner { padding-block: 56px 48px; }
  .banner__text { font-size: 16px; }
}

/* ---------------- Right-to-left: the fade follows the text ---------------- */
[dir="rtl"] .banner::before { transform: scaleX(-1); }
[dir="rtl"] .banner--right::before { transform: none; }

@media (prefers-reduced-motion: reduce) {
  .banner__img, .banner:hover .banner__img { transform: none; }
}
