/* PP Instant Shop & Search — everything is namespaced under .pp-shop / .pp-search so it
   can live inside Divi or Elementor without either side's styles leaking. */

.pp-shop, .pp-search {
  --pp-maroon:#7D0000; --pp-red:#C12720; --pp-orange:#EC9422; --pp-yellow:#F3D424;
  --pp-green:#70B536; --pp-turq:#009DD9; --pp-blue:#005D94; --pp-purple:#911A78;
  --pp-ink:#2b2b3a; --pp-line:#e7e2df; --pp-radius:5px;
  --pp-font:'Outfit', system-ui, sans-serif;
  font-family: var(--pp-font); color: var(--pp-ink); line-height: 1.4;
  box-sizing: border-box;
}
.pp-shop *, .pp-shop *::before, .pp-shop *::after,
.pp-search *, .pp-search *::before, .pp-search *::after { box-sizing: border-box; }

/* neutralise theme form styling inside the widgets */
.pp-shop input, .pp-shop select, .pp-shop button,
.pp-search input, .pp-search button {
  font-family: inherit; font-size: 14px; line-height: 1.3; margin: 0; height: auto;
  box-shadow: none; outline-offset: 2px; text-transform: none; letter-spacing: 0;
}

/* ---------- grid ---------- */
.pp-shop { background: whitesmoke; padding-bottom: 28px; --pp-pad: 0; }
.pp-shop__banner { background:#000; color:#fff; text-align:center; padding:22px; font-size:30px; font-weight:700; line-height:1.2; }
.pp-shop__wrap { display:grid; grid-template-columns:260px minmax(0,1fr); gap:26px; margin:16px 0 0; padding:0 var(--pp-pad); }
.pp-panel { border:1px solid var(--pp-line); border-radius:var(--pp-radius); overflow:hidden; margin-bottom:18px; background:#fff; }
.pp-bar { font-weight:600; letter-spacing:.04em; color:#fff !important; text-transform:uppercase; padding:10px 14px; font-size:14px; text-align:center; background:var(--pp-ink) !important; }
.pp-bar--search { background:var(--pp-red) !important; } .pp-bar--price { background:var(--pp-orange) !important; }
.pp-bar--cats { background:var(--pp-blue) !important; } .pp-bar--tags { background:var(--pp-green) !important; }
.pp-bar--grade { background:var(--pp-green) !important; } .pp-bar--resource { background:var(--pp-purple) !important; }
.pp-bar--format { background:var(--pp-turq) !important; } .pp-bar--season { background:var(--pp-maroon) !important; }
/* collapsible filter panels (click the bar to open/close); Search stays open */
button.pp-bar { width:100%; border:0; display:block; font-family:inherit; cursor:pointer; -webkit-appearance:none; appearance:none; }
.pp-panel.is-collapsible .pp-bar { position:relative; padding-right:30px; }
.pp-panel.is-collapsible .pp-bar::after { content:''; position:absolute; right:14px; top:50%; width:7px; height:7px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:translateY(-65%) rotate(45deg); transition:transform .15s; }
.pp-panel.is-collapsed .pp-bar::after { transform:translateY(-35%) rotate(-135deg); }
.pp-panel.is-collapsed .pp-panel__body { display:none; }
.pp-panel__body { padding:12px 14px; }
.pp-shop .pp-q { width:100%; padding:11px 12px; border:1px solid var(--pp-line); border-radius:var(--pp-radius); font-size:15px; background:#fff; color:var(--pp-ink); }
.pp-shop .pp-q:focus { border-color:#000; outline:none; }
.pp-pricelabel { display:block; font-size:13px; color:#666; margin-bottom:4px; font-weight:400; }
/* price slider: drawn explicitly so theme input resets can't blank it out */
.pp-shop .pp-price { -webkit-appearance:none; appearance:none; width:100%; height:6px; margin:10px 0 4px; padding:0; border:0; border-radius:3px; background:#000; cursor:pointer; outline:none; }
.pp-shop .pp-price::-webkit-slider-runnable-track { height:6px; border-radius:3px; background:#000; }
.pp-shop .pp-price::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:20px; height:20px; margin-top:-7px; border-radius:50%; background:#000; border:3px solid #fff; box-shadow:0 0 0 1px #000; cursor:pointer; }
.pp-shop .pp-price::-moz-range-track { height:6px; border-radius:3px; background:#000; }
.pp-shop .pp-price::-moz-range-thumb { width:14px; height:14px; border-radius:50%; background:#000; border:3px solid #fff; box-shadow:0 0 0 1px #000; cursor:pointer; }
.pp-shop .pp-price:focus-visible { outline:2px solid var(--pp-blue); outline-offset:4px; }
.pp-facet-item { display:flex; align-items:center; gap:8px; padding:4px 0; cursor:pointer; font-size:14px; font-weight:400; margin:0; color:var(--pp-ink); }
.pp-shop .pp-facet-item input { accent-color:#000; width:15px; height:15px; margin:0; flex:0 0 auto; }
.pp-facet-item .pp-cnt { margin-left:auto; background:#f1f1f1; color:#8a837d; border-radius:var(--pp-radius); padding:1px 8px; font-size:11px; font-weight:700; }
.pp-shop .pp-more { margin-top:8px; background:none; border:0; color:#000; font-weight:700; cursor:pointer; padding:0; font-size:13px; text-decoration:underline; }
/* nested (hierarchical) facets: parent rows get a +/− toggle; children indent and collapse */
.pp-facet-node { display:flex; align-items:flex-start; gap:4px; padding-left:calc(var(--d,0) * 16px); }
.pp-facet-node .pp-facet-item { flex:1; }
.pp-facet-toggle { flex:0 0 16px; width:16px; align-self:center; border:0; background:none; color:var(--pp-ink); cursor:pointer; font-weight:700; font-size:15px; line-height:1; padding:0; text-align:center; }
.pp-facet-toggle--leaf { cursor:default; visibility:hidden; }
.pp-subfacet { display:none; }
.pp-subfacet.is-open { display:block; }
.pp-recent { margin-top:10px; display:flex; flex-wrap:wrap; gap:6px; }
.pp-recent:empty { margin:0; }
.pp-recent__label { width:100%; font-size:11px; color:#a99; margin-bottom:2px; text-transform:uppercase; letter-spacing:.05em; }
.pp-recent__chip { font-size:12px; background:#f1f1f1; border:1px solid var(--pp-line); border-radius:var(--pp-radius); padding:3px 10px; cursor:pointer; color:#555; }
.pp-recent__chip:hover { background:#fff; border-color:#000; color:var(--pp-ink); }
.pp-shop .pp-clear { width:100%; padding:9px; border:1px solid var(--pp-line); border-radius:var(--pp-radius); background:#fff; font-weight:700; cursor:pointer; color:var(--pp-ink); }
.pp-shop .pp-clear:hover { border-color:#000; }
.pp-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.pp-toolbar__right { display:flex; gap:8px; flex-wrap:nowrap; align-items:center; }
.pp-stats { color:#777; font-weight:700; } .pp-stats b { color:var(--pp-ink); }
.pp-shop .pp-sort, .pp-shop .pp-perpage { -webkit-appearance:none; -moz-appearance:none; appearance:none; width:auto !important; max-width:none; flex:0 0 auto; padding:9px 34px 9px 12px; border:1px solid var(--pp-line); border-radius:var(--pp-radius); font-weight:600; color:var(--pp-ink); background-color:#fff; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23333' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:11px; cursor:pointer; }
.pp-shop .pp-sort::-ms-expand, .pp-shop .pp-perpage::-ms-expand { display:none; }
.pp-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:18px; }
.pp-loading, .pp-empty { grid-column:1/-1; color:#888; padding:24px 0; }
.pp-card { border:1px solid var(--pp-line); border-radius:var(--pp-radius); background:#fff; padding:14px; display:flex; flex-direction:column; text-align:center; transition:box-shadow .15s, transform .15s; }
.pp-card:hover { box-shadow:0 8px 22px rgba(0,0,0,.08); transform:translateY(-2px); }
.pp-card__thumb-link { display:block; margin-bottom:12px; }
.pp-card__thumb { width:100%; aspect-ratio:1/1; object-fit:contain; background:#faf7f5; border-radius:var(--pp-radius); display:block; }
.pp-shop .pp-card__title { font-weight:500; line-height:1.25; color:var(--pp-ink); text-decoration:none; min-height:2.6em; font-size:15px; }
.pp-shop .pp-card__title:hover { color:#000; }
.pp-card__title mark { background:#ffe9a8; padding:0 1px; color:inherit; }
.pp-card__rating { margin-top:8px; line-height:1; }
.pp-shop .pp-stars, .pp-search .pp-stars { position:relative !important; display:inline-block; font-size:17px; line-height:1; letter-spacing:1px; color:#e2ddd8; }
.pp-stars::before { content:"★★★★★"; }
.pp-shop .pp-stars__fill, .pp-search .pp-stars__fill { position:absolute !important; left:0 !important; top:0 !important; display:inline-block; overflow:hidden; white-space:nowrap; color:var(--pp-orange); }
.pp-stars__fill::before { content:"★★★★★"; }
.pp-stars__num { display:inline-block; margin-left:6px; font-size:13px; font-weight:700; color:var(--pp-ink); vertical-align:2px; }
.pp-card__reviews { display:block; font-size:12px; color:#8a837d; margin-top:4px; }
.pp-card__price { margin:10px 0 12px; font-weight:700; color:var(--pp-green); font-size:16px; }
.pp-card__price s { color:#b9b3ae; font-weight:600; margin-right:6px; }
.pp-shop .pp-btn { margin-top:auto; display:block; width:100%; text-align:center; background:var(--pp-yellow); color:var(--pp-ink); font-weight:600; text-transform:uppercase; letter-spacing:.03em; font-size:13px; text-decoration:none; padding:10px 12px; border-radius:var(--pp-radius); border:0; cursor:pointer; line-height:1.3; }
.pp-shop .pp-btn:hover { filter:brightness(.95); color:var(--pp-ink); }
.pp-shop .pp-btn.is-added { background:var(--pp-green); color:#fff; }
.pp-shop .pp-btn.pp-dl { background:var(--pp-green); color:#fff; }
.pp-shop .pp-btn.is-disabled { background:#e6e3e0; color:#999; cursor:default; }
.pp-pagination { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; margin-top:24px; }
.pp-pagination:empty { margin:0; }
.pp-shop .pp-pg { min-width:38px; padding:8px 12px; border:1px solid var(--pp-line); background:#fff; border-radius:var(--pp-radius); cursor:pointer; font-weight:600; color:var(--pp-ink); }
.pp-shop .pp-pg:hover:not(:disabled) { border-color:#000; }
.pp-shop .pp-pg.is-cur { background:#000; color:#fff; border-color:#000; }
.pp-shop .pp-pg:disabled { opacity:.4; cursor:default; }
.pp-pg-gap { padding:8px 2px; color:#999; }
@media (max-width:900px) { .pp-shop__wrap { grid-template-columns:1fr; } }

/* ---------- free-download email step (mirrors the plugin's capture window) ---------- */
.pp-modal { position:fixed; inset:0; z-index:100000; background:rgba(0,0,0,.45); display:flex; align-items:center; justify-content:center; padding:20px; font-family:'Outfit', system-ui, sans-serif; color:#2b2b3a; box-sizing:border-box; }
.pp-modal *, .pp-modal *::before, .pp-modal *::after { box-sizing:border-box; }
.pp-modal__card { width:100%; max-width:440px; background:#fff; border-radius:5px; overflow:hidden; max-height:calc(100vh - 40px); overflow-y:auto; }
.pp-modal__head { background:#000; color:#fff; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; font-size:16px; font-weight:600; letter-spacing:.02em; }
.pp-modal .pp-modal__close { background:none; border:0; color:#fff; font-size:24px; line-height:1; cursor:pointer; padding:0 2px; margin:0; }
.pp-modal__body { padding:18px; margin:0; }
.pp-modal__text { margin:0 0 12px; font-size:14px; line-height:1.5; color:#5a5866; }
.pp-modal__label { display:block; font-size:13px; color:#5a5866; margin:0 0 4px; font-weight:400; }
.pp-modal .pp-modal__input { width:100%; height:42px; padding:0 12px; border:1px solid #e7e2df; border-radius:5px; font-size:15px; font-family:inherit; background:#fff; color:#2b2b3a; margin:0 0 8px; box-shadow:none; }
.pp-modal .pp-modal__input:focus { border-color:#000; outline:none; }
.pp-modal__error { font-size:13px; color:#C12720; margin:-2px 0 8px; }
.pp-modal__consent { display:flex; gap:8px; align-items:flex-start; font-size:13px; line-height:1.4; color:#5a5866; margin:0 0 14px; font-weight:400; cursor:pointer; }
.pp-modal .pp-modal__consent input { margin:2px 0 0; accent-color:#000; width:15px; height:15px; flex:0 0 auto; }
.pp-modal__hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.pp-modal .pp-modal__submit { width:100%; height:44px; border:0; border-radius:5px; background:#F3D424; color:#2b2b3a; font-family:inherit; font-size:14px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; cursor:pointer; margin:0; }
.pp-modal .pp-modal__submit:hover { filter:brightness(.95); }
.pp-modal__or { display:flex; align-items:center; gap:10px; margin:14px 0 10px; color:#a9a3a0; font-size:12px; }
.pp-modal__or span { flex:1; height:1px; background:#e7e2df; }
.pp-modal__login { margin:0; text-align:center; font-size:14px; color:#5a5866; }
.pp-modal .pp-modal__login a { color:#005D94; font-weight:600; text-decoration:none; }
.pp-modal .pp-modal__login a:hover { text-decoration:underline; }
.pp-modal__note { margin:12px 0 0; text-align:center; font-size:12px; color:#a9a3a0; }
.pp-modal__done { margin:4px 0; font-size:15px; line-height:1.5; color:#2b2b3a; }
.pp-modal .pp-modal__done a { color:#005D94; font-weight:600; }

/* ---------- header search ---------- */
.pp-search { position:relative; display:flex; align-items:stretch; max-width:560px; width:100%; margin:0; }
.pp-search .pp-search__input { flex:1 1 auto; min-width:0; padding:10px 44px 10px 14px; border:1px solid var(--pp-line); border-radius:var(--pp-radius); font-size:15px; background:#fff; color:var(--pp-ink); }
.pp-search .pp-search__input:focus { border-color:#000; outline:none; }
.pp-search .pp-search__input::-webkit-search-cancel-button { -webkit-appearance:none; }
.pp-search .pp-search__btn { position:absolute; right:4px; top:50%; transform:translateY(-50%); width:34px; height:34px; border:0; border-radius:var(--pp-radius); background:transparent; color:#444; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.pp-search .pp-search__btn:hover { background:#f1f1f1; color:#000; }
.pp-search__panel { position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:9999; background:#fff; border:1px solid var(--pp-line); border-radius:var(--pp-radius); box-shadow:0 12px 32px rgba(0,0,0,.12); padding:6px 0; max-height:70vh; overflow:auto; text-align:left; }
.pp-search__group + .pp-search__group { border-top:1px solid var(--pp-line); margin-top:4px; padding-top:4px; }
.pp-search__label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#fff; background:var(--pp-blue); display:inline-block; padding:2px 8px; border-radius:var(--pp-radius); margin:6px 10px 4px; }
.pp-search__group--post .pp-search__label { background:var(--pp-purple); }
.pp-search .pp-search__item { display:flex; align-items:center; gap:10px; padding:7px 12px; text-decoration:none; color:var(--pp-ink); font-size:14px; line-height:1.25; }
.pp-search .pp-search__item:hover, .pp-search .pp-search__item.is-active { background:#f6f4f2; color:#000; }
.pp-search__thumb { width:40px; height:40px; object-fit:cover; border-radius:4px; background:#faf7f5; flex:0 0 auto; }
.pp-search__name { flex:1 1 auto; min-width:0; }
.pp-search__name mark { background:#ffe9a8; padding:0 1px; color:inherit; }
.pp-search__meta { flex:0 0 auto; font-weight:700; color:var(--pp-green); font-size:13px; }
.pp-search .pp-search__all { display:block; padding:9px 12px; margin-top:4px; border-top:1px solid var(--pp-line); font-weight:700; font-size:13px; color:#000; text-decoration:none; }
.pp-search .pp-search__all:hover, .pp-search .pp-search__all.is-active { background:#f6f4f2; }
.pp-search__none { padding:12px; color:#888; font-size:14px; }
