/* SC Recipes — faceted index (1.7.0). Server-rendered; works without JavaScript.
   Everything reads the --scr-* design tokens, so each preset restyles it. */
.scr-index{
  font-family:var(--scr-font-body);color:var(--scr-ink);
  --scr-tile-ratio:4/5
}
.scr-index *{box-sizing:border-box}
.scr-index img{max-width:100%;height:auto}

/* ---- Search --------------------------------------------------------------
   Specificity is deliberate: a bare .scr-index-search loses its bottom margin to
   theme form resets that load after the plugin. */
.scr-index .scr-index-search{display:flex;gap:8px;max-width:560px;margin:0 auto 34px}
.scr-index .scr-index-search input{flex:1;width:auto;min-width:0;border:1.5px solid var(--scr-line);border-radius:var(--scr-radius-pill);
  padding:13px 20px;font-family:var(--scr-font-body);font-size:15.5px;color:var(--scr-ink);background:var(--scr-surface);box-shadow:none;margin:0}
.scr-index .scr-index-search input:focus{outline:none;border-color:var(--scr-accent)}
.scr-index .scr-index-search button{border:none;background:var(--scr-accent);color:var(--scr-on-accent);font-family:var(--scr-font-head);
  font-weight:700;font-size:14px;padding:13px 26px;border-radius:var(--scr-radius-pill);cursor:pointer;margin:0}
.scr-index .scr-index-search button:hover{background:var(--scr-accent-dark)}

/* ---- Layout ------------------------------------------------------------- */
.scr-index .scr-index-cols{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;align-items:start}

/* ---- Filter sidebar ----------------------------------------------------- */
.scr-index .scr-facets{position:sticky;top:24px}
.admin-bar .scr-index .scr-facets{top:56px}
.scr-index .scr-facets-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 10px}
.scr-index .scr-facets-title{font-family:var(--scr-font-head);font-weight:var(--scr-head-weight,800);text-transform:var(--scr-head-transform,none);
  font-size:17px;line-height:1.2;color:var(--scr-ink);margin:0;padding:0;letter-spacing:0}
.scr-index .scr-clear{font-family:var(--scr-font-head);font-weight:700;font-size:12.5px;color:var(--scr-accent);text-decoration:underline;text-underline-offset:3px}
.scr-index .scr-facets-close,.scr-index .scr-facets-foot{display:none}
.scr-index .scr-facet{border-top:1px solid var(--scr-line);padding:16px 0 12px;margin:0}
.scr-index .scr-facet h3{font-family:var(--scr-font-head);font-weight:800;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--scr-soft);margin:0 0 8px;padding:0;line-height:1.3}
.scr-index .scr-facet ul{list-style:none;margin:0;padding:0}
.scr-index .scr-facet li{margin:0 0 1px;padding:0}
.scr-index .scr-facet li::before,.scr-index .scr-facet li::marker{content:none}
.scr-index .scr-facet a{display:flex;align-items:center;gap:11px;padding:6px 8px;margin:0 -8px;border-radius:var(--scr-radius-sm);
  font-size:14.5px;line-height:1.3;color:var(--scr-ink);text-decoration:none;min-height:36px;transition:background .15s ease}
.scr-index .scr-facet a:hover{background:var(--scr-panel)}
.scr-index .scr-facet a:focus-visible{outline:2px solid var(--scr-accent);outline-offset:1px}
/* Tick box: the selected state reads as "applied", not as a loud button. */
.scr-index .scr-facet a::before{content:"";flex:0 0 18px;width:18px;height:18px;border:1.5px solid var(--scr-line-strong);border-radius:5px;
  background:var(--scr-surface) center/12px 12px no-repeat;transition:background-color .15s ease,border-color .15s ease}
.scr-index .scr-facet a.on::before{background-color:var(--scr-accent);border-color:var(--scr-accent);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.2 8.4l3 3 6.6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.scr-index .scr-facet--single a::before{border-radius:50%}
.scr-index .scr-facet--single a.on::before{background-image:none;box-shadow:inset 0 0 0 4px var(--scr-surface)}
.scr-index .scr-facet a span{flex:1;min-width:0}
.scr-index .scr-facet a.on span{font-weight:700}
/* Live counts per facet: you can see what a click will return. */
.scr-index .scr-facet em{font-family:var(--scr-font-head);font-style:normal;font-weight:700;font-size:11px;color:var(--scr-soft);opacity:.85}
.scr-index .scr-more{margin:2px 0 0}
.scr-index .scr-more summary{cursor:pointer;list-style:none;font-family:var(--scr-font-head);font-weight:700;font-size:12.5px;color:var(--scr-accent);padding:6px 0}
.scr-index .scr-more summary::-webkit-details-marker{display:none}
.scr-index .scr-more summary::after{content:" +"}
.scr-index .scr-more[open] summary{display:none}

/* ---- Results bar -------------------------------------------------------- */
.scr-index .scr-results-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--scr-line)}
.scr-index .scr-results-count{font-family:var(--scr-font-head);font-weight:600;font-size:13.5px;color:var(--scr-soft);margin:0}
.scr-index .scr-results-count strong{color:var(--scr-ink);font-weight:800}
.scr-index .scr-results-tools{display:flex;align-items:center;gap:10px}
.scr-index .scr-filter-toggle{display:none}
.scr-index .scr-sort{display:flex;align-items:center;gap:8px;margin:0}
.scr-index .scr-sort label{font-family:var(--scr-font-head);font-weight:700;font-size:12.5px;color:var(--scr-soft);margin:0}
.scr-index .scr-select{position:relative;display:inline-flex;color:var(--scr-soft)}
.scr-index .scr-select::after{content:"";position:absolute;right:16px;top:50%;width:7px;height:7px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.scr-index .scr-sort select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:auto;max-width:none;margin:0;
  border:1.5px solid var(--scr-line-strong);border-radius:var(--scr-radius-pill);background:var(--scr-surface);box-shadow:none;
  padding:9px 40px 9px 17px;min-height:40px;font-family:var(--scr-font-head);font-weight:700;font-size:13px;line-height:1.2;
  color:var(--scr-ink);cursor:pointer}
.scr-index .scr-sort select:hover,.scr-index .scr-sort select:focus{border-color:var(--scr-ink);outline:none}
.scr-index .scr-sort-go{border:1.5px solid var(--scr-line-strong);background:var(--scr-surface);color:var(--scr-ink);border-radius:var(--scr-radius-pill);
  font-family:var(--scr-font-head);font-weight:700;font-size:12.5px;padding:9px 14px;cursor:pointer;margin:0}
.scr-index.scr-js .scr-sort-go{display:none}

/* ---- Applied-filter chips ----------------------------------------------- */
.scr-index .scr-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px}
.scr-index .scr-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px 7px 14px;border-radius:var(--scr-radius-pill);
  background:var(--scr-accent-tint);color:var(--scr-ink);font-family:var(--scr-font-head);font-weight:700;font-size:12.5px;line-height:1.2;
  text-decoration:none;transition:background .15s ease,color .15s ease}
.scr-index .scr-chip-x{font-size:16px;line-height:1;opacity:.55;margin-top:-1px}
.scr-index .scr-chip:hover{background:var(--scr-accent);color:var(--scr-on-accent)}
.scr-index .scr-chip:hover .scr-chip-x{opacity:1}
.scr-index .scr-chips-clear{font-family:var(--scr-font-head);font-weight:700;font-size:12.5px;color:var(--scr-soft);
  text-decoration:underline;text-underline-offset:3px;margin-left:4px}
.scr-index .scr-chips-clear:hover{color:var(--scr-accent)}

/* ---- Grid & tiles -------------------------------------------------------- */
.scr-index .scr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:30px 22px}
.scr-index .scr-tile{margin:0}
.scr-index .scr-tile a{text-decoration:none;color:inherit;display:block}
.scr-index .scr-tile-media{position:relative;display:block;margin:0 0 11px;border-radius:var(--scr-radius-sm);overflow:hidden;background:var(--scr-accent-tint)}
.scr-index .scr-tile img,.scr-index .scr-tile-noimg{width:100%;aspect-ratio:var(--scr-tile-ratio);object-fit:cover;display:block;margin:0;border-radius:0;
  transition:transform .35s ease}
.scr-index .scr-tile a:hover img{transform:scale(1.035)}
.scr-index .scr-tile-tag{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:5px 10px;border-radius:var(--scr-radius-pill);background:var(--scr-surface);color:var(--scr-ink);
  font-family:var(--scr-font-head);font-weight:700;font-size:11px;line-height:1.2;letter-spacing:.02em;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.scr-index .scr-tile h3{font-family:var(--scr-font-head);font-weight:700;font-size:15.5px;line-height:1.35;margin:0;padding:0;color:var(--scr-ink);
  text-transform:none;letter-spacing:0}
.scr-index .scr-tile a:hover h3{color:var(--scr-accent)}
.scr-index .scr-tile-meta{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--scr-font-head);font-weight:600;
  font-size:12px;color:var(--scr-soft);margin:6px 0 0}
.scr-index .scr-tile-meta span{display:inline-flex;align-items:center;gap:5px}
.scr-index .scr-tile-meta svg{flex:none}
.scr-index .scr-empty{color:var(--scr-soft);text-align:center;padding:48px 16px;border:1.5px dashed var(--scr-line);border-radius:var(--scr-radius)}
.scr-index .scr-empty p{margin:0 0 6px}
.scr-index .scr-empty a{color:var(--scr-accent)}

/* ---- Pagination --------------------------------------------------------- */
.scr-index .scr-pagination{display:flex;gap:6px;justify-content:center;margin-top:40px;flex-wrap:wrap}
.scr-index .scr-pagination a{font-family:var(--scr-font-head);font-weight:700;font-size:13px;border:1.5px solid var(--scr-line);
  color:var(--scr-ink);border-radius:var(--scr-radius-sm);padding:9px 15px;text-decoration:none;min-width:40px;text-align:center}
.scr-index .scr-pagination a:hover{border-color:var(--scr-ink)}
.scr-index .scr-pagination a.on{background:var(--scr-ink);border-color:var(--scr-ink);color:var(--scr-on-ink)}

/* ---- Tablet & phone ------------------------------------------------------ */
@media(max-width:860px){
  .scr-index .scr-index-cols{grid-template-columns:minmax(0,1fr);gap:18px}
  .scr-index .scr-facets{position:static}
  /* Without JavaScript the filters stay above the grid as wrapping pills. */
  .scr-index .scr-facet ul{display:flex;flex-wrap:wrap;gap:6px}
  .scr-index .scr-facet a{margin:0;border:1.5px solid var(--scr-line);border-radius:var(--scr-radius-pill);padding:6px 12px;min-height:34px}
  .scr-index .scr-facet a::before{display:none}
  .scr-index .scr-facet a.on{background:var(--scr-accent-tint);border-color:var(--scr-accent)}
  .scr-index .scr-facet em{margin-left:2px}

  /* With JavaScript: a slide-in drawer opened from the Filters button. */
  .scr-index.scr-js .scr-facets{position:fixed;top:0;right:0;bottom:0;left:auto;z-index:100001;width:min(88vw,380px);margin:0;
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--scr-surface);
    padding:20px 22px 0;box-shadow:-12px 0 40px rgba(0,0,0,.18);transform:translateX(105%);visibility:hidden;
    transition:transform .28s ease,visibility 0s linear .28s}
  .scr-index.scr-js.scr-filters-open .scr-facets{transform:none;visibility:visible;transition:transform .28s ease}
  .scr-index.scr-js .scr-facets-head{position:sticky;top:-20px;background:var(--scr-surface);margin:-20px -22px 0;padding:18px 22px 14px;z-index:1;align-items:center}
  .scr-index.scr-js .scr-facets-title{font-size:19px;margin-right:auto}
  .scr-index.scr-js .scr-facets-close{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0 -8px 0 0;padding:0;
    border:none;border-radius:50%;background:transparent;color:var(--scr-ink);font-size:26px;line-height:1;cursor:pointer}
  .scr-index.scr-js .scr-facets-close:hover{background:var(--scr-panel);color:var(--scr-ink)}
  .scr-index.scr-js .scr-facet ul{display:block}
  .scr-index.scr-js .scr-facet a{border:none;border-radius:var(--scr-radius-sm);padding:9px 8px;margin:0 -8px;min-height:44px;font-size:15.5px}
  .scr-index.scr-js .scr-facet a::before{display:block}
  .scr-index.scr-js .scr-facet a.on{background:transparent}
  .scr-index.scr-js .scr-facets-foot{display:block;position:sticky;bottom:0;margin:10px -22px 0;padding:12px 22px calc(14px + env(safe-area-inset-bottom));
    background:var(--scr-surface);border-top:1px solid var(--scr-line)}
  .scr-index.scr-js .scr-facets-done{display:block;padding:14px 18px;border-radius:var(--scr-radius-pill);background:var(--scr-ink);color:var(--scr-on-ink);
    font-family:var(--scr-font-head);font-weight:800;font-size:14px;line-height:1.2;text-align:center;text-decoration:none}
  .scr-index.scr-js .scr-facets-done:hover{background:var(--scr-accent);color:var(--scr-on-accent)}
  .scr-index .scr-backdrop{position:fixed;inset:0;z-index:100000;background:rgba(20,16,12,.42)}
  .scr-index .scr-backdrop[hidden]{display:none}
  html.scr-lock,html.scr-lock body{overflow:hidden}

  .scr-index.scr-js .scr-filter-toggle{display:inline-flex;align-items:center;gap:7px;margin:0;padding:9px 16px;min-height:40px;
    border:1.5px solid var(--scr-line-strong);border-radius:var(--scr-radius-pill);background:var(--scr-surface);color:var(--scr-ink);
    font-family:var(--scr-font-head);font-weight:700;font-size:13px;line-height:1.2;cursor:pointer;box-shadow:none}
  .scr-index.scr-js .scr-filter-toggle:hover,.scr-index.scr-js .scr-filter-toggle:focus{border-color:var(--scr-ink);background:var(--scr-surface);color:var(--scr-ink)}
  .scr-index .scr-badge{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;
    background:var(--scr-accent);color:var(--scr-on-accent);font-size:11px;font-weight:800;line-height:1}
  .scr-index.scr-js .scr-results-bar{flex-wrap:nowrap}
  .scr-index.scr-js .scr-sort label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media(max-width:600px){
  .scr-index .scr-index-search{margin-bottom:22px}
  .scr-index .scr-index-search button{padding:13px 20px}
  .scr-index .scr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
  .scr-index .scr-tile h3{font-size:14px;line-height:1.3}
  .scr-index .scr-tile-tag{left:7px;bottom:7px;font-size:10px;padding:4px 8px}
  .scr-index .scr-tile-meta{font-size:11.5px;gap:8px}
  .scr-index .scr-results-bar{gap:10px}
  .scr-index .scr-results-count{font-size:12.5px}
  .scr-index .scr-sort select{padding:9px 34px 9px 14px;font-size:12.5px}
  .scr-index .scr-select::after{right:13px}
}
@media(prefers-reduced-motion:reduce){
  .scr-index .scr-tile img,.scr-index.scr-js .scr-facets,.scr-index .scr-facet a::before{transition:none}
  .scr-index .scr-tile a:hover img{transform:none}
}
.scr-index.scr-no-anim .scr-facets{transition:none!important}
