/* Desktop styles retained; Mobile stacked accordion; dynamic option pruning (.pf-opt-hidden) */

/* Root tokens */
:root {
  --pf-primary:#002454;
  --pf-primary-hover:#00326f;
  --pf-primary-soft:#e3ecf7;
  --pf-bg:#ffffff;
  --pf-bg-alt:#f5f8fb;
  --pf-bg-panel:#ffffff;
  --pf-border:#d4dde5;
  --pf-border-strong:#c3ccd5;
  --pf-text:#14212d;
  --pf-text-soft:#4a5a68;
  --pf-text-mute:#7b8995;
  --pf-shadow:0 2px 4px rgba(0,0,0,.05),0 4px 16px -6px rgba(0,0,0,.12);
  --pf-shadow-hover:0 5px 22px -5px rgba(0,0,0,.18);
  --pf-focus:0 0 0 3px rgba(0,74,155,.35);
  --pf-radius-xs:4px;
  --pf-radius-sm:7px;
  --pf-radius-md:12px;
  --pf-radius-lg:18px;
  --pf-transition:.22s cubic-bezier(.4,0,.2,1);
  --pf-font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --pf-fs-2xs:.70rem;
  --pf-fs-xs:.75rem;
  --pf-fs-sm:.8rem;
  --pf-fs-base:.88rem;
  --pf-fs-md:.95rem;
  --pf-fs-lg:1.08rem;
  --pf-gap:26px;
}

.pf-app{
  font-family:var(--pf-font);
  color:var(--pf-text);
  display:flex;
  flex-direction:column;
  gap:var(--pf-gap);
  margin-inline:auto;
  width:100%;
  max-width:1400px;
  box-sizing:border-box;
  padding-inline:6px;
}

.pf-filters{
  background:linear-gradient(145deg,#ffffff 0%,#f3f7fb 120%);
  border:1px solid var(--pf-border);
  border-radius:var(--pf-radius-lg);
  padding:18px clamp(16px,2.3vw,24px) 14px;
  box-shadow:var(--pf-shadow);
  display:flex;
  flex-direction:column;
  gap:10px;
  position:relative;
  overflow:visible;
  z-index:30;
}

.pf-row-line{
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  align-items:center;
  width:100%;
}

.pf-field-block{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}

.pf-field-label{
  font-size:var(--pf-fs-2xs);
  font-weight:650;
  color:var(--pf-text-mute);
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1.1;
  user-select:none;
}

.pf-search{
  position:relative;
  flex:0 0 250px;
  min-width:210px;
}
.pf-search-wrap{
  position:relative;
  display:flex;
  align-items:center;
}
.pf-search-input{
  width:100%;
  padding:11px 38px 11px 13px;
  border:1px solid var(--pf-border);
  border-radius:var(--pf-radius-sm);
  font:500 var(--pf-fs-base)/1.15 var(--pf-font);
  background:var(--pf-bg-alt);
  transition:var(--pf-transition);
  outline:none;
}
.pf-search-input:focus{
  background:#fff;
  border-color:var(--pf-primary);
  box-shadow:var(--pf-focus);
}
.pf-search-input:hover{
  background:#fff;
  border-color:var(--pf-border-strong);
}
.pf-reset-btn{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  background:var(--pf-primary-soft);
  border:1px solid var(--pf-primary-soft);
  font-size:.72rem;
  cursor:pointer;
  color:var(--pf-primary);
  padding:4px 6px;
  border-radius:var(--pf-radius-xs);
  line-height:1;
  font-weight:600;
  transition:var(--pf-transition);
}
.pf-reset-btn:hover{
  background:#fff;
  border-color:var(--pf-primary);
}
.pf-reset-btn:focus{
  outline:none;
  box-shadow:var(--pf-focus);
}

.pf-facet-bar{
  display:flex;
  gap:12px;
  flex:1 1 auto;
  align-items:stretch;
  min-width:0;
}

.pf-loading,.pf-error{
  font-size:var(--pf-fs-base);
  color:var(--pf-text-mute);
  padding:8px 4px;
}

.pf-global-reset-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
}
.pf-global-reset{
  background:#f2f5f8;
  color:var(--pf-text-soft);
  border:1px solid var(--pf-border);
  padding:11px 16px 10px;
  font:600 var(--pf-fs-xs)/1 var(--pf-font);
  letter-spacing:.07em;
  text-transform:uppercase;
  border-radius:var(--pf-radius-sm);
  cursor:pointer;
  transition:var(--pf-transition);
  white-space:nowrap;
  min-width:130px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.pf-global-reset:hover{
  background:#fff;
  color:var(--pf-primary);
  border-color:var(--pf-primary);
  box-shadow:0 2px 6px -2px rgba(0,0,0,.12);
}
.pf-global-reset:focus{
  outline:none;
  box-shadow:var(--pf-focus);
}

.pf-ms{
  position:relative;
  flex:1 1 170px;
  min-width:150px;
  max-width:250px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.pf-ms-trigger{
  width:100%;
  padding:11px 40px 11px 12px;
  background:#fff;
  border:1px solid var(--pf-border);
  border-radius:var(--pf-radius-sm);
  text-align:left;
  font:600 var(--pf-fs-2xs)/1.1 var(--pf-font);
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--pf-text-soft);
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:6px;
  position:relative;
  transition:var(--pf-transition);
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}
.pf-ms-trigger:hover{
  background:var(--pf-bg-alt);
  border-color:var(--pf-border-strong);
}
.pf-ms.has-selection .pf-ms-trigger{
  background:var(--pf-primary-soft);
  border-color:var(--pf-primary);
  color:var(--pf-primary);
}
.pf-ms-trigger:focus{
  outline:none;
  box-shadow:var(--pf-focus);
}

.pf-caret{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  width:12px;
  height:12px;
  pointer-events:none;
}
.pf-caret:before{
  content:'';
  position:absolute;inset:0;
  background:
    linear-gradient(var(--pf-text-mute),var(--pf-text-mute)) center / 60% 2px no-repeat,
    linear-gradient(var(--pf-text-mute),var(--pf-text-mute)) center / 2px 60% no-repeat;
  mask:radial-gradient(circle at 50% 50%,#000 75%,transparent 76%);
  opacity:.65;
  border-radius:50%;
  transition:var(--pf-transition);
  transform:rotate(45deg);
}
.pf-ms.open .pf-caret:before{
  transform:rotate(225deg);
  opacity:1;
}

.pf-ms-panel{
  display:none;
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  min-width:100%;
  width:250px;
  max-height:320px;
  background:var(--pf-bg-panel);
  border:1px solid var(--pf-border);
  border-radius:var(--pf-radius-md);
  box-shadow:var(--pf-shadow);
  padding:12px 12px 14px;
  z-index:3000;
  flex-direction:column;
  gap:10px;
  animation:pfPanel .22s ease;
}
.pf-ms.open > .pf-ms-panel{display:flex;}

@keyframes pfPanel{
  0%{opacity:0;transform:translateY(8px) scale(.96);}
  100%{opacity:1;transform:translateY(0) scale(1);}
}

.pf-ms-tools{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.pf-tool{
  background:var(--pf-bg-alt);
  border:1px solid var(--pf-border);
  padding:5px 9px 5px;
  font:600 var(--pf-fs-2xs)/1 var(--pf-font);
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:var(--pf-radius-xs);
  cursor:pointer;
  color:var(--pf-text-mute);
  transition:var(--pf-transition);
}
.pf-tool:hover{
  background:#fff;
  color:var(--pf-text);
  border-color:var(--pf-border-strong);
}

.pf-ms-options{
  display:flex;
  flex-direction:column;
  gap:4px;
  overflow:auto;
  max-height:210px;
  padding-right:3px;
  scrollbar-width:thin;
}
.pf-ms-options::-webkit-scrollbar{width:8px;}
.pf-ms-options::-webkit-scrollbar-track{background:transparent;}
.pf-ms-options::-webkit-scrollbar-thumb{
  background:#ccd5dd;
  border-radius:20px;
}
.pf-ms-options::-webkit-scrollbar-thumb:hover{
  background:#b7c2cc;
}

.pf-ms-option{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 7px 6px 8px;
  border-radius:var(--pf-radius-xs);
  font-size:var(--pf-fs-base);
  cursor:pointer;
  background:transparent;
  transition:var(--pf-transition);
  line-height:1.2;
  user-select:none;
}
.pf-ms-option:hover{
  background:var(--pf-bg-alt);
}
.pf-ms-option input{
  width:18px;
  height:18px;
  accent-color:var(--pf-primary);
  cursor:pointer;
  flex-shrink:0;
  margin:0;
}

.pf-opt-hidden{
  display:none !important;
}

.pf-empty{
  font-size:var(--pf-fs-xs);
  font-style:italic;
  color:var(--pf-text-mute);
  padding:4px 2px;
}

.pf-meta-line{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:var(--pf-fs-xs);
  color:var(--pf-text-mute);
  letter-spacing:.05em;
  min-height:18px;
  padding:0 2px 2px;
}
.pf-count{
  font-weight:600;
  color:var(--pf-primary);
}

.pf-results-grid{
  display:grid;
  gap:26px;
  grid-template-columns:repeat(3,1fr);
  align-items:start;
}

.pf-initial{
  grid-column:1/-1;
  display:flex;
  justify-content:center;
  padding:60px 20px 80px;
}
.pf-initial-inner{
  background:linear-gradient(145deg,#f4f8fb 0%,#ffffff 120%);
  border:1px dashed var(--pf-border);
  border-radius:var(--pf-radius-lg);
  padding:42px clamp(16px,5vw,54px);
  max-width:620px;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:18px;
  align-items:center;
  text-align:center;
  box-shadow:0 4px 16px -6px rgba(0,0,0,.08);
}
.pf-initial-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(145deg,#f0f5f9,#ffffff);
  border:1px solid #d8e1e9;
  border-radius:20px;
  width:86px;
  height:86px;
  box-shadow:0 4px 14px -6px rgba(0,0,0,.12),0 2px 4px rgba(255,255,255,.6) inset;
}
.pf-initial-icon svg{
  width:54px;
  height:54px;
  display:block;
}
.pf-initial-text{
  margin:0;
  font-size:1.02rem;
  font-weight:600;
  letter-spacing:.015em;
  color:var(--pf-text-soft);
}

.pf-card{
  display:flex;
  flex-direction:row;
  gap:16px;
  background:#fff;
  border:1px solid var(--pf-border);
  border-radius:var(--pf-radius-md);
  padding:15px 17px 17px;
  box-shadow:var(--pf-shadow);
  transition:var(--pf-transition);
  position:relative;
  overflow:hidden;
  min-height:142px;
  isolation:isolate;
}
.pf-card:before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 130% -10%,rgba(0,36,84,.12),transparent 55%);
  opacity:0;
  transition:var(--pf-transition);
}
.pf-card:hover{
  border-color:var(--pf-primary);
  box-shadow:var(--pf-shadow-hover);
  transform:translateY(-3px);
}
.pf-card:hover:before{opacity:1;}

.pf-thumb{
  flex:0 0 80px;
  height:80px;
  border-radius:15px;
  background:var(--pf-bg-alt);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  position:relative;
  box-shadow:0 1px 3px rgba(0,0,0,.08) inset;
}
.pf-thumb img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.05s ease;
}
.pf-card:hover .pf-thumb img{transform:scale(1.055);}
.pf-no-thumb{
  font-size:.62rem;
  letter-spacing:.1em;
  color:var(--pf-text-mute);
  text-transform:uppercase;
  font-weight:600;
}

.pf-body{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
  flex:1;
}
.pf-title{
  margin:0;
  font-size:var(--pf-fs-lg);
  font-weight:650;
  line-height:1.16;
  letter-spacing:.015em;
}
.pf-title a{
  color:var(--pf-text);
  text-decoration:none;
  background:linear-gradient(var(--pf-primary),var(--pf-primary)) 0 100% / 0 2px no-repeat;
  transition:var(--pf-transition);
  padding-bottom:2px;
  position:relative;
}
.pf-title a:hover{
  color:var(--pf-primary);
  background-size:100% 2px;
}
.pf-desc{
  margin:0;
  font-size:var(--pf-fs-base);
  line-height:1.42;
  color:var(--pf-text-soft);
  letter-spacing:.01em;
}
mark{
  background:#ffe39f;
  padding:0 .18em;
  border-radius:4px;
  box-shadow:0 0 0 1px rgba(0,0,0,.04) inset;
}

.pf-empty-card{
  grid-column:1/-1;
  text-align:center;
  background:#fff;
  border:1px dashed var(--pf-border);
  border-radius:var(--pf-radius-lg);
  padding:50px 26px 54px;
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:center;
  box-shadow:var(--pf-shadow);
}
.pf-empty-title{
  margin:0;
  font-size:1.12rem;
  font-weight:650;
  color:var(--pf-text);
}
.pf-empty-msg{
  margin:0;
  max-width:460px;
  font-size:var(--pf-fs-base);
  color:var(--pf-text-mute);
  line-height:1.46;
}
.pf-btn-primary,
.pf-empty-reset{
  background:var(--pf-primary);
  color:#fff;
  border:1px solid var(--pf-primary);
  padding:11px 18px 10px;
  font:600 var(--pf-fs-xs)/1 var(--pf-font);
  letter-spacing:.07em;
  border-radius:var(--pf-radius-sm);
  cursor:pointer;
  text-transform:uppercase;
  transition:var(--pf-transition);
}
.pf-btn-primary:hover,
.pf-empty-reset:hover{
  background:var(--pf-primary-hover);
  border-color:var(--pf-primary-hover);
}
.pf-btn-primary:focus,
.pf-empty-reset:focus{
  outline:none;
  box-shadow:var(--pf-focus);
}

.sr-only{
  position:absolute;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
  padding:0;
  margin:-1px;
}

.pf-facet-hidden{display:none !important;}

/* RESPONSIVE */
@media (max-width:1250px){
  .pf-results-grid{gap:22px;}
}

@media (max-width:1100px){
  .pf-results-grid{grid-template-columns:repeat(2,1fr);}
  .pf-row-line{flex-wrap:wrap;}
  .pf-search{flex:1 1 260px;}
  .pf-facet-bar{flex:4 1 620px;}
}

@media (max-width:880px){
  .pf-facet-bar{gap:10px;}
  .pf-ms{min-width:140px;}
}

/* MOBILE stacked inline facets */
@media (max-width:780px){
  .pf-filters{
    padding:16px 16px 14px;
  }
  .pf-row-line{
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .pf-search{
    width:100%;
    flex:1 1 auto;
  }
  .pf-facet-bar{
    display:flex;
    flex-direction:column;
    gap:16px;
    width:100%;
    flex: 4 1 auto;
  }
  .pf-ms{
    max-width:none;
    min-width:0;
    width:100%;
    flex: 0 0 auto;
  }
  .pf-ms-trigger{
    font-size:var(--pf-fs-xs);
    padding:14px 46px 14px 14px;
    border-radius:10px;
    letter-spacing:.08em;
  }
  .pf-ms-panel{
    position:static;
    top:auto;
    left:auto;
    width:100%;
    max-height:260px;
    margin-top:8px;
    border-radius:14px;
    box-shadow:0 2px 10px -3px rgba(0,0,0,.15);
    animation:none;
    padding:14px 14px 16px;
  }
  .pf-ms:not(.open) > .pf-ms-panel{display:none;}
  .pf-ms.open .pf-ms-trigger{
    border-color:var(--pf-primary);
    background:var(--pf-primary-soft);
    color:var(--pf-primary);
  }
  .pf-caret{right:16px;}
  .pf-ms-options{
    max-height:180px;
    padding-right:4px;
  }
  .pf-global-reset-wrap{
    width:100%;
    justify-content:flex-end;
    margin-top:4px;
  }
  .pf-global-reset{
    width:100%;
    min-width:0;
  }
  .pf-results-grid{
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
}

@media (max-width:560px){
  .pf-results-grid{
    grid-template-columns:1fr;
    gap:22px;
  }
  .pf-card{
    flex-direction:row;
  }
}

@media (max-width:460px){
  .pf-card{
    flex-direction:column;
    padding:15px 14px 18px;
  }
  .pf-thumb{
    width:100%;
    height:170px;
    border-radius:14px;
  }
  .pf-initial-inner{padding:38px 22px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .pf-card:hover{transform:none;}
  .pf-ms-panel{animation:none!important;}
}