/* ============================================================
   PFN affiliate product card — in-article
   Editorial in tone: reads as a recommendation, not an advert.
   ============================================================ */

.pfn-pc{
  --pfn-orange:#ff6a3d;
  position:relative;
  display:grid;
  grid-template-columns:132px 1fr;
  gap:20px;
  margin:40px 0 34px;
  padding:24px 20px 20px;
  overflow:visible;
  border:1px solid rgba(255,255,255,.10);
  border-left:3px solid var(--pfn-orange);
  border-radius:14px;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(255,106,61,.10) 0%, rgba(255,106,61,0) 55%),
    linear-gradient(135deg,#141922 0%,#0d1117 100%);
  box-shadow:0 6px 24px rgba(0,0,0,.4);
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.pfn-pc:hover{
  border-color:rgba(255,106,61,.5);
  box-shadow:0 10px 32px rgba(255,106,61,.16);
  transform:translateY(-2px);
}

/* small label so the reader knows what this block is */
.pfn-pc::before{
  content:"PFN PICK";
  position:absolute;
  top:-10px; left:20px;
  z-index:2;
  padding:3px 10px;
  border-radius:4px;
  background:var(--pfn-orange);
  color:#fff;
  font:800 9px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  letter-spacing:1.2px;
}

/* ---- product image ---- */
.pfn-pc-media{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:1/1;
  background:#fff;
  border-radius:10px;
  overflow:hidden;
  padding:10px;
}
.pfn-pc-media img{
  width:100% !important; height:100% !important;
  max-width:none !important; max-height:none !important;
  object-fit:contain !important;
  display:block;
  background:none !important;
  border-radius:0 !important;
  padding:0 !important;
}

/* ---- body ---- */
.pfn-pc-body{ display:flex; flex-direction:column; min-width:0; }

.pfn-pc-top{ display:flex; align-items:center; gap:8px; margin-bottom:7px; flex-wrap:wrap; }
.pfn-pc-badge{
  padding:4px 9px;
  border-radius:4px;
  border:1px solid rgba(255,106,61,.45);
  background:rgba(255,106,61,.12);
  color:var(--pfn-orange);
  font:700 10px/1.2 system-ui,sans-serif;
  letter-spacing:.7px;
  text-transform:uppercase;
}
.pfn-pc-partner{
  font:600 10px/1.2 system-ui,sans-serif;
  letter-spacing:.7px;
  text-transform:uppercase;
  color:#7e879c;
}

.pfn-pc-name,
.pfn-pc-name *{
  color:#fff !important;
}
.pfn-pc-name{
  margin:0 0 8px !important;
  font:800 19px/1.28 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif !important;
  color:#fff !important;
  letter-spacing:-.2px;
}
.pfn-pc-blurb{
  margin:0 0 16px !important;
  font:400 14.5px/1.55 system-ui,sans-serif !important;
  color:#b8c0cc !important;
}

/* ---- footer: price + CTA ---- */
.pfn-pc-foot{
  margin-top:auto;
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.07);
}
.pfn-pc-price{
  font:800 22px/1 system-ui,sans-serif;
  color:#fff;
  letter-spacing:-.4px;
}
.pfn-pc-cta{
  margin-left:auto;
  display:inline-flex; align-items:center; gap:7px;
  padding:12px 20px;
  border-radius:9px;
  background:linear-gradient(135deg,#ff6a3d,#ff8354);
  color:#fff !important;
  font:700 13.5px/1 system-ui,sans-serif;
  text-decoration:none !important;
  min-height:44px;
  box-shadow:0 3px 12px rgba(255,106,61,.3);
  transition:transform .15s ease, box-shadow .15s ease;
}
.pfn-pc-cta:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 18px rgba(255,106,61,.42);
  color:#fff !important;
}

.pfn-pc-note,
.pfn-pc-note *{
  display:block;
  margin-top:11px;
  font:400 11px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif !important;
  color:#6f7889 !important;
  letter-spacing:.2px;
  text-decoration:none !important;
}

/* ---- mobile ---- */
@media (max-width:640px){
  .pfn-pc{
    grid-template-columns:1fr;
    gap:14px;
    padding:18px 16px 16px;
    margin:28px 0;
  }
  .pfn-pc-media{
    width:120px;
    aspect-ratio:1/1;
    margin:0 auto;
  }
  .pfn-pc-name{ font-size:17px !important; text-align:center; }
  .pfn-pc-blurb{ font-size:14px !important; text-align:center; }
  .pfn-pc-top{ justify-content:center; }
  .pfn-pc-foot{ flex-direction:column; align-items:stretch; gap:12px; }
  .pfn-pc-price{ text-align:center; font-size:24px; }
  .pfn-pc-cta{ margin-left:0; justify-content:center; width:100%; }
  .pfn-pc-note{ text-align:center; }
}


/* an empty paragraph next to the card adds phantom space — collapse it */
.entry-content p:empty{ display:none !important; margin:0 !important; }
.pfn-pc + p:empty,
p:empty + .pfn-pc{ margin-top:0 !important; }

/* ============================================================
   SIDEBAR MODULE — "Gear we recommend"
   The theme's widget wrapper already draws the bordered panel, so the
   module renders as plain content inside it. One frame, and it inherits
   the theme's own styling instead of competing with it.
   ============================================================ */
.pfn-sb{
  box-sizing:border-box;
  width:100%;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
}

.pfn-sb-head{ margin-bottom:12px; }
.pfn-sb-kicker{
  display:block;
  color:#ff6b00;
  font:800 10px/1.4 Poppins,system-ui,sans-serif;
  letter-spacing:1.2px;
  margin-bottom:5px;
}
.pfn-sb-title{
  margin:0 0 4px !important;
  color:#ff6b00 !important;
  font:800 16px/1.25 Poppins,system-ui,sans-serif !important;
  text-transform:uppercase;
  letter-spacing:.6px;
}
.pfn-sb-sub{
  margin:0 !important;
  color:#8b92a5 !important;
  font:400 11px/1.45 Poppins,system-ui,sans-serif !important;
}

.pfn-sb-list{ display:flex; flex-direction:column; gap:8px; }

.pfn-sb-item{
  display:flex; align-items:center; gap:10px;
  padding:9px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:8px;
  background:rgba(255,255,255,.03);
  text-decoration:none !important;
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}
.pfn-sb-item:hover{
  border-color:rgba(255,107,0,.5);
  background:rgba(255,107,0,.08);
  transform:translateY(-2px);
}

.pfn-sb-media{
  flex:0 0 48px;
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  background:#fff;
  border-radius:10px;
  overflow:hidden;
  padding:4px;
  border:1px solid rgba(255,255,255,.08);
}
.pfn-sb-media img{
  width:100% !important; height:100% !important;
  object-fit:contain !important;
  display:block;
}

.pfn-sb-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.pfn-sb-name{
  color:#e4e8f2 !important;
  font:600 12.5px/1.3 Poppins,system-ui,sans-serif;
  display:block;
}
.pfn-sb-meta{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.pfn-sb-badge{
  padding:2px 6px;
  border-radius:4px;
  background:rgba(255,107,0,.15);
  color:#ff6b00;
  font:700 9px/1.3 Poppins,system-ui,sans-serif;
  letter-spacing:.5px;
  text-transform:uppercase;
}
.pfn-sb-price{ color:#ff6b00 !important; font:800 12.5px/1 Poppins,system-ui,sans-serif; }
.pfn-sb-arrow{ color:#ff6b00; font-size:15px; flex:0 0 auto; }

.pfn-sb-note{
  margin:12px 0 0 !important;
  color:#8b92a5 !important;
  font:400 10px/1.45 Poppins,system-ui,sans-serif !important;
  text-align:center;
}

/* The theme pins the sidebar with an inline `position:sticky !important`,
   which loads after plugin CSS and so wins on equal specificity. Once the
   column is taller than the viewport (1377px vs ~560px here) that pin traps
   the reader mid-scroll. Raise specificity to unpin it. */
html body aside.sidebar,
html body .sidebar{
  position:static !important;
  top:auto !important;
  bottom:auto !important;
  max-height:none !important;
  overflow:visible !important;
  align-self:start !important;
}

/* ============================================================
   SHOP PAGE — [pfn_shop]
   A curated shelf: category sections, product grid, honest framing.
   ============================================================ */
.pfn-shop{ --pfn-orange:#ff6b00; margin:0 0 40px; }

/* ---- trust bar: the facts a buyer wants before they trust a list ---- */
.pfn-shop-trust{ margin:0 0 34px; }
.pfn-shop-trust-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-bottom:16px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  overflow:hidden;
  background:rgba(255,255,255,.1);
}
.pfn-shop-trust-item{
  display:flex; flex-direction:column; gap:5px;
  padding:16px 14px;
  background:#0d1117;
  text-align:center;
}
.pfn-shop-trust-n{
  color:var(--pfn-orange);
  font:800 22px/1 Poppins,system-ui,sans-serif;
  letter-spacing:-.4px;
}
.pfn-shop-trust-l{
  color:#8b92a5;
  font:400 11.5px/1.4 Poppins,system-ui,sans-serif;
}
.pfn-shop-trust-copy{
  margin:0 !important;
  padding:15px 17px;
  border-left:3px solid var(--pfn-orange);
  border-radius:0 10px 10px 0;
  background:rgba(255,107,0,.06);
  color:#b8c0cc !important;
  font:400 14px/1.65 Poppins,system-ui,sans-serif !important;
}

/* ---- disclosure: a proper section, not fine print ---- */
.pfn-shop-disclosure{
  margin-top:10px;
  padding:22px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:#0b0f15;
}
.pfn-shop-disclosure-h{
  margin:0 0 12px !important;
  color:#fff !important;
  font:800 16px/1.3 Poppins,system-ui,sans-serif !important;
}
.pfn-shop-disclosure p{
  margin:0 0 11px !important;
  color:#9aa3b2 !important;
  font:400 13.5px/1.7 Poppins,system-ui,sans-serif !important;
}
.pfn-shop-disclosure p:last-child{ margin-bottom:0 !important; }
.pfn-shop-disclosure-meta{
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#7e879c !important;
}
.pfn-shop-disclosure-meta a{ color:var(--pfn-orange) !important; }

@media (max-width:560px){
  .pfn-shop-trust-row{ grid-template-columns:1fr; }
  .pfn-shop-trust-item{ flex-direction:row; align-items:center; justify-content:space-between; text-align:left; }
  .pfn-shop-trust-n{ font-size:18px; }
  .pfn-shop-disclosure{ padding:18px 16px; }
}

.pfn-shop-group{ margin:0 0 38px; }
.pfn-shop-h{
  display:flex; align-items:center; gap:10px;
  margin:0 0 18px !important;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.1);
  color:#fff !important;
  font:800 22px/1.2 Poppins,system-ui,sans-serif !important;
  letter-spacing:-.3px;
}
.pfn-shop-count{
  padding:3px 9px;
  border-radius:20px;
  background:rgba(255,107,0,.15);
  color:var(--pfn-orange);
  font:700 11px/1.4 Poppins,system-ui,sans-serif;
}

.pfn-shop-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:18px;
}

.pfn-shop-card{
  display:flex; flex-direction:column;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:#0d1117;
  overflow:hidden;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.pfn-shop-card:hover{
  border-color:rgba(255,107,0,.55);
  transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(255,107,0,.15);
}

.pfn-shop-media{
  aspect-ratio:1/1;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  padding:18px;
}
.pfn-shop-media img{
  width:100% !important; height:100% !important;
  object-fit:contain !important;
  display:block;
}


.pfn-shop-body{ display:flex; flex-direction:column; flex:1; padding:16px; }

.pfn-shop-top{ display:flex; align-items:center; gap:8px; margin-bottom:9px; flex-wrap:wrap; }
.pfn-shop-badge{
  padding:3px 8px;
  border-radius:4px;
  background:rgba(255,107,0,.15);
  color:var(--pfn-orange);
  font:700 9.5px/1.3 Poppins,system-ui,sans-serif;
  letter-spacing:.6px;
  text-transform:uppercase;
}
.pfn-shop-partner{
  color:#7e879c;
  font:600 9.5px/1.3 Poppins,system-ui,sans-serif;
  letter-spacing:.6px;
  text-transform:uppercase;
}

.pfn-shop-name{
  margin:0 0 8px !important;
  color:#fff !important;
  font:800 16px/1.3 Poppins,system-ui,sans-serif !important;
}
.pfn-shop-blurb{
  margin:0 0 16px !important;
  color:#9aa3b2 !important;
  font:400 13px/1.55 Poppins,system-ui,sans-serif !important;
}

.pfn-shop-foot{
  margin-top:auto;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.07);
  flex-wrap:wrap;
}
.pfn-shop-price{ color:#fff !important; font:800 18px/1 Poppins,system-ui,sans-serif; }
.pfn-shop-cta{
  display:inline-flex; align-items:center;
  padding:10px 16px;
  border-radius:8px;
  background:var(--pfn-orange);
  color:#fff !important;
  font:700 12.5px/1 Poppins,system-ui,sans-serif;
  text-decoration:none !important;
  min-height:40px;
  transition:background .15s ease;
}
.pfn-shop-cta:hover{ background:#ff8533; color:#fff !important; }

.pfn-shop-note{
  margin:6px 0 0 !important;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#7e879c !important;
  font:400 12px/1.6 Poppins,system-ui,sans-serif !important;
}
.pfn-shop-empty{ color:#9aa3b2 !important; }

/* Two columns at 390px gave 140px-wide cards — far too cramped for an
   image, name, blurb, price and button. Below 480px go single column and
   lay the card out horizontally: image left, detail right. */
@media (max-width:600px) and (min-width:481px){
  .pfn-shop-grid{ grid-template-columns:1fr 1fr; gap:12px; }
  .pfn-shop-body{ padding:12px; }
  .pfn-shop-name{ font-size:14px !important; }
  .pfn-shop-blurb{ font-size:12px !important; }
  .pfn-shop-h{ font-size:19px !important; }
  .pfn-shop-foot{ flex-direction:column; align-items:stretch; }
  .pfn-shop-cta{ justify-content:center; width:100%; }
  .pfn-shop-price{ text-align:center; }
}

@media (max-width:480px){
  .pfn-shop-grid{ grid-template-columns:1fr; gap:14px; }

  .pfn-shop-card{
    display:grid;
    grid-template-columns:104px 1fr;
    align-items:stretch;
  }
  .pfn-shop-media{
    aspect-ratio:auto;
    height:100%;
    min-height:104px;
    padding:10px;
    border-radius:14px 0 0 14px;
  }
  .pfn-shop-body{ padding:13px 14px; }
  .pfn-shop-name{ font-size:15px !important; margin-bottom:6px !important; }
  .pfn-shop-blurb{
    font-size:12.5px !important;
    margin-bottom:10px !important;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .pfn-shop-fresh{ margin-bottom:9px; font-size:10px; }
  .pfn-shop-guide{ margin-bottom:10px; font-size:11.5px; }
  .pfn-shop-foot{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-top:11px;
  }
  .pfn-shop-price{ font-size:16px !important; }
  .pfn-shop-cta{ padding:9px 14px; font-size:12px; min-height:40px; }
  .pfn-shop-h{ font-size:18px !important; }
  .pfn-shop-jump{ gap:6px; margin-bottom:22px; }
  .pfn-shop-jump a{ padding:8px 12px; font-size:12px; }
}

/* very small phones: stack the card so the image is not squeezed */
@media (max-width:360px){
  .pfn-shop-card{ grid-template-columns:1fr; }
  .pfn-shop-media{ border-radius:14px 14px 0 0; min-height:0; aspect-ratio:16/10; }
  .pfn-shop-foot{ flex-direction:column; align-items:stretch; }
  .pfn-shop-cta{ justify-content:center; width:100%; }
}

/* ---- Retired partner ----
   LapakGaming pays only to an Indonesian e-wallet, so it was dropped.
   One footer logo is still emitted by a snippet we could not locate and
   it carries no class, so target it by href. Remove this if it returns. */
.site-footer a[href*="lapakgaming"],
footer a[href*="lapakgaming"],
a[href*="lapakgaming"]{
  display:none !important;
}

/* ---- category jump nav ---- */
.pfn-shop-jump{
  display:flex; flex-wrap:wrap; gap:8px;
  margin:0 0 28px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.pfn-shop-jump a{
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  background:rgba(255,255,255,.03);
  color:#c9ced6 !important;
  font:600 12.5px/1 Poppins,system-ui,sans-serif;
  text-decoration:none !important;
  transition:border-color .16s ease, background .16s ease, color .16s ease;
}
.pfn-shop-jump a:hover{
  border-color:rgba(255,107,0,.55);
  background:rgba(255,107,0,.08);
  color:#fff !important;
}
.pfn-shop-jump a span{
  padding:1px 6px;
  border-radius:10px;
  background:rgba(255,107,0,.18);
  color:var(--pfn-orange);
  font:700 10px/1.5 Poppins,system-ui,sans-serif;
}

/* ---- link back to the guide: what makes this a shop with an opinion ---- */
.pfn-shop-guide{
  display:inline-block;
  margin:0 0 14px;
  color:var(--pfn-orange) !important;
  font:600 12px/1.4 Poppins,system-ui,sans-serif;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,107,0,.35);
  padding-bottom:1px;
  transition:border-color .16s ease;
}
.pfn-shop-guide:hover{ border-color:var(--pfn-orange); }

.pfn-shop-group{ scroll-margin-top:90px; }

/* ============================================================
   SHOP PROMO — rotating, for articles with no matching product.
   Deliberately quieter than a product card: this is a pointer to
   the shop, not a recommendation inside an unrelated article.
   ============================================================ */
.pfn-promo{
  --pfn-orange:#ff6b00;
  display:block;
  margin:30px 0;
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.1);
  border-left:3px solid var(--pfn-orange);
  border-radius:0 12px 12px 0;
  background:#0d1117;
}
.pfn-promo-kicker{
  display:block;
  margin-bottom:11px;
  color:var(--pfn-orange);
  font:800 9.5px/1.4 Poppins,system-ui,sans-serif;
  letter-spacing:1.3px;
}
.pfn-promo-row{ display:flex; align-items:center; gap:14px; }
.pfn-promo-media{
  flex:0 0 72px; width:72px; height:72px;
  display:flex; align-items:center; justify-content:center;
  background:#fff; border-radius:9px; overflow:hidden; padding:7px;
}
.pfn-promo-media img{
  width:100% !important; height:100% !important;
  object-fit:contain !important; display:block;
}
.pfn-promo-body{ flex:1; min-width:0; }
.pfn-promo-name{
  margin:0 0 5px !important;
  color:#fff !important;
  font:700 15px/1.3 Poppins,system-ui,sans-serif !important;
}
.pfn-promo-blurb{
  margin:0 !important;
  color:#9aa3b2 !important;
  font:400 13px/1.55 Poppins,system-ui,sans-serif !important;
}
.pfn-promo-foot{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-top:14px; padding-top:13px;
  border-top:1px solid rgba(255,255,255,.07);
  flex-wrap:wrap;
}
.pfn-promo-price{ color:var(--pfn-orange) !important; font:800 16px/1 Poppins,system-ui,sans-serif; }
.pfn-promo-cta{
  margin-left:auto;
  color:var(--pfn-orange) !important;
  font:700 12.5px/1 Poppins,system-ui,sans-serif;
  text-decoration:none !important;
  border-bottom:1px solid rgba(255,107,0,.4);
  padding-bottom:2px;
}
.pfn-promo-cta:hover{ border-color:var(--pfn-orange); }

@media (max-width:560px){
  .pfn-promo-row{ flex-direction:column; align-items:flex-start; gap:10px; }
  .pfn-promo-foot{ flex-direction:column; align-items:stretch; }
  .pfn-promo-cta{ margin-left:0; }
}

/* ---- retire the old generic partner cards ----
   These were blanket-placed on every article regardless of topic and
   earned nothing. Matched product cards and the shop promo replace them. */
.pfn-aff-card,
.pfn-aff-card-kinguin,
.pfn-aff-card-asus,
.pfn-aff-card-shopee,
.pfn-aff-card-lapak{
  display:none !important;
}


/* The product name is a div, not a heading — Easy Table of Contents scans
   h1-h6, listed our card titles in the TOC and injected the whole TOC
   inside the block. Restore the heading appearance here. */
.pfn-pc-name,
.pfn-promo-name{
  display:block;
}
/* belt and braces: never let a TOC render inside our blocks */
.pfn-pc #ez-toc-container,
.pfn-promo #ez-toc-container,
.pfn-sb #ez-toc-container,
.pfn-pc .ez-toc-title-container,
.pfn-promo .ez-toc-title-container{
  display:none !important;
}

/* ---- per-product freshness ----
   One page-wide date says nothing about the individual listing. Showing
   recency per product is what distinguishes a maintained shop from an
   abandoned one — and flags to us when something needs re-checking. */
.pfn-shop-fresh{
  display:inline-block;
  margin:0 0 12px;
  padding:3px 8px;
  border-radius:4px;
  background:rgba(255,255,255,.05);
  color:#7e879c;
  font:500 10.5px/1.4 Poppins,system-ui,sans-serif;
  letter-spacing:.2px;
}
.pfn-shop-fresh-old{
  background:rgba(255,107,0,.1);
  color:#ff9b5c;
}

/* ============================================================
   SPEC TABLE — [pfn_specs]
   Plain, checkable, sourced. The point is that a reader can
   verify every line, so it is styled for reading, not selling.
   ============================================================ */
.pfn-specs{
  --pfn-orange:#ff6b00;
  margin:28px 0;
  padding:0;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  overflow:hidden;
  background:#0d1117;
}
.pfn-specs-head{
  margin:0 !important;
  padding:13px 16px;
  background:rgba(255,107,0,.08);
  border-bottom:1px solid rgba(255,107,0,.2);
  color:#fff !important;
  font:700 13px/1.4 Poppins,system-ui,sans-serif !important;
  letter-spacing:.2px;
  text-align:left !important;
}
.pfn-specs table{
  width:100%;
  margin:0 !important;
  border-collapse:collapse;
  font:400 13.5px/1.55 Poppins,system-ui,sans-serif;
}
.pfn-specs tr{ border-bottom:1px solid rgba(255,255,255,.06); }
.pfn-specs tr:last-child{ border-bottom:0; }
.pfn-specs th{
  width:38%;
  padding:10px 16px !important;
  text-align:left !important;
  color:#8b92a5 !important;
  font-weight:600 !important;
  background:none !important;
  border:0 !important;
}
.pfn-specs td{
  padding:10px 16px !important;
  color:#e4e8f2 !important;
  border:0 !important;
}
.pfn-specs-when{
  color:#7e879c;
  font-size:11px;
}
.pfn-specs-src{
  margin:0 !important;
  padding:11px 16px;
  border-top:1px solid rgba(255,255,255,.07);
  color:#7e879c !important;
  font:400 11.5px/1.5 Poppins,system-ui,sans-serif !important;
}
.pfn-specs-src a{ color:var(--pfn-orange) !important; }

@media (max-width:480px){
  .pfn-specs table{ font-size:12.5px; }
  .pfn-specs th{ width:44%; padding:9px 12px !important; }
  .pfn-specs td{ padding:9px 12px !important; }
  .pfn-specs-head{ padding:11px 12px; font-size:12.5px !important; }
}

/* ---- approximate USD alongside the RM price ----
   Deliberately quieter than the RM figure: RM is what the retailer
   charges, USD is an estimate for readers outside Malaysia. */
.pfn-price-alt{
  display:inline-block;
  margin-left:7px;
  color:#7e879c !important;
  font:500 11.5px/1 Poppins,system-ui,sans-serif !important;
  letter-spacing:.1px;
  vertical-align:middle;
}
.pfn-sb-price .pfn-price-alt,
.pfn-promo-price .pfn-price-alt{ margin-left:5px; font-size:10.5px !important; }
.pfn-specs .pfn-price-alt{ margin-left:6px; font-size:11px !important; }

@media (max-width:480px){
  .pfn-price-alt{ display:block; margin:3px 0 0; font-size:11px !important; }
}

/* ============================================================
   SHOP: FULL WIDTH
   A sidebar listing the same products beside a grid of those
   products is duplication, and it squeezes the grid. Drop the
   sidebar here and let the shop use the whole column.
   ============================================================ */
body.pfn-fullwidth aside.sidebar,
body.pfn-fullwidth .sidebar{
  display:none !important;
}
body.pfn-fullwidth .content-grid,
body.pfn-fullwidth main > .container,
body.pfn-fullwidth .site-main,
body.pfn-fullwidth main{
  grid-template-columns:1fr !important;
  max-width:1100px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.pfn-fullwidth article,
body.pfn-fullwidth .entry-content{
  max-width:none !important;
  width:100% !important;
}
/* with the extra room, show more per row */
body.pfn-fullwidth .pfn-shop-grid{
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
}

/* ---- retire the old partner sticky ----
   It pointed off-site to a storefront. Ours points at /deals/. */
html body .pfn-sticky-side,
html body [class*="pfn-sticky-side"],
html body div[class*="pfn-sticky-side"]{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:0 !important;
  height:0 !important;
  overflow:hidden !important;
}

/* ============================================================
   STICKY SHOP CARD
   ============================================================ */
.pfn-stick{
  --pfn-orange:#ff6b00;
  position:fixed;
  right:18px; bottom:18px;
  z-index:9990;
  width:290px;
  padding:14px 16px 15px;
  border:1px solid rgba(255,255,255,.12);
  border-left:3px solid var(--pfn-orange);
  border-radius:12px;
  background:#0d1117;
  box-shadow:0 10px 34px rgba(0,0,0,.55);
  opacity:0;
  transform:translateY(14px);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}
.pfn-stick.is-in{ opacity:1; transform:translateY(0); pointer-events:auto; }
.pfn-stick[hidden]{ display:none; }

.pfn-stick-x{
  position:absolute; top:7px; right:9px;
  width:26px; height:26px;
  padding:0;
  border:0; border-radius:6px;
  background:none;
  color:#7e879c;
  font:400 19px/1 system-ui,sans-serif;
  cursor:pointer;
}
.pfn-stick-x:hover{ color:#fff; background:rgba(255,255,255,.07); }

.pfn-stick-tag{
  display:block;
  margin-bottom:10px;
  color:var(--pfn-orange);
  font:800 9px/1.4 Poppins,system-ui,sans-serif;
  letter-spacing:1.3px;
}
.pfn-stick-row{ display:flex; align-items:center; gap:11px; margin-bottom:12px; }
.pfn-stick-media{
  flex:0 0 44px; width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  background:#fff; border-radius:8px; overflow:hidden; padding:4px;
}
.pfn-stick-media img{ width:100% !important; height:100% !important; object-fit:contain !important; display:block; }
.pfn-stick-text{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.pfn-stick-name{
  color:#e4e8f2;
  font:600 12.5px/1.3 Poppins,system-ui,sans-serif;
}
.pfn-stick-price{ color:var(--pfn-orange); font:800 13px/1 Poppins,system-ui,sans-serif; }

.pfn-stick-cta{
  display:block;
  padding:11px 12px;
  border-radius:8px;
  background:var(--pfn-orange);
  color:#fff !important;
  font:700 12.5px/1 Poppins,system-ui,sans-serif;
  text-align:center;
  text-decoration:none !important;
  min-height:42px;
  line-height:20px;
  transition:background .15s ease;
}
.pfn-stick-cta:hover{ background:#ff8533; color:#fff !important; }

@media (max-width:600px){
  .pfn-stick{
    left:12px; right:12px; bottom:12px;
    width:auto;
    padding:12px 14px 13px;
  }
  .pfn-stick-name{ font-size:12px; }
}
