.ib-b2b-matching {
  position: relative;
  overflow: clip;
  color: #fff;
  background:
    radial-gradient(circle at 12% 15%, rgba(248, 1, 155, .2), transparent 30%),
    radial-gradient(circle at 88% 65%, rgba(118, 23, 232, .18), transparent 34%),
    #07040d;
}

.ib-b2b-matching__head { max-width: 840px; margin: 0 auto 30px; text-align: center; }
.ib-b2b-matching__eyebrow { display: inline-flex; margin-bottom: 10px; color: #ff45b5; font-size: .82rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.ib-b2b-matching__head h2 span { color: #fa2d9c; background: linear-gradient(90deg, #ff2b91, #9d20ff); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.ib-b2b-matching__head p { max-width: 680px; margin: 10px auto 0; color: rgba(255, 255, 255, .74); }

.ib-b2b-matching__loading,
.ib-b2b-matching__empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  max-width: 720px;
  margin: 0 auto;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 20px;
  color: rgba(255, 255, 255, .78);
  background: rgba(255, 255, 255, .05);
}
.ib-b2b-matching__loading > i,
.ib-b2b-matching__empty > i { color: #ff45b5; font-size: 1.45rem; }
.ib-b2b-matching__empty p { margin: 3px 0 0; color: rgba(255, 255, 255, .68); }

.ib-b2b-matching__visible { min-width:0; }

.ib-b2b-match-card {
  position: relative;
  min-width: 0;
  min-height: 330px;
  overflow: hidden;
  scroll-snap-align: start;
  border: 1px solid rgba(248, 1, 155, .78);
  border-radius: 22px;
  background: #140a1e;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .42), 0 0 18px rgba(248, 1, 155, .13);
}
.ib-b2b-match-card__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ib-b2b-match-card::after { content: ''; position: absolute; inset: 28% 0 0; background: linear-gradient(180deg, transparent, rgba(5, 2, 10, .55) 34%, rgba(5, 2, 10, .98)); }
.ib-b2b-match-card__fit { position: absolute; z-index: 2; top: 12px; left: 12px; padding: 7px 11px; border: 1px solid rgba(255, 69, 181, .9); border-radius: 999px; color: #70ffd1; font-size: .88rem; font-weight: 900; background: rgba(7, 4, 13, .82); backdrop-filter: blur(8px); }
.ib-b2b-match-card__body { position: absolute; z-index: 2; inset: auto 0 0; display: grid; gap: 8px; padding: 16px; }
.ib-b2b-match-card__type { color: #ff78c9; font-size: .75rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.ib-b2b-match-card__body strong { color: #fff; font-size: 1.12rem; }
.ib-b2b-match-card__labels { display: flex; flex-wrap: wrap; gap: 7px; }
.ib-b2b-match-card__labels span { max-width: 100%; overflow: hidden; padding: 5px 9px; border: 1px solid rgba(248, 1, 155, .62); border-radius: 999px; color: rgba(255, 255, 255, .9); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; background: rgba(47, 9, 57, .78); }

.ib-b2b-matching__cta { margin-top: 30px; text-align: center; }
.ib-b2b-matching__cta button { min-width: min(100%, 420px); }

.ib-b2b-match-locked__lock { position:absolute; z-index:2; top:50%; left:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:58px; height:58px; border:1px solid #f077c7; border-radius:50%; color:#fff; background:#2b1237db; font-size:1.35rem; }

/* One continuous accessible rail, with identical geometry for both access levels. */
.ib-b2b-matching__rail { display:grid; grid-auto-flow:column; grid-auto-columns:clamp(220px,25vw,280px); gap:14px; overflow-x:auto; padding:4px 3px 18px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#f8019b rgba(255,255,255,.08); }
.ib-b2b-matching__rail:focus-visible { outline:2px solid #f899d0; outline-offset:2px; }
.ib-b2b-match-card { min-height:350px; aspect-ratio:4/5; }
.ib-b2b-match-locked { border-color:rgba(248,1,155,.36); }
.ib-b2b-match-locked .ib-b2b-match-card__body > span:last-child { font-size:.85rem; color:#d8c3dc; }
.ib-b2b-match-portrait { position:absolute; inset:0; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,#5b205f,#21122f 70%); }
.ib-b2b-match-portrait__initials { color:#fff; font-size:clamp(3rem,8vw,5.5rem); font-weight:800; letter-spacing:.05em; opacity:.8; }
.ib-b2b-match-portrait img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ib-b2b-match-portrait.is-locked { filter:blur(10px) brightness(.5); transform:scale(1.08); }
.ib-b2b-match-portrait.is-locked img { filter:none; transform:none; }
@media (max-width:600px) { .ib-b2b-matching__rail { grid-auto-columns:min(260px,72vw); } }

@media (prefers-reduced-motion: reduce) {
  .ib-b2b-matching__loading .fa-spin { animation: none; }
}
