/* ==========================================================================
   4. PRODUCT LIBRARY
   ========================================================================== */
.fbi-pr-lib{
  background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 12%, var(--mist) 100%);
  padding:clamp(56px,7vw,90px) 0 clamp(70px,8vw,104px);
  border-top:1px solid var(--line);
}
.fbi-pr-lib__head{max-width:660px; margin-bottom:34px;}

.fbi-pr-tools{
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  flex-wrap:wrap; margin-bottom:26px;
}
.fbi-pr-tabs{display:flex; flex-wrap:wrap; gap:8px;}
.fbi-pr .fbi-pr-tab{
  padding:9px 17px; border-radius:var(--r-pill); cursor:pointer;
  background:#fff; border:1px solid var(--line); box-shadow:none;
  font-family:var(--h-font); font-size:.85rem; font-weight:500; color:var(--ink-soft);
  transition:all .2s ease;
}
.fbi-pr .fbi-pr-tab:hover{background:#fff; border-color:var(--violet); color:var(--violet);}
.fbi-pr .fbi-pr-tab[aria-selected="true"],
.fbi-pr .fbi-pr-tab[aria-selected="true"]:hover{
  background:var(--navy-900); border-color:var(--navy-900); color:#fff;
}
.fbi-pr-tab b{font-weight:600; opacity:.55; margin-left:5px; font-size:.78em;}

.fbi-pr-search{position:relative; min-width:230px; flex:0 1 280px;}
.fbi-pr-search svg{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; color:var(--ink-soft); pointer-events:none;
}
.fbi-pr-search input{
  width:100%; padding:11px 14px 11px 40px;
  border:1px solid var(--line); border-radius:var(--r-pill);
  background:#fff; font-family:var(--b-font); font-size:.88rem; color:var(--ink);
  outline:none; transition:border-color .2s, box-shadow .2s;
}
.fbi-pr-search input:focus{
  border-color:var(--violet); box-shadow:0 0 0 4px rgba(123,47,214,.12);
}

.fbi-pr-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:20px;
}

/* --- card --- */
.fbi-pr-card{
  position:relative; display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:24px 24px 20px; overflow:hidden;
  box-shadow:var(--shadow-1);
  transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}
.fbi-pr-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--hue,var(--violet));
  transform:scaleY(0); transform-origin:top; transition:transform .3s ease;
}
.fbi-pr-card:hover{transform:translateY(-4px); border-color:#DCD2EE; box-shadow:var(--shadow-2);}
.fbi-pr-card:hover::before{transform:scaleY(1);}
.fbi-pr-card.is-hidden{display:none;}
/* each chemistry base gets its own separation */
.fbi-pr-card[data-cat="polymer"]{--hue:linear-gradient(180deg,var(--cyan),var(--violet));}
.fbi-pr-card[data-cat="polymer-add"]{--hue:linear-gradient(180deg,var(--magenta),var(--violet));}
.fbi-pr-card[data-cat="hec"]{--hue:linear-gradient(180deg,var(--yellow),var(--amber));}
.fbi-pr-card[data-cat="acrylic"]{--hue:linear-gradient(180deg,var(--key),var(--violet));}

.fbi-pr-card__top{display:flex; justify-content:space-between; align-items:flex-start; gap:14px;}
.fbi-pr-card__nature{
  font-family:var(--h-font); font-size:.68rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--violet);
}
.fbi-pr-card__ionic{
  font-size:.68rem; font-weight:600; padding:4px 10px; border-radius:var(--r-pill);
  background:var(--mist); color:var(--ink-soft); border:1px solid var(--line);
  white-space:nowrap;
}
.fbi-pr-card__name{
  font-family:var(--h-font); font-size:1.22rem; font-weight:700;
  color:var(--navy-900); margin-top:10px; letter-spacing:-.01em;
}
.fbi-pr-card__name a{color:inherit;}
.fbi-pr-card__name a::after{content:""; position:absolute; inset:0; z-index:1;}
.fbi-pr-card:focus-within{border-color:var(--violet); box-shadow:0 0 0 4px rgba(123,47,214,.14);}
.fbi-pr-card__chem{font-size:.86rem; color:var(--ink-soft); margin-top:6px;}

.fbi-pr-card__benefits{
  list-style:none; padding:0; margin:16px 0 0;
  display:flex; flex-direction:column; gap:8px;
  border-top:1px solid var(--line); padding-top:16px;
}
.fbi-pr-card__benefits li{
  position:relative; padding-left:20px; font-size:.85rem; color:var(--ink); line-height:1.5;
}
.fbi-pr-card__benefits li::before{
  content:""; position:absolute; left:0; top:8px;
  width:7px; height:7px; border-radius:2px;
  background:var(--violet); transform:rotate(45deg);
}
.fbi-pr-card__benefits b{font-weight:600; color:var(--navy-700);}

.fbi-pr-card__foot{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  margin-top:auto; padding-top:18px;
}
.fbi-pr-card__fibers{font-size:.74rem; color:var(--ink-soft); font-family:var(--h-font); font-weight:500;}
.fbi-pr-card__fibers span{
  display:inline-block; padding:2px 7px; margin-right:4px; border-radius:4px;
  background:#F3EFFA; color:#655B7D; font-size:.68rem; font-weight:600;
}
.fbi-pr-card__go{
  display:inline-flex; align-items:center; gap:6px; flex:none;
  font-family:var(--h-font); font-size:.8rem; font-weight:600; color:var(--violet);
}
.fbi-pr-card__go svg{width:14px; height:14px; transition:transform .22s ease;}
.fbi-pr-card:hover .fbi-pr-card__go svg{transform:translateX(4px);}

.fbi-pr-empty{
  display:none; text-align:center; padding:64px 20px;
  border:1px dashed var(--line); border-radius:var(--r-md); background:#fff;
}
.fbi-pr-empty.is-on{display:block;}
.fbi-pr-empty h4{font-size:1.1rem;}
.fbi-pr-empty p{color:var(--ink-soft); font-size:.9rem; margin-top:8px;}
.fbi-pr .fbi-pr-empty button,
.fbi-pr .fbi-pr-empty button:hover{
  margin-top:18px; padding:9px 20px; border-radius:var(--r-pill);
  border:1px solid var(--navy-900); background:var(--navy-900); color:#fff;
  font-family:var(--h-font); font-size:.84rem; font-weight:600; cursor:pointer;
}
.fbi-pr .fbi-pr-empty button:hover{background:var(--navy-700); border-color:var(--navy-700);}
@media (max-width:600px){
.fbi-pr-grid{grid-template-columns:1fr;}
.fbi-pr-search{flex:1 1 100%;}
.fbi-pr-tab{white-space:nowrap; flex:none;}
}
