/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:50px;padding:.85rem 1.9rem;font-size:var(--fs-xs);font-weight:700;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--ruby);background:var(--ruby);color:var(--ivory);position:relative;overflow:hidden;transition:color .45s var(--ease),background .45s var(--ease),border-color .45s;isolation:isolate;text-align:center}
.btn::before{content:"";position:absolute;inset:0;background:var(--burgundy);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:hover{border-color:var(--burgundy)}
.btn svg{width:16px;height:16px;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--ghost{background:transparent;color:var(--ruby)}
.btn--ghost::before{background:var(--ruby)}
.btn--ghost:hover{color:var(--ivory);border-color:var(--ruby)}
.btn--light{background:var(--ivory);color:var(--burgundy);border-color:var(--ivory)}
.btn--light::before{background:var(--gold)}
.btn--light:hover{border-color:var(--gold)}
.btn--ghost-light{background:transparent;color:var(--ivory);border-color:rgba(253,247,238,.7)}
.btn--ghost-light::before{background:var(--ivory)}
.btn--ghost-light:hover{color:var(--burgundy);border-color:var(--ivory)}
.btn--block{width:100%}
.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.btn:disabled::before{display:none}
.text-link{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ruby);border-bottom:1px solid var(--gold);padding-bottom:4px}
.text-link svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.text-link:hover svg{transform:translateX(5px)}

/* fields */
.field{display:grid;gap:.4rem;position:relative}
.field label{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--espresso)}
.field input,.field select,.field textarea,.select{width:100%;min-height:50px;padding:.7rem .9rem;border:1px solid var(--line);background:var(--white);border-radius:0;transition:border-color .3s,box-shadow .3s;appearance:none;-webkit-appearance:none}
.field select,.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23492719' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;background-size:18px;padding-right:2.4rem}
.select{width:auto;min-height:44px;font-size:var(--fs-sm)}
.field textarea{min-height:150px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--gold)}
.field input:focus,.field select:focus,.field textarea:focus,.select:focus{outline:none;border-color:var(--ruby);box-shadow:0 0 0 3px rgba(166,0,22,.12)}
.field [aria-invalid=true]{border-color:var(--ruby);background:#FFF7F6}
.field__error{color:var(--ruby);font-size:var(--fs-xs);min-height:0}
.field__error:not(:empty){margin-top:.1rem}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--fs-sm);cursor:pointer}
.check input{accent-color:var(--ruby);width:18px;height:18px;margin-top:.15rem;flex:none}
.form-ok{border:1px solid var(--line-gold);background:var(--cream);padding:1.2rem 1.4rem;font-size:var(--fs-sm);display:flex;gap:.8rem;align-items:flex-start}
.form-ok svg{width:22px;height:22px;color:var(--ruby);flex:none}

/* product card */
.p-card{position:relative;display:flex;flex-direction:column}
.p-card__wrap{position:relative;overflow:hidden}
.p-card__media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--cream)}
.p-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),opacity .6s var(--ease)}
.p-card__media img.alt{opacity:0}
.p-card:hover .p-card__media img.alt,.p-card:focus-within .p-card__media img.alt{opacity:1}
.p-card:hover .p-card__media img{transform:scale(1.045)}
.p-card__badges{position:absolute;left:.7rem;top:.7rem;display:flex;gap:.4rem;z-index:2}
.tag{background:var(--ivory);color:var(--burgundy);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;padding:.3rem .55rem;font-weight:700}
.tag--sale{background:var(--ruby);color:var(--ivory)}
.tag--out{background:var(--charcoal);color:var(--ivory)}
.wish-btn{position:absolute;right:.5rem;top:.5rem;z-index:3;width:44px;height:44px;display:grid;place-items:center;color:var(--burgundy);transition:transform .35s var(--ease),color .3s}
.wish-btn svg{width:22px;height:22px;stroke-width:1.5;transition:fill .3s,stroke .3s}
.wish-btn:hover{transform:scale(1.12)}
.wish-btn[aria-pressed=true]{color:var(--ruby)}
.wish-btn[aria-pressed=true] svg{fill:var(--ruby);stroke:var(--ruby)}
.wish-btn--static{position:static;border:1px solid var(--line);width:50px;height:50px}
.p-card__quick{position:absolute;left:.7rem;right:.7rem;bottom:.7rem;z-index:3;background:rgba(253,247,238,.96);color:var(--burgundy);min-height:46px;font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:700;transform:translateY(130%);transition:transform .5s var(--ease),background .3s,color .3s}
.p-card:hover .p-card__quick,.p-card:focus-within .p-card__quick{transform:none}
.p-card__quick:hover{background:var(--ruby);color:var(--ivory)}
.p-card__body{padding-top:.9rem;display:grid;gap:.25rem}
.p-card__title{font-family:var(--font-display);font-size:1.3rem;line-height:1.1;color:var(--burgundy);font-weight:500}
.p-card__title a:hover{color:var(--ruby)}
.p-card__meta{font-size:var(--fs-xs);color:var(--muted);letter-spacing:.06em}
.p-card .price{font-size:var(--fs-sm)}
.swatches{display:flex;gap:.45rem;margin-top:.35rem;flex-wrap:wrap}
.swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(73,39,25,.3);position:relative;padding:0;transition:transform .3s}
.swatch::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid transparent;transition:border-color .3s}
.swatch:hover{transform:scale(1.12)}
.swatch[aria-pressed=true]::after{border-color:var(--ruby)}
.swatch--lg{width:30px;height:30px}
.swatch--lg::after{inset:-6px}
.swatch-label{font-size:var(--fs-xs);color:var(--muted);align-self:center;margin-left:.4rem}
.p-card--wl .p-card__quick{transform:none;position:static;margin-top:.6rem;background:transparent;border:1px solid var(--ruby);color:var(--ruby)}
.p-card--wl .p-card__quick:hover{background:var(--ruby);color:var(--ivory)}

/* chips */
.chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line-gold);padding:.35rem .5rem .35rem .85rem;font-size:var(--fs-xs);background:var(--white)}
.chip button{width:22px;height:22px;display:grid;place-items:center;color:var(--ruby)}
.chip svg{width:12px;height:12px}
.chip--clear{border:0;background:none;padding:.35rem .4rem}

/* accordion */
.acc{border-top:1px solid var(--line)}
.acc__item{border-bottom:1px solid var(--line)}
.acc__btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;padding:1.15rem 0;font-family:var(--font-display);font-size:1.4rem;color:var(--burgundy)}
.acc__btn svg{width:20px;height:20px;transition:transform .45s var(--ease);flex:none}
.acc__btn[aria-expanded=true] svg{transform:rotate(45deg)}
.acc__panel{overflow:hidden;height:0}
.acc__panel>div{padding-bottom:1.3rem;font-size:var(--fs-sm);color:var(--espresso)}
.acc__panel p{margin-bottom:.8rem}

/* filters */
.filters{font-size:var(--fs-sm)}
.filters__head{display:none}
.fgroup{border-bottom:1px solid var(--line);padding-block:1.1rem}
.fgroup>h3{font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--burgundy);margin-bottom:.9rem;display:flex;justify-content:space-between}
.fchips{display:flex;flex-wrap:wrap;gap:.45rem}
.fchip{min-width:42px;height:38px;padding:0 .7rem;border:1px solid var(--line);font-size:var(--fs-xs);transition:all .3s}
.fchip:hover{border-color:var(--ruby)}
.fchip[aria-pressed=true]{background:var(--ruby);color:var(--ivory);border-color:var(--ruby)}
.fcolor{display:flex;align-items:center;gap:.7rem;padding:.3rem 0;cursor:pointer}
.fcolor input{accent-color:var(--ruby);width:17px;height:17px}
.fcolor i{width:16px;height:16px;border-radius:50%;border:1px solid rgba(73,39,25,.3)}
.price-inputs{display:flex;gap:.6rem;align-items:center}
.price-inputs input{width:100%;min-height:42px;padding:.5rem .7rem;border:1px solid var(--line);background:var(--white)}
.filters__foot{display:none}

/* spinner-free skeleton for images */
img[loading=lazy]{background:var(--cream)}
button.mainimg{display:block;width:100%;padding:0;border:0}
.mainimg__hint{position:absolute;right:.8rem;bottom:.8rem;background:rgba(253,247,238,.92);color:var(--burgundy);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;padding:.4rem .7rem;pointer-events:none}
.lightbox-box{display:grid;place-items:center;background:var(--cream);min-height:60vh}
.lightbox-box img{max-height:82vh;width:auto;max-width:100%}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%)}
.lb-nav--prev{left:.4rem}.lb-nav--next{right:.4rem}
.modal__box.is-wide{width:min(1000px,100%)}
.modal__box.is-narrow{width:min(560px,100%)}
.search-bar>svg{width:26px;height:26px;color:var(--burgundy)}
.mn-link svg{width:18px;height:18px}
.qty button{display:grid;place-items:center}.qty button svg{width:16px;height:16px}
