/* ================================================================
   Queeny PGL – Filtres intégrés v2.0
   Palette Confidence : #55162F · #9A7078 · #C8AB9F
   ================================================================ */

.queeny-filters { width:100%; font-family:inherit; }

/* ----- Bouton mobile ----- */
.queeny-filters__mobile-btn {
    display:none; width:100%; align-items:center; gap:8px;
    background:#55162F; color:#fff; border:none; border-radius:8px;
    padding:12px 18px; font-size:0.95rem; font-weight:600;
    cursor:pointer; min-height:46px;
}
@media(max-width:768px) {
    .queeny-filters__mobile-btn { display:flex; }
    .queeny-filters__body { display:none; }
    .queeny-filters__body.is-open { display:block; margin-top:10px; }
}

/* ----- Titre section ----- */
.queeny-filters__section-title {
    display:block; font-size:1.1rem; font-weight:700;
    color:#55162F; margin-bottom:16px; padding-bottom:10px;
    border-bottom:2px solid #C8AB9F; letter-spacing:.03em; text-transform:uppercase;
}

/* ----- Groupe ----- */
.queeny-filters__group { margin-bottom:4px; border-bottom:1px solid #ede5e0; padding-bottom:4px; }
.queeny-filters__group:last-child { border-bottom:none; }

/* ----- Toggle accordeon ----- */
.queeny-filters__toggle {
    display:flex; align-items:center; justify-content:space-between;
    width:100%; background:none; border:none; padding:12px 0;
    font-size:.9rem; font-weight:700; color:#55162F;
    text-transform:uppercase; letter-spacing:.04em;
    cursor:pointer; min-height:44px;
}
.queeny-filters__chevron {
    font-size:1.1rem; color:#C8AB9F;
    transition:transform .2s ease; line-height:1;
}
.queeny-filters__toggle[aria-expanded="false"] .queeny-filters__chevron { transform:rotate(0); }
.queeny-filters__toggle[aria-expanded="true"]  .queeny-filters__chevron { transform:rotate(90deg); }
.queeny-filters__group-body[hidden] { display:none; }
.queeny-filters__group-body { padding-bottom:8px; }

/* ----- Liste checkbox ----- */
.queeny-filters__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.queeny-filters__item { display:flex; align-items:center; }
.queeny-filters__checkbox { position:absolute; opacity:0; width:0; height:0; }
.queeny-filters__item label {
    display:flex; align-items:center; gap:10px;
    cursor:pointer; font-size:.875rem; color:#3a3a3a;
    padding:7px 8px; border-radius:6px; width:100%;
    min-height:40px; transition:background .15s;
    box-sizing:border-box; line-height:1.3;
}
.queeny-filters__item label::before {
    content:''; display:inline-flex; flex-shrink:0;
    width:17px; height:17px; border:2px solid #C8AB9F;
    border-radius:4px; background:#fff;
    transition:background .15s, border-color .15s;
}
.queeny-filters__item label:hover { background:#faf5f3; }
.queeny-filters__checkbox:checked + label { color:#55162F; font-weight:600; }
.queeny-filters__checkbox:checked + label::before {
    background:#55162F; border-color:#55162F;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:center; background-size:10px;
}
.queeny-filters__count { font-size:.76rem; color:#9A7078; margin-left:auto; flex-shrink:0; }

/* ----- Sort select ----- */
.queeny-filters__group--sort { padding-top:0; }
.queeny-filters__group--sort .queeny-filters__section-title { margin-bottom:8px; }
.queeny-filters__select {
    width:100%; padding:9px 14px; border:1px solid #C8AB9F;
    border-radius:8px; font-size:.875rem; color:#3a3a3a;
    background:#faf7f5; min-height:42px; cursor:pointer;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239A7078' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center; background-size:10px;
}
.queeny-filters__select:focus { outline:none; border-color:#55162F; }

/* ----- Prix slider ----- */
.queeny-filters__price-labels {
    display:flex; align-items:center; gap:4px;
    font-size:.85rem; color:#55162F; font-weight:600; margin-bottom:10px;
}
.queeny-filters__range {
    -webkit-appearance:none; appearance:none;
    width:100%; height:4px; border-radius:2px;
    background:linear-gradient(to right,#C8AB9F,#9A7078);
    outline:none; cursor:pointer; margin-bottom:6px;
}
.queeny-filters__range::-webkit-slider-thumb {
    -webkit-appearance:none; width:20px; height:20px;
    border-radius:50%; background:#55162F; cursor:pointer;
    border:2px solid #fff; box-shadow:0 1px 4px rgba(85,22,47,.3);
    transition:transform .15s;
}
.queeny-filters__range::-webkit-slider-thumb:hover { transform:scale(1.15); }
.queeny-filters__range::-moz-range-thumb {
    width:20px; height:20px; border-radius:50%;
    background:#55162F; border:2px solid #fff;
    box-shadow:0 1px 4px rgba(85,22,47,.3);
}

/* ----- Reset ----- */
.queeny-filters__reset {
    display:block; width:100%; margin-top:14px;
    padding:10px 16px; background:none;
    border:1px solid #C8AB9F; border-radius:8px;
    color:#9A7078; font-size:.85rem; cursor:pointer;
    transition:all .2s; min-height:42px;
}
.queeny-filters__reset:hover { background:#55162F; border-color:#55162F; color:#fff; }

/* ----- Loader ----- */
.queeny-filters__loader { display:none; align-items:center; gap:8px; padding:10px 0; color:#9A7078; font-size:.85rem; }
.queeny-filters__loader.is-loading { display:flex; }
.queeny-filters__spinner {
    display:inline-block; width:18px; height:18px;
    border:2px solid #C8AB9F; border-top-color:#55162F;
    border-radius:50%; animation:qfSpin .7s linear infinite;
}
@keyframes qfSpin { to { transform:rotate(360deg); } }

/* ----- Disposition sidebar ----- */
.queeny-pgl-layout--sidebar {
    display:grid;
    grid-template-columns:280px 1fr;
    gap:24px;
    align-items:start;
}
@media(max-width:900px) {
    .queeny-pgl-layout--sidebar { grid-template-columns:1fr; }
}