/* ============ PBF WHOLESALE ============ */
:root{
  --ws-gold:#9a7b45; --ws-gold2:#c4a46a; --ws-dark:#14110e; --ws-ink:#1c1916;
  --ws-muted:#6b635a; --ws-bg:#f4f1ea; --ws-line:#e6dfd4; --ws-card:#fffdf9;
  --ws-gt:#8a6d3b; --ws-white:#ffffff;
}
.pbf-ws{ background:var(--ws-bg); color:var(--ws-ink); font-family:Helvetica,Arial,sans-serif; line-height:1.6; overflow-x:hidden; }
.pbf-ws *{ box-sizing:border-box; }
.pbf-ws-inner{ max-width:1200px; margin:0 auto; padding:0 20px; }
.pbf-ws h1,.pbf-ws h2,.pbf-ws h3{ font-family:Georgia,'Times New Roman',serif; color:var(--ws-dark); }

/* ---- Bag indicator bar ---- */
.pbf-ws-bar{ background:var(--ws-dark); border-bottom:2px solid var(--ws-gold); }
.pbf-ws-bar .pbf-ws-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:12px; padding-bottom:12px; }
.pbf-ws-bar-brand{ color:#d8c9a8; font-size:11px; letter-spacing:3px; font-family:Georgia,serif; }
.pbf-ws-baglink{ display:inline-flex; align-items:center; gap:9px; color:#f2e8d5; text-decoration:none; font-size:13px; letter-spacing:1px; border:1px solid var(--ws-gold); padding:8px 16px; border-radius:2px; transition:background .15s ease,color .15s ease; }
.pbf-ws-baglink:hover{ background:var(--ws-gold); color:var(--ws-dark); }
.pbf-ws-bagico{ width:16px; height:16px; display:inline-block; }
.pbf-ws-bagcount{ background:var(--ws-gold); color:var(--ws-dark); font-weight:700; border-radius:10px; min-width:22px; height:22px; line-height:22px; text-align:center; font-size:12px; padding:0 6px; }
.pbf-ws-baglink:hover .pbf-ws-bagcount{ background:var(--ws-dark); color:var(--ws-gold); }

/* ---- Hero ---- */
.pbf-ws-hero{ background:var(--ws-dark); position:relative; padding:64px 0 70px; border-bottom:4px solid var(--ws-gold); }
.pbf-ws-hero::after{ content:""; position:absolute; inset:auto 0 0 0; height:1px; background:linear-gradient(90deg,transparent,var(--ws-gold2),transparent); opacity:.5; }
.pbf-ws-kicker{ color:var(--ws-gold2); letter-spacing:5px; font-size:12px; margin:0 0 10px; font-family:Georgia,serif; text-transform:uppercase; }
.pbf-ws .pbf-ws-hero-h1, h1.pbf-ws-hero-h1{ font-size:clamp(40px,7vw,72px); letter-spacing:8px; margin:0 0 6px; color:#f5efe2; font-weight:400; line-height:1.05; }
.pbf-ws-hero-sub{ color:#c9bda4; font-size:clamp(14px,2.2vw,19px); letter-spacing:2px; margin:0 0 26px; text-transform:uppercase; }
.pbf-ws-minbox{ display:inline-flex; align-items:center; gap:18px; border:1px solid var(--ws-gold); padding:14px 22px; margin-bottom:28px; background:rgba(154,123,69,.08); }
.pbf-ws-minlabel{ color:#d8c9a8; font-size:12px; letter-spacing:2px; text-transform:uppercase; }
.pbf-ws-minval{ font-family:Georgia,serif; color:#f5efe2; font-size:clamp(22px,3.4vw,34px); letter-spacing:1px; }
.pbf-ws-ctabtn{ display:inline-block; background:var(--ws-gold); color:var(--ws-dark); text-decoration:none; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:15px 34px; border-radius:2px; border:1px solid var(--ws-gold); font-size:13px; transition:background .15s ease; cursor:pointer; }
.pbf-ws-ctabtn:hover{ background:var(--ws-gold2); border-color:var(--ws-gold2); color:var(--ws-dark); }
.pbf-ws-ctabtn:active{ transform:translateY(1px); }

/* ---- Sections ---- */
.pbf-ws-section{ padding:52px 0; }
.pbf-ws-section-alt{ background:#efe9de; border-top:1px solid var(--ws-line); border-bottom:1px solid var(--ws-line); }
.pbf-ws-narrow{ max-width:760px; }
.pbf-ws-h2{ font-size:clamp(24px,3.6vw,32px); letter-spacing:1px; margin:0 0 16px; }
.pbf-ws-h1{ font-size:clamp(28px,4.4vw,44px); letter-spacing:1px; margin:0 0 10px; }
.pbf-ws-lede{ font-size:16px; color:var(--ws-ink); margin:0 0 14px; }
.pbf-ws-lede a,.pbf-ws-final a{ color:var(--ws-gt); font-weight:600; }
.pbf-ws-sect-sub{ color:var(--ws-muted); margin:0 0 26px; font-size:15px; }
.pbf-ws-inquiry-note{ background:var(--ws-card); border-left:3px solid var(--ws-gold); padding:16px 18px; }
.pbf-ws-steps{ margin:18px 0 0; padding:0; list-style:none; counter-reset:step; }
.pbf-ws-steps li{ counter-increment:step; position:relative; padding:0 0 14px 44px; color:var(--ws-ink); }
.pbf-ws-steps li::before{ content:counter(step); position:absolute; left:0; top:0; width:30px; height:30px; border:1px solid var(--ws-gold); border-radius:50%; color:var(--ws-gt); font-family:Georgia,serif; display:flex; align-items:center; justify-content:center; font-size:15px; }

/* ---- Category grid ---- */
.pbf-ws-catgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; }
/* v1.9.3: image-free category buttons — dark panel, gold border, matching site CTAs */
.pbf-ws-catcard{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; text-align:center; background:var(--ws-dark); border:1px solid var(--ws-gold); border-radius:2px; padding:22px 18px; text-decoration:none; min-height:92px; transition:background .18s ease,border-color .18s ease,transform .15s ease,box-shadow .18s ease; }
.pbf-ws-catcard:hover{ background:var(--ws-gold); border-color:var(--ws-gold2); transform:translateY(-2px); box-shadow:0 8px 20px rgba(20,17,14,.22); }
.pbf-ws-catname{ font-family:Georgia,'Times New Roman',serif; font-size:15px; color:#f5efe2; letter-spacing:2px; text-transform:uppercase; line-height:1.35; transition:color .18s ease; }
.pbf-ws-catcount{ color:var(--ws-gold2); font-size:11px; letter-spacing:2px; text-transform:uppercase; transition:color .18s ease; }
.pbf-ws-catcard:hover .pbf-ws-catname{ color:var(--ws-dark); }
.pbf-ws-catcard:hover .pbf-ws-catcount{ color:var(--ws-dark); }

/* ---- Breadcrumb / count ---- */
.pbf-ws-crumb{ font-size:12px; letter-spacing:1px; color:var(--ws-muted); margin:26px 0 14px; text-transform:uppercase; }
.pbf-ws-crumb a{ color:var(--ws-gt); text-decoration:none; }
.pbf-ws-countline{ color:var(--ws-muted); margin:0 0 24px; font-size:14px; }
.pbf-ws-countline a{ color:var(--ws-gt); }

/* ---- Product grid (category view) ---- */
.pbf-ws-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px; }
.pbf-ws-card{ background:var(--ws-card); border:1px solid var(--ws-line); display:flex; flex-direction:column; transition:border-color .15s ease,box-shadow .15s ease; }
.pbf-ws-card:hover{ border-color:var(--ws-gold); box-shadow:0 6px 18px rgba(20,17,14,.08); }
.pbf-ws-card-media{ display:block; aspect-ratio:1/1; background:#efe9de; overflow:hidden; }
.pbf-ws-card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.pbf-ws-card:hover .pbf-ws-card-media img{ transform:scale(1.04); }
.pbf-ws-noimg-sm{ display:block; width:100%; height:100%; background:
  linear-gradient(135deg,#efe9de,#e2d9c8); position:relative; }
.pbf-ws-card-body{ padding:16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.pbf-ws-card-name{ font-family:Georgia,serif; font-size:16px; color:var(--ws-dark); text-decoration:none; letter-spacing:.3px; line-height:1.35; }
.pbf-ws-card-name:hover{ color:var(--ws-gt); }
.pbf-ws-card-desc{ color:var(--ws-muted); font-size:13px; margin:0; flex:1; }
.pbf-ws-card-actions{ display:flex; gap:8px; margin-top:6px; }
.pbf-ws-addbtn{ flex:1; background:var(--ws-dark); color:#f2e8d5; border:1px solid var(--ws-dark); padding:10px 12px; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; cursor:pointer; transition:background .15s ease; border-radius:2px; white-space:nowrap; }
.pbf-ws-addbtn:hover{ background:var(--ws-gold); border-color:var(--ws-gold); color:var(--ws-dark); }
.pbf-ws-addbtn.is-added{ background:#2e7d32 !important; border-color:#2e7d32 !important; color:#fff !important; }
.pbf-ws-viewbtn{ background:transparent; border:1px solid var(--ws-line); color:var(--ws-muted); text-decoration:none; padding:10px 14px; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; border-radius:2px; }
.pbf-ws-viewbtn:hover{ border-color:var(--ws-gold); color:var(--ws-gt); }
.pbf-ws-addbtn-sm{ flex:1; }

/* ---- Product detail ---- */
.pbf-ws-prod-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; padding:10px 0 40px; align-items:start; }
.pbf-ws-prod-media .pbf-ws-prod-main{ width:100%; aspect-ratio:1/1; object-fit:cover; background:#efe9de; border:1px solid var(--ws-line); }
.pbf-ws-noimg{ aspect-ratio:1/1; background:#efe9de; border:1px solid var(--ws-line); display:flex; align-items:center; justify-content:center; color:var(--ws-muted); font-size:13px; }
.pbf-ws-prod-thumbs{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.pbf-ws-prod-thumbs img{ width:56px; height:56px; object-fit:cover; border:1px solid var(--ws-line); cursor:pointer; }
.pbf-ws-prod-thumbs img:hover{ border-color:var(--ws-gold); }
.pbf-ws-shortdesc{ color:var(--ws-ink); margin:14px 0; }
.pbf-ws-variants{ margin:18px 0; border-top:1px solid var(--ws-line); border-bottom:1px solid var(--ws-line); padding:6px 0; }
.pbf-ws-vopt{ display:flex; align-items:center; gap:10px; padding:9px 6px; cursor:pointer; }
.pbf-ws-vopt input{ accent-color:var(--ws-gold); }
.pbf-ws-vlabel{ font-size:14px; color:var(--ws-ink); }
.pbf-ws-vopt:has(input:checked) .pbf-ws-vlabel{ color:var(--ws-gt); font-weight:600; }
.pbf-ws-variant-note{ color:var(--ws-muted); font-size:12px; margin:8px 6px 0; }
.pbf-ws-qtyrow{ display:flex; gap:12px; align-items:stretch; margin:18px 0 8px; flex-wrap:wrap; }
.pbf-ws-qty{ display:inline-flex; align-items:stretch; border:1px solid var(--ws-line); border-radius:2px; overflow:hidden; background:var(--ws-card); }
.pbf-ws-qtybtn{ width:42px; background:var(--ws-card); border:none; font-size:18px; color:var(--ws-ink); cursor:pointer; }
.pbf-ws-qtybtn:hover{ background:var(--ws-bg); }
.pbf-ws-qtyinput{ width:64px; border:none; border-left:1px solid var(--ws-line); border-right:1px solid var(--ws-line); text-align:center; font-size:15px; padding:10px 0; }
.pbf-ws-qtyinput:focus{ outline:none; }
.pbf-ws-qty-sm .pbf-ws-qtybtn{ width:34px; font-size:16px; }
.pbf-ws-qty-sm .pbf-ws-qtyinput{ width:54px; padding:7px 0; font-size:14px; }
.pbf-ws-qtyrow .pbf-ws-addbtn{ flex:1; padding:12px 22px; font-size:12px; }
.pbf-ws-inbag{ color:#2e7d32; font-size:13px; margin:6px 0 14px; }
.pbf-ws-inbag a{ color:#2e7d32; }
.pbf-ws-desc{ margin-top:18px; color:var(--ws-ink); font-size:15px; }
.pbf-ws-privacy{ margin-top:20px; padding:12px 14px; background:var(--ws-card); border-left:3px solid var(--ws-gold); color:var(--ws-muted); font-size:13px; }

/* ---- Pagination ---- */
.pbf-ws-paginate{ display:flex; gap:8px; margin-top:26px; flex-wrap:wrap; }
.pbf-ws-pagenum{ border:1px solid var(--ws-line); color:var(--ws-ink); text-decoration:none; width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; font-size:14px; border-radius:2px; background:var(--ws-card); }
.pbf-ws-pagenum:hover{ border-color:var(--ws-gold); }
.pbf-ws-pagenum.is-current{ background:var(--ws-dark); color:#f2e8d5; border-color:var(--ws-dark); }

/* ============ BAG PAGE ============ */
.pbf-ws-bagwrap{ padding:30px 20px 60px; }
.pbf-ws-bagsub{ color:var(--ws-muted); margin:0 0 26px; max-width:760px; font-size:14px; }
.pbf-ws-baggrid{ display:grid; grid-template-columns:1.1fr .9fr; gap:34px; align-items:start; }
.pbf-ws-h2{ font-size:22px; }
.pbf-ws-baglist{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-direction:column; gap:12px; }
.pbf-ws-bagitem{ display:flex; gap:14px; background:var(--ws-card); border:1px solid var(--ws-line); padding:14px; align-items:flex-start; }
.pbf-ws-bagthumb{ width:64px; height:64px; flex-shrink:0; background:#efe9de; display:block; }
.pbf-ws-bagthumb img{ width:100%; height:100%; object-fit:cover; }
.pbf-ws-bagmeta{ flex:1; min-width:0; }
.pbf-ws-bagname{ font-family:Georgia,serif; font-size:16px; color:var(--ws-dark); text-decoration:none; line-height:1.3; display:block; }
.pbf-ws-bagname:hover{ color:var(--ws-gt); }
.pbf-ws-bagvar{ color:var(--ws-muted); font-size:12px; margin:4px 0 8px; }
.pbf-ws-removebtn{ width:30px; height:30px; border:1px solid var(--ws-line); background:transparent; color:var(--ws-muted); font-size:18px; line-height:1; cursor:pointer; flex-shrink:0; border-radius:2px; }
.pbf-ws-removebtn:hover{ border-color:#b23b3b; color:#b23b3b; }
.pbf-ws-bagnote{ color:var(--ws-muted); font-size:13px; font-style:italic; }
.pbf-ws-bagempty{ background:var(--ws-card); border:1px dashed var(--ws-gold2); padding:36px; text-align:center; }
.pbf-ws-bagempty .pbf-ws-ctabtn{ margin-top:12px; }

/* ---- Form ---- */
.pbf-ws-formmin{ font-size:13px; color:var(--ws-muted); margin:0 0 18px; padding:10px 14px; background:var(--ws-card); border-left:3px solid var(--ws-gold); }
.pbf-ws-field{ margin:0 0 14px; }
.pbf-ws-field label{ display:block; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--ws-ink); font-weight:600; margin-bottom:6px; }
.pbf-ws-field .req{ color:#b23b3b; }
.pbf-ws-field .opt{ color:var(--ws-muted); text-transform:none; letter-spacing:0; font-weight:400; }
.pbf-ws-field input,.pbf-ws-field textarea{ width:100%; border:1px solid var(--ws-line); background:var(--ws-card); padding:11px 12px; font-size:14px; font-family:inherit; color:var(--ws-ink); border-radius:2px; }
.pbf-ws-field input:focus,.pbf-ws-field textarea:focus{ outline:none; border-color:var(--ws-gold); }
.pbf-ws-field small{ display:block; color:var(--ws-muted); font-size:11px; margin-top:5px; }
.pbf-ws-field input.invalid,.pbf-ws-field textarea.invalid{ border-color:#b23b3b; }
.pbf-ws-hp{ position:absolute !important; left:-9999px !important; }
.pbf-ws-formmsg{ min-height:20px; margin:0 0 10px; }
.pbf-ws-formmsg .pbf-ws-ok{ color:#2e7d32; font-size:14px; }
.pbf-ws-formmsg .pbf-ws-err{ color:#b23b3b; font-size:14px; }
.pbf-ws-formsubmit .pbf-ws-submit{ width:100%; margin-top:4px; }
.pbf-ws-formsubmit .pbf-ws-submit:disabled{ opacity:.6; cursor:wait; }
.pbf-ws-formfine{ color:var(--ws-muted); font-size:12px; margin-top:12px; }
.pbf-ws-formfine a{ color:var(--ws-gt); }

/* ---- Success / error boxes ---- */
.pbf-ws-success{ background:#f2f7f2; border:1px solid #b7d4b7; border-left:4px solid #2e7d32; padding:20px 24px; margin:0 0 26px; }
.pbf-ws-success p{ margin:0 0 6px; font-size:15px; }
.pbf-ws-errorbox{ background:#fbf1f1; border:1px solid #e5bcbc; border-left:4px solid #b23b3b; padding:16px 20px; margin:0 0 26px; font-size:14px; color:#7a2b2b; }
.pbf-ws-empty{ color:var(--ws-muted); }

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .pbf-ws-prod-grid,.pbf-ws-baggrid{ grid-template-columns:1fr; gap:26px; }
  .pbf-ws-bar .pbf-ws-inner{ padding-top:10px; padding-bottom:10px; }
  .pbf-ws-bar-brand{ font-size:9px; letter-spacing:2px; }
}
@media (max-width:600px){
  .pbf-ws-hero{ padding:44px 0 50px; }
  .pbf-ws-hero-h1{ letter-spacing:5px; }
  .pbf-ws-minbox{ width:100%; justify-content:space-between; }
  .pbf-ws-section{ padding:40px 0; }
  .pbf-ws-grid{ grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
  .pbf-ws-catgrid{ grid-template-columns:1fr 1fr; gap:10px; }
  .pbf-ws-catcard{ min-height:78px; padding:16px 10px; }
  .pbf-ws-catname{ font-size:13px; letter-spacing:1.5px; }
  .pbf-ws-card-actions{ flex-direction:column; }
  .pbf-ws-qtyrow .pbf-ws-addbtn{ width:100%; }
  .pbf-ws-bar-brand{ display:none; }
}


/* ============ v1.9.0 — professional polish ============ */
/* Smooth in-page navigation (this stylesheet loads only on wholesale pages) */
html{ scroll-behavior:smooth; }
#pbf-ws-categories,[id^="wscat-"]{ scroll-margin-top:22px; }

/* ---- Top bar: brand is a link, bag button always right, never stacks left ---- */
.pbf-ws-bar .pbf-ws-inner{ flex-wrap:nowrap; }
.pbf-ws-bar-brand{ text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
a.pbf-ws-bar-brand:hover{ color:#f2e8d5; }
.pbf-ws-baglink{ flex:0 0 auto; white-space:nowrap; }
.pbf-ws-bagico{ width:17px; height:17px; flex:0 0 auto; }

/* ---- Hero: centred, dual CTA ---- */
.pbf-ws-hero-center{ text-align:center; }
.pbf-ws-herocta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.pbf-ws-ctabtn--ghost{ background:transparent; color:#f2e8d5; }
.pbf-ws-ctabtn--ghost:hover{ background:var(--ws-gold); color:var(--ws-dark); }

/* ---- Category cards with imagery ---- */
/* v1.9.3: legacy category image styles removed (cards are now image-free buttons) */

/* ---- Products-by-category sections on the wholesale home ---- */
.pbf-ws-homeprods .pbf-ws-prodsec{ margin:0 0 48px; }
.pbf-ws-homeprods .pbf-ws-prodsec:last-child{ margin-bottom:0; }
.pbf-ws-prodsec-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; border-bottom:1px solid var(--ws-line); padding-bottom:10px; margin-bottom:18px; }
.pbf-ws-h3{ font-family:Georgia,serif; font-size:clamp(19px,2.8vw,24px); letter-spacing:.5px; margin:0; color:var(--ws-dark); font-weight:400; }
.pbf-ws-viewall{ color:var(--ws-gt); font-size:12px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; text-decoration:none; white-space:nowrap; }
.pbf-ws-viewall:hover{ text-decoration:underline; }

/* ---- Mobile: keep the bag button on the right, show a short brand ---- */
@media (max-width:600px){
  .pbf-ws-bar-brand{ display:inline-block; font-size:9px; letter-spacing:1.5px; }
  .pbf-ws-bar-brand .pbf-ws-bar-sep{ display:none; }
  .pbf-ws-baglink{ padding:7px 12px; font-size:12px; }
  .pbf-ws-herocta{ flex-direction:column; }
  .pbf-ws-herocta .pbf-ws-ctabtn{ width:100%; }
  .pbf-ws-prodsec-head{ flex-direction:column; gap:4px; }
}
@media (max-width:420px){
  .pbf-ws-bar-brand{ font-size:0; }               /* hide long name…      */
  .pbf-ws-bar-brand .pbf-ws-bar-ws{ font-size:10px; letter-spacing:2px; } /* …keep "WHOLESALE" */
}

/* ============ v1.9.1 — critical fix ============ */
/* The page wrappers must always be normal block containers. This guards
   against any selector collision (the old .pbf-ws-page pagination rule
   collapsed the entire wholesale page to a 38px square). */
div.pbf-ws.pbf-ws-page, div.pbf-ws.pbf-ws-bagpage{
  display:block; width:auto; height:auto; min-height:60vh;
  border:0; overflow:visible; overflow-x:clip;
}

/* v1.9.2: hero headings must stay light on the dark hero (specificity guard vs .pbf-ws h1 rule) */
.pbf-ws .pbf-ws-hero h1, .pbf-ws .pbf-ws-hero h2{ color:#f5efe2; }

/* v1.9.4: editorial/SEO content on the wholesale home */
.pbf-ws-article{ max-width:860px; margin:0 auto; }
.pbf-ws-article h3{ font-size:21px; margin:32px 0 12px; letter-spacing:.5px; }
.pbf-ws-article p{ color:var(--ws-ink); font-size:15.5px; line-height:1.8; margin:0 0 16px; }
.pbf-ws-article a{ color:var(--ws-gt); text-decoration:underline; text-underline-offset:3px; }
.pbf-ws-article a:hover{ color:var(--ws-gold); }
.pbf-ws-article-list{ list-style:none; margin:0 0 18px; padding:0; }
.pbf-ws-article-list li{ position:relative; padding:0 0 0 26px; margin:0 0 12px; color:var(--ws-ink); font-size:15.5px; line-height:1.7; }
.pbf-ws-article-list li::before{ content:"—"; position:absolute; left:0; color:var(--ws-gold); }
