/* ════════════════════════════════════════════════════════════════
   <x-numox.page-banner> — Sub-page hero banner
   Props:  title (HTML) · description · eyebrow · image
   ════════════════════════════════════════════════════════════════ */

.nx-page-banner {
  position: relative;
  padding: 120px 0 100px;
  overflow: hidden;
}

/* Subtle dot texture (sits above the image but below content) */
.nx-page-banner::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background-image: radial-gradient(circle, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 36px 36px;
}

/* Image fills the whole banner (stretched/cover) */
.nx-page-banner.has-bg {
  background-color: transparent;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Soft gradient overlay so headings stay legible without recoloring the image */
.nx-page-banner.has-bg::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(135deg,
    rgba(10,14,46,.55) 0%,
    rgba(10,14,46,.30) 60%,
    rgba(200,39,58,.20) 100%);
}

/* Decorative red glow blob */
.nx-page-banner-blob {
  position: absolute; pointer-events: none; z-index: 1;
  width: 560px; height: 560px; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,39,58,.20) 0%, transparent 65%);
  top: -200px; inset-inline-end: -150px;
}

/* Content */
.nx-page-banner-inner {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 18px; max-width: 720px;
  text-align: start;
}

/* Breadcrumb */
.nx-page-banner-crumbs {
  display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px;
  font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,.55);
  margin-bottom: 4px;
}
.nx-page-banner-crumbs a {
  color: rgba(255,255,255,.65);
  text-decoration: none;
  transition: color .2s;
}
.nx-page-banner-crumbs a:hover { color: #fff; }
.nx-page-banner-crumbs span[aria-current="page"] {
  color: #fff;
  font-weight: 700;
}
.nx-page-banner-crumb-sep {
  color: rgba(255,255,255,.30);
  flex-shrink: 0;
}
[dir="rtl"] .nx-page-banner-crumb-sep { transform: scaleX(-1); }

.nx-page-banner-title {
  font-size: clamp(40px, 6vw, 76px); font-weight: 900;
  line-height: 1.05; letter-spacing: -2px; color: #fff; margin: 0;
  text-align: start;
}
.nx-page-banner-title .accent-italic {
  font-style: italic;
  background: linear-gradient(135deg, var(--nx-red-soft) 0%, var(--nx-red) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.nx-page-banner-sub {
  font-size: 17px; font-weight: 300;
  color: rgba(255,255,255,.65); line-height: 1.7;
  max-width: 520px; margin: 0;
  text-align: start;
}

/* Suppress legacy breadcrumb when this banner is on the page */
.nx-page-banner ~ .breadcrumb-bg { display: none !important; }

@media (max-width: 768px) {
  .nx-page-banner       { padding: 80px 0 64px; }
  .nx-page-banner-title { font-size: 38px; letter-spacing: -1px; }
  .nx-page-banner-sub   { font-size: 15px; }
}
