/* ============================================================
   La Caféothèque — Boutique (archive WooCommerce refondue)
   D'après Boutique.dc.html. Scopé sous .cafeo-boutique.
   NB charte : plancher strict 14px (le mockup descend à 10-13px,
   on remonte tout à 14px pour respecter la règle du site).
   ============================================================ */
.cafeo-boutique{--cream:#fcf3e5;--charcoal:#2c3235;--gold:#ffd17c;--gold-h:#dfa63e;--brown:#42240c;--brown-d:#482b13;--rose:#9a7862;font-family:'Onest',sans-serif;color:var(--charcoal);}
.cafeo-boutique *,.cafeo-boutique *::before,.cafeo-boutique *::after{box-sizing:border-box;}

.cafeo-boutique .bo-wrap{padding:56px max(90px, calc(50vw - 660px)) 90px;display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start;}

/* ─── Sidebar filtres ─── */
.cafeo-boutique .bo-filters{position:sticky;top:140px;background:#fff;border-radius:12px;padding:28px 26px 32px;}
.cafeo-boutique .bo-filters__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
.cafeo-boutique .bo-filters__title{font-size:18px;font-weight:500;letter-spacing:1.5px;color:var(--brown-d);text-transform:uppercase;margin:0;}
.cafeo-boutique .bo-reset{background:none;border:0;font-size:14px;color:var(--rose);letter-spacing:.3px;cursor:pointer;text-decoration:underline;font-family:'Onest',sans-serif;}
.cafeo-boutique .bo-reset:hover{color:var(--brown-d);}
.cafeo-boutique .bo-group{border-top:1px solid rgba(44,50,53,.08);padding:22px 0;}
.cafeo-boutique .bo-group--last{padding-bottom:0;}
.cafeo-boutique .bo-group__label{font-size:14px;font-weight:500;letter-spacing:1.5px;color:var(--charcoal);text-transform:uppercase;margin:0 0 18px;}

/* Prix */
.cafeo-boutique .bo-price__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;}
.cafeo-boutique .bo-price__label{font-size:14px;font-weight:500;letter-spacing:1.5px;color:var(--charcoal);text-transform:uppercase;margin:0;}
.cafeo-boutique .bo-price__val{font-size:15px;color:var(--brown-d);font-weight:500;}
.cafeo-boutique .bo-range{position:relative;height:18px;margin:0 0 18px;}
.cafeo-boutique .bo-range__track{position:absolute;top:7.5px;left:0;right:0;height:3px;border-radius:2px;background:rgba(154,120,98,.25);}
.cafeo-boutique .bo-range__fill{position:absolute;top:7.5px;left:0;height:3px;border-radius:2px;background:var(--gold);}
.cafeo-boutique .bo-range input[type=range]{appearance:none;-webkit-appearance:none;position:absolute;top:0;left:-9px;width:calc(100% + 18px);height:18px;background:transparent;margin:0;cursor:pointer;}
.cafeo-boutique .bo-range input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--gold);border:2px solid var(--brown);cursor:pointer;}
.cafeo-boutique .bo-range input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--gold);border:2px solid var(--brown);cursor:pointer;}
.cafeo-boutique .bo-price__ends{display:flex;align-items:center;justify-content:space-between;}
.cafeo-boutique .bo-price__ends span{font-size:14px;color:var(--rose);}
.cafeo-boutique .bo-price__hint{font-size:14px;color:var(--rose);line-height:1.5;margin:12px 0 0;}

/* Cases à cocher */
.cafeo-boutique .bo-check{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:14px;color:var(--charcoal);margin-bottom:12px;}
.cafeo-boutique .bo-check:last-child{margin-bottom:0;}
.cafeo-boutique .bo-check:hover{color:var(--brown-d);}
.cafeo-boutique .bo-check input{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1.5px solid var(--rose);border-radius:4px;background:#fff;cursor:pointer;flex-shrink:0;position:relative;transition:all .2s;margin:0;}
.cafeo-boutique .bo-check input:hover{border-color:var(--brown-d);}
.cafeo-boutique .bo-check input:checked{background:var(--gold);border-color:var(--gold);}
.cafeo-boutique .bo-check input:checked::after{content:'';position:absolute;left:5px;top:1.5px;width:5px;height:9px;border:solid var(--brown);border-width:0 2px 2px 0;transform:rotate(45deg);}
.cafeo-boutique .bo-check__name{flex:1;}
.cafeo-boutique .bo-check__count{font-size:14px;color:var(--rose);}

/* ─── Colonne principale ─── */
.cafeo-boutique .bo-main{display:flex;flex-direction:column;gap:32px;min-width:0;}
.cafeo-boutique .bo-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.cafeo-boutique .bo-results{font-size:14px;color:var(--rose);margin:0;}

/* Tri */
.cafeo-boutique .bo-sort{position:relative;z-index:50;}
.cafeo-boutique .bo-sort__btn{display:inline-flex;align-items:center;gap:12px;background:#fff;border:1px solid rgba(154,120,98,.4);border-radius:24px;padding:12px 20px 12px 22px;font-size:14px;color:var(--charcoal);cursor:pointer;letter-spacing:.3px;font-family:'Onest',sans-serif;transition:box-shadow .2s,border-color .2s;}
.cafeo-boutique .bo-sort.is-open .bo-sort__btn{border-color:var(--gold-h);box-shadow:0 0 0 3px rgba(255,209,124,.35);}
.cafeo-boutique .bo-sort__chev{transition:transform .25s;}
.cafeo-boutique .bo-sort.is-open .bo-sort__chev{transform:rotate(180deg);}
.cafeo-boutique .bo-sort__menu{position:absolute;top:calc(100% + 8px);right:0;min-width:230px;background:#fff;border:1px solid rgba(154,120,98,.25);border-radius:14px;box-shadow:0 12px 36px rgba(44,50,53,.16);padding:8px;display:none;flex-direction:column;gap:2px;}
.cafeo-boutique .bo-sort.is-open .bo-sort__menu{display:flex;}
.cafeo-boutique .bo-sort__opt{display:flex;align-items:center;gap:10px;background:transparent;color:var(--charcoal);border:0;border-radius:10px;padding:11px 14px;font-size:14px;letter-spacing:.3px;text-decoration:none;transition:background .15s;}
.cafeo-boutique .bo-sort__opt span{flex:1;}
.cafeo-boutique .bo-sort__opt:hover{background:rgba(255,209,124,.3);}
.cafeo-boutique .bo-sort__opt.is-active{background:var(--gold);color:var(--brown);font-weight:500;}

/* Grille + cartes */
.cafeo-boutique .bo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.cafeo-boutique .bo-card{background:#fff;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s;color:inherit;}
.cafeo-boutique .bo-card:hover{box-shadow:0 8px 32px rgba(44,50,53,.12);}
.cafeo-boutique .bo-card__media{height:230px;position:relative;overflow:hidden;background:linear-gradient(135deg,#2a1005,#5a2a10);}
.cafeo-boutique .bo-card__media img{width:100%;height:100%;object-fit:cover;object-position:30% top;display:block;}
.cafeo-boutique .bo-card__media::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(252,243,229,.9) 0%,transparent 38%);pointer-events:none;}
.cafeo-boutique .bo-card__ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;}
.cafeo-boutique .bo-card__ph svg{stroke:rgba(255,209,124,.3);}
.cafeo-boutique .bo-card__ph span{font-size:14px;letter-spacing:2px;color:rgba(255,209,124,.4);text-transform:uppercase;}
.cafeo-boutique .bo-card__badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--brown-d);color:var(--gold);font-size:14px;letter-spacing:1.5px;padding:4px 12px;border-radius:10px;}
.cafeo-boutique .bo-card__oos{position:absolute;top:14px;right:14px;z-index:2;background:rgba(44,50,53,.85);color:#f9f9f9;font-size:14px;letter-spacing:1.5px;padding:4px 12px;border-radius:10px;}
.cafeo-boutique .bo-card__body{padding:20px 22px 26px;display:flex;flex-direction:column;gap:8px;flex:1;}
.cafeo-boutique .bo-card__origin{font-size:14px;letter-spacing:2px;color:var(--rose);text-transform:uppercase;margin:0;}
.cafeo-boutique .bo-card__title{font-size:18px;font-weight:400;color:var(--charcoal);margin:0;}
.cafeo-boutique .bo-card__price{font-size:15px;color:var(--brown-d);font-weight:500;flex:1;margin:0;}
.cafeo-boutique .bo-card__price del{color:var(--rose);font-weight:400;margin-right:6px;}
.cafeo-boutique .bo-card__price ins{text-decoration:none;}
.cafeo-boutique .bo-card__btn{background:var(--gold);color:var(--brown);border:0;padding:11px 24px;border-radius:20px;font-size:14px;letter-spacing:1.5px;cursor:pointer;font-family:'Onest',sans-serif;width:fit-content;margin-top:8px;transition:background .2s;}
.cafeo-boutique .bo-card__btn:hover{background:var(--gold-h);}

/* Pagination */
.cafeo-boutique .bo-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap;}
.cafeo-boutique .bo-pager a,.cafeo-boutique .bo-pager span{min-width:42px;height:42px;padding:0 6px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;border:1px solid rgba(44,50,53,.12);background:#fff;color:var(--charcoal);text-decoration:none;transition:background .2s,border-color .2s;}
.cafeo-boutique .bo-pager .current{background:var(--brown-d);color:#fff;border-color:var(--brown-d);}
.cafeo-boutique .bo-pager a:hover{background:var(--gold-h);color:var(--brown);border-color:var(--gold-h);}
.cafeo-boutique .bo-empty{font-size:16px;color:var(--rose);}

/* ─── Responsive ─── */
@media(max-width:1080px){
	.cafeo-boutique .bo-wrap{grid-template-columns:1fr;gap:32px;padding:48px 48px 72px;}
	.cafeo-boutique .bo-filters{position:static;}
	.cafeo-boutique .bo-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:680px){
	.cafeo-boutique .bo-wrap{padding:40px 24px 64px;}
	.cafeo-boutique .bo-grid{grid-template-columns:1fr;}
}
