.cc-catalog-filters {
  display: grid;
  clear: both;
  grid-template-columns: 1.15fr repeat(2, minmax(9rem, 1fr)) auto auto auto;
  align-items: end;
  gap: .8rem;
  margin: 1rem 0 2rem;
  border: 1px solid var(--cc-color-border);
  border-radius: var(--cc-radius-md);
  padding: .9rem 1rem;
  background: linear-gradient(135deg, #f4f6f7, #fff);
  box-shadow: 0 .6rem 1.8rem rgba(16,19,22,.04);
}
.cc-mobile-filter-bar { display: none; }
.cc-filter-toggle { width: 100%; border: 1px solid var(--cc-color-border); border-radius: .85rem; padding: .8rem .9rem; color: var(--cc-color-ink); background: #fff; text-align: left; }
.cc-filter-toggle span, .cc-filter-toggle small { display: block; }
.cc-filter-toggle span { font-size: .95rem; font-weight: 900; }
.cc-filter-toggle small { margin-top: .1rem; color: var(--cc-color-muted); font-size: .7rem; }
.cc-filter-toggle b { position: absolute; right: 1rem; top: 50%; font-size: 1.25rem; transform: translateY(-50%); transition: transform .18s ease; }
.cc-filter-toggle[aria-expanded="true"] b { transform: translateY(-50%) rotate(180deg); }
.cc-filter-heading { display: flex; min-width: 10rem; flex-direction: column; align-self: center; line-height: 1.2; }
.cc-filter-heading strong { font-size: .95rem; }
.cc-filter-heading span { margin-top: .2rem; color: var(--cc-color-muted); font-size: .72rem; }
.cc-catalog-filters label:not(.cc-filter-check) span { display: block; margin-bottom: .3rem; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.cc-filter-check { display: flex; min-height: 2.9rem; align-items: center; gap: .45rem; white-space: nowrap; }
.cc-filter-check input { width: auto; }
.cc-filter-reset { min-height: 2.9rem; align-content: center; border-radius: 999px; padding-inline: .75rem; color: var(--cc-color-brand); background: #fff0f2; font-weight: 800; text-decoration: none; }
.cc-catalog-filters .button { border-radius: var(--cc-radius-sm); }
.cc-product-meta { display: flex; min-height: 1.35rem; flex-wrap: wrap; gap: .3rem; margin: .25rem 0 .6rem; color: var(--cc-color-muted); font-size: .78rem; font-weight: 650; line-height: 1.35; }
.woocommerce ul.products .cc-product-meta > span:not([aria-hidden]) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.single-product .cc-product-meta { gap: .5rem; margin-block: .8rem 1rem; font-size: .9rem; }
.single-product .cc-product-meta > span:not([aria-hidden]) { border-radius: 999px; padding: .3rem .65rem; background: var(--cc-color-soft); }
@media (max-width: 1000px) { .cc-catalog-filters { grid-template-columns: 1fr 1fr 1fr; } .cc-filter-heading { grid-column: 1 / -1; } }
@media (max-width: 800px) { .cc-catalog-filters { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) {
  .cc-mobile-filter-bar { display: block; clear: both; margin: .6rem 0; }
  .cc-filter-toggle { position: relative; }
  .cc-catalog-filters { display: none; grid-template-columns: 1fr 1fr; gap: .7rem; margin: 0 0 1rem; border-radius: .85rem; padding: .8rem; box-shadow: none; }
  .cc-catalog-filters.is-open { display: grid; }
  .cc-filter-heading { display: none; }
  .cc-catalog-filters label:not(.cc-filter-check) span { font-size: .68rem; }
  .cc-catalog-filters select { width: 100%; min-width: 0; padding: .68rem .6rem; font-size: .82rem; }
  .cc-filter-check { min-height: 2.65rem; font-size: .78rem; white-space: normal; }
  .cc-catalog-filters .button { min-height: 2.65rem; padding: .6rem .75rem; }
  .cc-filter-reset { min-height: 2.65rem; grid-column: 1 / -1; text-align: center; }
}
@media (max-width: 390px) { .cc-catalog-filters { grid-template-columns: 1fr; } .cc-filter-reset { grid-column: auto; } }

/* 0.9.59 — uitgebreid filterformulier met iPhone-veilige velden. */
@media(max-width:700px){
.cc-catalog-filters,.cc-catalog-filters.is-open{grid-template-columns:1fr 1fr;padding:1.1rem 1rem max(1rem,env(safe-area-inset-bottom));font-size:16px}
.cc-filter-search{grid-column:1/-1}.cc-catalog-filters input[type="search"]{box-sizing:border-box;width:100%;min-height:3.5rem;border:1px solid #d8ddd7;border-radius:.9rem;padding:0 .9rem;color:#101713;background:#fff;font:inherit;font-size:16px;-webkit-appearance:none;appearance:none}
.cc-catalog-filters select{box-sizing:border-box;height:3.5rem;min-height:3.5rem;padding:.1rem 2rem .1rem .75rem;font-size:16px;line-height:1.2;-webkit-appearance:auto;appearance:auto}
.cc-catalog-filters label{min-width:0}.cc-catalog-filters label span{overflow-wrap:anywhere}.cc-filter-check{box-sizing:border-box}
}
@media(max-width:390px){.cc-catalog-filters,.cc-catalog-filters.is-open{grid-template-columns:1fr}.cc-filter-search{grid-column:1}}

/* 0.9.60 — rustige desktopfilter en doorlopende productlijst. */
@media(min-width:1001px){
.cc-catalog-filters{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:.85rem 1rem;margin:1.1rem 0 1.75rem;border-radius:1.25rem;padding:1.15rem 1.2rem 1.2rem;background:#f5f6f3;box-shadow:none}
.cc-catalog-filters .cc-filter-heading{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.8rem;padding-bottom:.15rem}.cc-filter-heading strong{font-size:1.15rem}.cc-filter-heading span{margin:0;font-size:.75rem}
.cc-filter-search{grid-column:span 4}.cc-catalog-filters label:has(select[name="cc_brand"]){grid-column:span 2}.cc-catalog-filters label:has(select[name="cc_series"]){grid-column:span 3}.cc-catalog-filters label:has(select[name="cc_country"]){grid-column:span 3}
.cc-catalog-filters label:has(select[name="cc_volume"]){grid-column:span 2}.cc-catalog-filters label:has(select[name="cc_pack"]){grid-column:span 3}.cc-catalog-filters .cc-filter-check{grid-column:span 3}.cc-catalog-filters>.button{grid-column:span 2}.cc-catalog-filters>.cc-filter-reset{grid-column:span 2}
.cc-catalog-filters input[type="search"],.cc-catalog-filters select{box-sizing:border-box;width:100%;min-height:3rem;border:1px solid #d9ddd8;border-radius:.8rem;padding:.65rem .75rem;background:#fff;font-size:.82rem}.cc-catalog-filters input[type="search"]{padding-inline:.85rem}
.cc-catalog-filters .button{min-height:3rem;border-radius:.8rem;background:#101713}.cc-filter-reset{display:grid;min-height:3rem;place-items:center;border:1px solid #e2d7d8;border-radius:.8rem;background:#fff}
}
@media(min-width:701px) and (max-width:1000px){.cc-catalog-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:1rem}.cc-filter-search,.cc-filter-heading,.cc-filter-check,.cc-catalog-filters>.button,.cc-filter-reset{grid-column:1/-1}}
.cc-infinite-status{display:flex;clear:both;min-height:6rem;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem 0 2rem;text-align:center}.cc-infinite-status[hidden]{display:none}.cc-infinite-loader{width:1.6rem;height:1.6rem;border:3px solid #d9ddd8;border-top-color:#138756;border-radius:50%;animation:cc-infinite-spin .7s linear infinite}.cc-infinite-more{min-height:2.9rem;border:1px solid #d9ddd8;border-radius:999px;padding:0 1.1rem;color:#101713;background:#fff;font-weight:850}.cc-infinite-status.is-loading .cc-infinite-more{display:none}.cc-infinite-status.is-complete{color:#707771;font-size:.8rem}.cc-infinite-status.is-complete .cc-infinite-more,.cc-infinite-status.is-complete .cc-infinite-loader{display:none}.cc-infinite-loader{display:none}.cc-infinite-status.is-loading .cc-infinite-loader{display:block}.cc-infinite-ready .woocommerce-pagination{display:none!important}@keyframes cc-infinite-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.cc-infinite-status{min-height:5rem;padding:1rem 0 1.5rem}.cc-infinite-more{min-height:3rem}}

/* 0.9.57 — mobiele catalogusfilter als rustige bottom sheet. */
.cc-filter-backdrop { display: none; }
.cc-filter-close { display: none; }
@media (max-width: 700px) {
  body.cc-filter-open { overflow: hidden; }
  .cc-mobile-filter-bar { position: relative; z-index: 12; display: block; margin: .75rem 0 1rem; }
  .cc-filter-toggle {
    position: relative;
    display: grid;
    min-height: 4.15rem;
    grid-template-columns: 2.75rem minmax(0,1fr) 2rem;
    align-items: center;
    border: 1px solid #d9ddd8;
    border-radius: 1.15rem;
    padding: .6rem .85rem .6rem .7rem;
    color: #101713;
    background: #f4f5f2;
    box-shadow: 0 .4rem 1.1rem rgba(17,25,20,.06);
    text-align: left;
  }
  .cc-filter-toggle::before {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    border-radius: .85rem;
    color: #fff;
    background: #101713;
    content: "☷";
    font-size: 1.25rem;
  }
  .cc-filter-toggle span,.cc-filter-toggle small { grid-column: 2; padding-left: .75rem; }
  .cc-filter-toggle span { align-self: end; font-size: 1rem; line-height: 1.05; }
  .cc-filter-toggle small { align-self: start; margin-top: .22rem; font-size: .69rem; }
  .cc-filter-toggle b { position: static; grid-column: 3; grid-row: 1 / span 2; justify-self: end; transform: rotate(-90deg); }
  .cc-filter-toggle[aria-expanded="true"] b { transform: rotate(90deg); }
  .cc-filter-backdrop {
    position: fixed;
    z-index: 99990;
    inset: 0;
    display: block;
    visibility: hidden;
    border: 0;
    padding: 0;
    opacity: 0;
    background: rgba(5,10,8,.58);
    transition: opacity .24s ease,visibility .24s ease;
    backdrop-filter: blur(3px);
  }
  .cc-filter-backdrop.is-open { visibility: visible; opacity: 1; }
  .cc-catalog-filters,
  .cc-catalog-filters.is-open {
    position: fixed;
    z-index: 99991;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    visibility: hidden;
    width: 100%;
    max-height: min(84dvh,45rem);
    overflow: auto;
    grid-template-columns: 1fr 1fr;
    gap: .9rem;
    margin: 0;
    border: 0;
    border-radius: 1.5rem 1.5rem 0 0;
    padding: 1.15rem 1rem calc(1rem + env(safe-area-inset-bottom));
    opacity: 0;
    background: #f7f8f6;
    box-shadow: 0 -1.2rem 3.5rem rgba(5,10,8,.24);
    transform: translateY(105%);
    transition: transform .3s cubic-bezier(.22,.75,.2,1),opacity .2s ease,visibility .3s ease;
  }
  .cc-catalog-filters.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
  .cc-catalog-filters .cc-filter-heading {
    display: grid;
    min-width: 0;
    grid-column: 1 / -1;
    grid-template-columns: 1fr 3rem;
    margin-bottom: .15rem;
  }
  .cc-filter-heading strong { font-size: 1.35rem; letter-spacing: -.025em; }
  .cc-filter-heading span { font-size: .75rem; }
  .cc-filter-close {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    align-self: center;
    grid-column: 2;
    grid-row: 1 / span 2;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #101713;
    background: #e6e9e5;
    font-size: 1.35rem;
  }
  .cc-catalog-filters label:not(.cc-filter-check) span { margin: 0 0 .4rem .15rem; font-size: .68rem; letter-spacing: .07em; }
  .cc-catalog-filters select {
    width: 100%;
    min-width: 0;
    min-height: 3.4rem;
    border: 1px solid #d8ddd7;
    border-radius: .9rem;
    padding: 0 2.2rem 0 .85rem;
    color: #101713;
    background-color: #fff;
    font-size: .88rem;
    font-weight: 750;
  }
  .cc-filter-check {
    min-height: 3.4rem;
    grid-column: 1 / -1;
    border: 1px solid #d8ddd7;
    border-radius: .9rem;
    padding: .7rem .85rem;
    background: #fff;
    font-size: .84rem;
    font-weight: 800;
  }
  .cc-filter-check input { width: 1.2rem; height: 1.2rem; accent-color: #138756; }
  .cc-catalog-filters .button {
    min-height: 3.5rem;
    grid-column: 1 / -1;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: #101713;
    font-size: .9rem;
    font-weight: 900;
    box-shadow: 0 .55rem 1.2rem rgba(16,23,19,.18);
  }
  .cc-filter-reset { min-height: 2.8rem; grid-column: 1 / -1; align-content: center; padding: 0; color: #5e655f; background: transparent; text-align: center; }
}
@media (max-width: 370px) {
  .cc-catalog-filters,.cc-catalog-filters.is-open { grid-template-columns: 1fr; }
  .cc-catalog-filters label,.cc-filter-check,.cc-catalog-filters .button,.cc-filter-reset { grid-column: 1; }
}
