.nb-role-section { position: relative; overflow: hidden; padding: 78px 0 0; background: #f8f9ff; }
.nb-role-section::before { content: ""; position: absolute; inset: -12%; background: radial-gradient(circle at 12% 18%,rgba(37,99,235,.13),transparent 38%),radial-gradient(circle at 88% 42%,rgba(5,150,105,.1),transparent 36%),radial-gradient(circle at 52% 90%,rgba(201,168,76,.11),transparent 36%); filter: blur(7px); pointer-events: none; }
.nb-role-heading { position: relative; z-index: 1; padding: 0 clamp(22px,4vw,72px) 34px; }
.nb-role-section .nb-section-label { color: #2563eb; }
.nb-role-heading h2 { margin: 13px 0 0; color: #0a0f1e; font: 700 clamp(1.9rem,3.2vw,3rem)/1.08 "Sora",sans-serif; letter-spacing: -.045em; }
.nb-role-heading h2 span { color: #2563eb; }

/* Same left/right inset as .nb-role-heading (clamp(22px,4vw,72px)) so the
   panels' edge lines up with the heading's edge above them, instead of
   running full-bleed while the heading stays indented. */
.nb-role-panels { position: relative; z-index: 1; display: flex; gap: 7px; width: 100%; height: min(72vw,760px); padding: 0 clamp(22px,4vw,72px); }
.nb-role-panel { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; background: #172033; isolation: isolate; transition: flex .75s cubic-bezier(.2,.75,.2,1),filter .5s ease; }
.nb-role-panels:hover .nb-role-panel:not(:hover) { filter: saturate(.72) brightness(.84); }
.nb-role-panel:hover { flex: 1.28 1 0; }
.nb-role-panel > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.015); transition: transform 1.1s cubic-bezier(.2,.75,.2,1); }
.nb-role-panel:hover > img { transform: scale(1.055); }
.nb-role-shade { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg,rgba(5,10,20,.08) 32%,rgba(5,10,20,.42) 63%,rgba(5,10,20,.94) 100%),linear-gradient(90deg,rgba(5,10,20,.18),transparent 48%); }
.nb-role-status { position: absolute; top: 24px; right: 24px; display: inline-flex; align-items: center; gap: 7px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.26); border-radius: 99px; background: rgba(8,18,38,.6); color: #fff; font-size: .67rem; font-weight: 650; box-shadow: 0 14px 34px rgba(0,0,0,.16); backdrop-filter: blur(12px); animation: nbRoleFloat 5.5s ease-in-out infinite; }
.nb-role-status i { color: #34d399; }
.nb-role-panel:nth-child(2) .nb-role-status { animation-delay: -2s; }
.nb-role-panel:nth-child(3) .nb-role-status { animation-delay: -4s; }
.nb-role-copy { position: absolute; right: 0; bottom: 0; left: 0; padding: clamp(24px,3vw,48px); color: #fff; }
.nb-role-copy small { display: block; margin-bottom: 10px; color: #93c5fd; font: 500 .64rem "IBM Plex Mono",monospace; letter-spacing: .11em; }
/* Statement-h3 tier: shared with the FBR Proof console's statement heading —
   was previously its own one-off scale (1.45-2.35rem, different line-height/
   tracking); now matches that sibling exactly. */
.nb-role-copy h3 { margin: 0 0 9px; font: 650 clamp(1.65rem,2.4vw,2.15rem)/1.15 "Sora",sans-serif; letter-spacing: -.035em; }
.nb-role-copy p { max-width: 300px; margin: 0 0 22px; color: #eef4fb; font-size: .86rem; line-height: 1.55; }
.nb-role-copy a { display: inline-flex; align-items: center; gap: 13px; color: #fff; font-size: .76rem; font-weight: 650; text-decoration: none; }
.nb-role-copy a i { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; transition: background .25s ease,color .25s ease,transform .25s ease; }
.nb-role-copy a:hover i { background: #fff; color: #0f172a; transform: translate(3px,-3px); }

@keyframes nbRoleFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

@media (max-width: 991.98px) {
  .nb-role-section { padding-top: 68px; }
  .nb-role-panels { height: 650px; }
  .nb-role-panel:hover { flex: 1.15 1 0; }
  .nb-role-status { top: 18px; right: 18px; max-width: calc(100% - 36px); }
  .nb-role-copy { padding: 25px 22px; }
  .nb-role-copy p { font-size: .78rem; }
}

@media (max-width: 767.98px) {
  .nb-role-section { padding-top: 58px; }
  .nb-role-heading { padding-bottom: 28px; }
  .nb-role-panels { display: grid; height: auto; gap: 7px; }
  .nb-role-panel { min-height: 490px; }
  .nb-role-panels:hover .nb-role-panel:not(:hover) { filter: none; }
  .nb-role-panel:hover { flex: initial; }
  .nb-role-panel > img { object-position: center 45%; }
  .nb-role-copy { padding: 28px 24px; }
  .nb-role-copy p { font-size: .84rem; }
}

@media (prefers-reduced-motion: reduce) {
  .nb-role-panel,.nb-role-panel > img,.nb-role-status,.nb-role-copy a i { animation: none !important; transition: none !important; }
}
