/* Plastic Footprint Directory v3 — Thriving Sustainably
   Brand: teal #00675C, clay #A67763, brown #5D4439, cream #F6F4ED, ink #242424 */

.pfd3 { background:#F6F4ED; color:#242424; font-family:'Hanken Grotesk',system-ui,sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
.pfd3 *, .pfd3 *::before, .pfd3 *::after { box-sizing:border-box; }
.pfd3 img { display:block; max-width:100%; }
.pfd3 a { color:#00675C; text-decoration:none; }
.pfd3 a:hover { color:#004d45; }
.pfd3 ::selection { background:#00675C; color:#F6F4ED; }
.pfd3 h1, .pfd3 h2, .pfd3 h3 { margin:0; }
.pfd3 [hidden] { display:none !important; }

/* --- shared bits --- */
.pfd3-kicker { font-size:14px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; }
.pfd3-kicker--teal { color:#00675C; margin-bottom:20px; }
.pfd3-kicker--clay { color:#A67763; font-size:14px; margin-bottom:16px; }
.pfd3-h2 { font-family:'Newsreader',serif; font-weight:500; font-size:clamp(32px,4.6vw,48px); line-height:1.1; letter-spacing:-0.01em; margin:0 0 16px; }
.pfd3-lede { font-size:18px; line-height:1.65; color:#5f5a4e; margin:0; }
.pfd3-btn { font-family:'Hanken Grotesk',sans-serif; font-weight:700; font-size:15px; border:none; border-radius:999px; cursor:pointer; }
.pfd3-btn--light { background:#fff; color:#00675C; padding:15px 34px; box-shadow:0 14px 34px rgba(36,36,36,.2); }
.pfd3-btn--teal { background:#00675C; color:#fff; padding:14px 32px; }

/* --- hero --- */
.pfd3-hero { position:relative; background:#00675C; color:#F6F4ED; overflow:hidden; padding:clamp(72px,11vw,132px) clamp(20px,6vw,96px) clamp(80px,11vw,128px); }
.pfd3-hero__blob { position:absolute; border-radius:50%; pointer-events:none; }
.pfd3-hero__blob--1 { top:-150px; right:-120px; width:460px; height:460px; background:#A67763; opacity:.20; }
.pfd3-hero__blob--2 { bottom:-220px; left:-150px; width:480px; height:480px; background:#0a7a6d; opacity:.55; }
.pfd3-hero__blob--3 { top:40px; left:-30px; width:190px; height:190px; background:#5D4439; opacity:.15; }
.pfd3-hero__watermark { position:absolute; top:50%; left:50%; transform:translate(-50%,-52%); width:clamp(340px,44vw,560px); opacity:.09; pointer-events:none; }
.pfd3-hero__inner { position:relative; max-width:860px; margin:0 auto; text-align:center; }
.pfd3-hero__kicker { font-size:clamp(16px,2.3vw,23px); letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:rgba(246,244,237,.82); margin-bottom:clamp(20px,3vw,30px); }
.pfd3-hero__title { font-family:'Newsreader',serif; font-weight:500; font-size:clamp(40px,6.6vw,74px); line-height:1.05; letter-spacing:-0.015em; margin:0 0 clamp(20px,3vw,28px); color:#F6F4ED; }
.pfd3-hero__sub { font-size:clamp(17px,1.9vw,20px); line-height:1.6; color:rgba(246,244,237,.85); max-width:620px; margin:0 auto clamp(30px,5vw,44px); }
.pfd3-search { display:flex; align-items:center; gap:8px; background:#fff; border-radius:999px; padding:8px 8px 8px 22px; max-width:600px; margin:0 auto; box-shadow:0 20px 50px rgba(36,36,36,.22); }
.pfd3-search svg { flex:none; }
.pfd3-search input { flex:1; border:none; outline:none; background:transparent; font-family:'Hanken Grotesk',sans-serif; font-size:16px; color:#242424; min-width:0; }
.pfd3-search__btn { flex:none; background:#00675C; color:#fff; font-family:'Hanken Grotesk',sans-serif; font-weight:700; font-size:15px; padding:13px 26px; border-radius:999px; border:none; cursor:pointer; }
.pfd3-search__btn:hover { background:#004d45; }
.pfd3-hero__stats { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(28px,6vw,64px); margin-top:clamp(40px,6vw,60px); }
.pfd3-hero__stat-n { font-family:'Newsreader',serif; font-size:clamp(34px,5vw,46px); font-weight:500; }
.pfd3-hero__stat-l { font-size:15.5px; letter-spacing:.04em; color:rgba(246,244,237,.8); margin-top:2px; }
.pfd3-hero__stat-rule { width:1px; background:rgba(246,244,237,.25); align-self:stretch; }

/* --- score scale --- */
.pfd3-scale { max-width:1160px; margin:0 auto; padding:clamp(56px,8vw,88px) clamp(20px,6vw,96px) clamp(24px,4vw,40px); }
.pfd3-scale__bar { display:flex; gap:clamp(5px,0.7vw,8px); }
.pfd3-scale__cell { flex:1; height:clamp(52px,7vw,72px); border-radius:10px; display:grid; place-items:center; color:#fff; font-family:'Newsreader',serif; font-weight:600; font-size:clamp(15px,2vw,21px); }
.pfd3-scale__note { margin:18px 0 0; font-size:17px; color:#5f5a4e; }
.pfd3-scale__note > span { color:#00675C; font-weight:700; }
.pfd3-scale__note a { font-weight:700; margin-left:6px; }

/* --- category tiles --- */
.pfd3-cats { max-width:1280px; margin:0 auto; padding:clamp(44px,6vw,72px) clamp(20px,6vw,96px) clamp(72px,10vw,120px); }
.pfd3-cats__head { text-align:center; max-width:600px; margin:0 auto clamp(40px,5vw,60px); }
.pfd3-cats__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:clamp(22px,3vw,38px); }
.pfd3-cat { cursor:pointer; }
.pfd3-cat:focus-visible { outline:3px solid #00675C; outline-offset:4px; border-radius:24px; }
.pfd3-cat__media { aspect-ratio:4/5; border-radius:24px; overflow:hidden; position:relative; background:#e2ebe7; }
.pfd3-cat__media > img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.pfd3-cat:hover .pfd3-cat__media > img { transform:scale(1.04); }
.pfd3-cat__placeholder { position:absolute; inset:0; display:grid; place-items:center; }
.pfd3-cat__placeholder img { width:60%; opacity:.5; }
.pfd3-cat__meta { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:18px; }
.pfd3-cat__meta h3 { font-family:'Newsreader',serif; font-weight:500; font-size:24px; color:#242424; }
.pfd3-cat__meta span { font-size:15.5px; color:#8a8578; font-weight:500; white-space:nowrap; }

/* --- listing hero --- */
.pfd3-lhero { position:relative; background:#00675C; color:#F6F4ED; overflow:hidden; padding:clamp(60px,8vw,104px) clamp(20px,6vw,96px); }
.pfd3-lhero__blob--1 { top:-120px; left:-100px; width:360px; height:360px; background:#A67763; opacity:.20; }
.pfd3-lhero__blob--2 { bottom:-170px; right:-120px; width:420px; height:420px; background:#0a7a6d; opacity:.55; }
.pfd3-lhero__blob--3 { bottom:40px; left:8%; width:150px; height:150px; background:#5D4439; opacity:.14; }
.pfd3-lhero__inner { position:relative; max-width:720px; margin:0 auto; text-align:center; }
.pfd3-lhero__title { font-family:'Newsreader',serif; font-weight:500; font-size:clamp(34px,5.4vw,60px); line-height:1.06; letter-spacing:-0.01em; margin:0 0 20px; color:#F6F4ED; }
.pfd3-lhero__blurb { font-size:clamp(16px,1.8vw,18px); line-height:1.6; color:rgba(246,244,237,.85); max-width:560px; margin:0 auto clamp(28px,4vw,40px); }

/* --- product grid & cards --- */
.pfd3-listing { max-width:1280px; margin:0 auto; padding:clamp(48px,7vw,84px) clamp(20px,6vw,96px) clamp(72px,10vw,120px); }
.pfd3-grid { display:grid; gap:clamp(24px,3vw,40px); grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); }
.pfd3[data-columns="4"] .pfd3-grid { grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.pfd3-card { background:#fff; border:1px solid #e3ded1; border-radius:26px; padding:clamp(14px,1.6vw,18px); display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.pfd3-card:hover { transform:translateY(-5px); box-shadow:0 24px 50px rgba(36,36,36,.13); }
.pfd3-card__media { position:relative; aspect-ratio:4/3; border-radius:18px; overflow:hidden; background:#ece7da; }
.pfd3-card__media > img { width:100%; height:100%; object-fit:cover; }
.pfd3-card__scorepill { position:absolute; top:14px; left:14px; display:flex; align-items:center; gap:10px; background:#fff; border-radius:999px; padding:6px 15px 6px 6px; box-shadow:0 8px 22px rgba(36,36,36,.15); }
.pfd3-card__ring { width:38px; height:38px; border-radius:50%; border:3px solid #00675C; display:grid; place-items:center; font-family:'Newsreader',serif; font-weight:600; font-size:18px; }
.pfd3-card__scorepill > span { font-weight:700; font-size:13.5px; color:#242424; }
.pfd3-card__price { position:absolute; top:14px; right:14px; background:#fff; border-radius:999px; padding:8px 15px; box-shadow:0 8px 22px rgba(36,36,36,.15); font-weight:700; font-size:14px; color:#00675C; }
.pfd3-card__verified { position:absolute; bottom:14px; left:14px; display:inline-flex; align-items:center; gap:6px; background:#00675C; color:#fff; border-radius:999px; padding:7px 13px; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.pfd3-card__body { padding:20px 8px 8px; display:flex; flex-direction:column; flex:1; }
.pfd3-card__kicker { font-size:13px; letter-spacing:.11em; text-transform:uppercase; color:#00675C; font-weight:700; margin-bottom:9px; }
.pfd3-card__name { font-family:'Newsreader',serif; font-weight:500; font-size:23px; line-height:1.2; margin:0 0 14px; color:#242424; min-height:56px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pfd3-card__tags { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:14px; min-height:34px; align-content:flex-start; }
.pfd3-card__tags > span { font-size:13.5px; font-weight:600; color:#5D4439; background:#F6F4ED; border:1px solid #e3ded1; padding:5px 11px; border-radius:999px; }
.pfd3-card__desc { margin:0 0 20px; font-size:16px; line-height:1.6; color:#5f5a4e; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; min-height:128px; }
.pfd3-card__actions { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pfd3-btn--shop { background:#00675C; color:#fff !important; font-weight:700; font-size:15px; padding:11px 22px; border-radius:999px; display:inline-block; }
.pfd3-btn--shop:hover { background:#004d45; }
.pfd3-card__ratings { margin-left:auto; font-weight:700; font-size:15px; color:#242424 !important; border-bottom:2px solid #A67763; padding-bottom:1px; }

/* --- empty state --- */
.pfd3-empty { text-align:center; padding:clamp(48px,8vw,88px) 20px; background:#fff; border:1px solid #e3ded1; border-radius:26px; }
.pfd3-empty > img { width:104px; height:auto; margin:0 auto 24px; }
.pfd3-empty h3 { font-family:'Newsreader',serif; font-weight:500; font-size:26px; margin:0 0 12px; color:#242424; }
.pfd3-empty p { font-size:17px; line-height:1.6; color:#5f5a4e; max-width:420px; margin:0 auto 26px; }

/* --- footer --- */
.pfd3-footer { background:#00675C; color:#F6F4ED; padding:clamp(56px,8vw,88px) clamp(20px,6vw,96px) clamp(36px,4vw,48px); }
.pfd3-footer__inner { max-width:1160px; margin:0 auto; }
.pfd3-footer__top { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(20px,4vw,40px); justify-content:space-between; padding-bottom:clamp(36px,5vw,52px); border-bottom:1px solid rgba(246,244,237,.2); }
.pfd3-footer__logo { width:108px; height:auto; }
.pfd3-footer__links { display:flex; flex-wrap:wrap; gap:10px; }
.pfd3-footer__links a { color:#F6F4ED; font-size:14px; font-weight:600; border:1px solid rgba(246,244,237,.3); padding:9px 16px; border-radius:999px; transition:background .2s; }
.pfd3-footer__links a:hover { background:rgba(246,244,237,.12); color:#F6F4ED; }
.pfd3-footer__bottom { display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; margin-top:28px; font-size:14.5px; color:rgba(246,244,237,.7); }
.pfd3-card__placeholder { position:absolute; inset:0; display:grid; place-items:center; }
.pfd3-card__placeholder img { width:38%; opacity:.4; }
.pfd3-cat__desc { margin:22px 0 0; font-size:16.5px; line-height:1.65; color:#5f5a4e; }

/* --- Specificity shield: the theme's .entry-content p rules override
       single-class margins, so re-assert every paragraph margin here. --- */
.pfd3 p.pfd3-cat__desc { margin:22px 0 0; }
.pfd3 p.pfd3-card__desc { margin:0 0 20px; }
.pfd3 p.pfd3-scale__note { margin:18px 0 0; }
.pfd3 p.pfd3-lede { margin:0; }
.pfd3 p.pfd3-hero__sub { margin:0 auto clamp(30px,5vw,44px); }
.pfd3 p.pfd3-lhero__blurb { margin:0 auto clamp(28px,4vw,40px); }
.pfd3 .pfd3-empty p { margin:0 auto 26px; }

/* --- Full-bleed breakout: the theme constrains page content to a padded
       column; stretch the directory to the true viewport edges so the hero
       lines up with the full-width title band above it. --- */
.pfd3 { position:relative; width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }

/* --- Designed treatment for high-plastic reference formats (no product photo) --- */
.pfd3-card__avoid { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:24px; background:linear-gradient(140deg,#5D4439,#4a2b1e); overflow:hidden; }
.pfd3-card__avoid > img { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:78%; opacity:.10; pointer-events:none; }
.pfd3-card__avoid-kicker { position:relative; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:rgba(246,244,237,.75); }
.pfd3-card__avoid-name { position:relative; font-family:'Newsreader',serif; font-weight:500; font-size:24px; line-height:1.2; color:#F6F4ED; max-width:280px; }


/* New-and-updating notice banner (added 2026-07-13) */
.pfd3-notice{display:flex;gap:.7rem;align-items:flex-start;max-width:920px;margin:1.4rem auto 0;padding:.85rem 1.1rem;background:#F6F4ED;border:1px solid #e4dfd1;border-left:4px solid #00675C;border-radius:10px;}
.pfd3-notice__dot{flex:0 0 auto;width:9px;height:9px;margin-top:.5rem;border-radius:50%;background:#00675C;box-shadow:0 0 0 4px rgba(0,103,92,.15);}
.pfd3-notice p{margin:0;font-size:.95rem;line-height:1.55;color:#3f3a33;}
.pfd3-notice strong{color:#242424;}
.pfd3-notice a{color:#00675C;font-weight:600;text-decoration:underline;}
@media (max-width:640px){.pfd3-notice{margin-left:1rem;margin-right:1rem;}}

/* ============ Category listing: left filter rail + sort (v3.12.0) ============ */
.pfd3-listing-wrap{max-width:1500px;margin:0 auto;padding:clamp(30px,4vw,56px) clamp(18px,3vw,48px) clamp(64px,9vw,110px);display:grid;grid-template-columns:236px minmax(0,1fr);gap:clamp(24px,3vw,44px);align-items:start}
.pfd3-listing-wrap .pfd3-listing{max-width:none;margin:0;padding:0}
.pfd3-results{min-width:0}
.pfd3-listing-wrap .pfd3-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:clamp(20px,2vw,28px)}

.pfd3-filter{position:sticky;top:16px}
.pfd3-filter__head{font-size:19px;font-weight:700;margin:0;padding:0 2px 14px}
.pfd3-facet{border-top:1px solid #d9d4c6}
.pfd3-facet:last-of-type{border-bottom:1px solid #d9d4c6}
.pfd3-facet__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:none;cursor:pointer;padding:16px 2px;font-family:inherit;color:#242424;text-align:left}
.pfd3-facet__lbl{font-size:16px;font-weight:500}
.pfd3-facet__cnt{color:#8f897b;font-weight:400;font-size:15px;margin-left:2px}
.pfd3-facet__head > span:first-child{flex:1}
.pfd3-facet__chev{color:#6f6a5d;flex:none;transition:transform .2s}
.pfd3-facet--open .pfd3-facet__chev{transform:rotate(180deg)}
.pfd3-facet__body{display:none;padding:0 2px 16px}
.pfd3-facet--open .pfd3-facet__body{display:block}
.pfd3-opt{display:flex;align-items:center;gap:10px;padding:7px 0;cursor:pointer;font-size:14.5px;color:#4a463d}
.pfd3-opt input{width:16px;height:16px;accent-color:#00675C;flex:none;cursor:pointer}
.pfd3-opt__l{flex:1}
.pfd3-opt__n{color:#8f897b;font-size:13px}
.pfd3-filter__clear{margin-top:16px;background:none;border:none;color:#00675C;font-family:inherit;font-weight:600;font-size:13.5px;cursor:pointer;padding:0}

.pfd3-rbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.pfd3-rsearch{display:flex;align-items:center;gap:8px;border:1px solid #d9d4c6;border-radius:10px;background:#fff;padding:10px 12px;flex:1;min-width:190px;max-width:360px}
.pfd3-rsearch input{border:none;outline:none;background:none;font-family:inherit;font-size:15px;flex:1;min-width:0;color:#242424}
.pfd3-rcount{color:#8f897b;font-size:14.5px;white-space:nowrap}
.pfd3-rsort{display:flex;align-items:center;gap:8px;white-space:nowrap}
.pfd3-rsort label{color:#8f897b;font-size:14px}
.pfd3-rsort select{font-family:inherit;font-size:14.5px;color:#242424;background:#fff;border:1px solid #d9d4c6;border-radius:10px;padding:9px 32px 9px 12px;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236f6a5d' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 11px center}

.pfd3-filter-toggle{display:none;width:100%;text-align:left;background:#fff;border:1px solid #d9d4c6;border-radius:10px;padding:14px 16px;font-family:inherit;font-weight:600;font-size:15px;color:#242424;cursor:pointer;margin-bottom:18px}
.pfd3-filter-toggle span{float:right;color:#6f6a5d}

@media (max-width:860px){
	.pfd3-listing-wrap{grid-template-columns:1fr;gap:0}
	.pfd3-filter-toggle{display:block}
	.pfd3-filter{position:static;display:none;margin-bottom:22px}
	.pfd3-filter--open{display:block}
}

/* v3.12.1: keep Shop button on one line in the narrower listing cards */
.pfd3-card__actions{flex-wrap:wrap;gap:10px 12px}
.pfd3-btn--shop{white-space:nowrap;flex:none}
