/* ============================================================
   Fragrance Shop Widget v6 — Bulletproof against global kit
   Every interactive element fully reset with high specificity.
   ============================================================ */

/* ── NUCLEAR RESET: kill theme/global-kit styling on our elements ── */
.fsw-wrap button,
.fsw-wrap select,
.fsw-wrap input,
.fsw-wrap a,
.fsw-wrap .fsw-filter-trigger,
.fsw-wrap .fsw-tab,
.fsw-wrap .fsw-reset-btn,
.fsw-wrap .fsw-apply-btn,
.fsw-wrap .fsw-atc-btn,
.fsw-wrap .fsw-pg-btn,
.fsw-wrap .fsw-sort-select {
    -webkit-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    font-family: 'Jost', sans-serif !important;
    letter-spacing: normal;
    line-height: 1.4 !important;
    min-height: 0 !important;
    text-transform: none;
}

.fsw-wrap, .fsw-wrap *, .fsw-wrap *::before, .fsw-wrap *::after { box-sizing: border-box !important; }
.fsw-wrap {
    font-family: 'Jost', -apple-system, sans-serif !important;
    background: var(--fsw-page-bg, #fff) !important;
    color: var(--fsw-text, #1C1C1C) !important;
    line-height: 1.5 !important;
    width: 100% !important; max-width: 100% !important; margin: 0 !important;
}
.fsw-wrap a { text-decoration: none !important; color: inherit !important; }
.fsw-wrap h1, .fsw-wrap h2, .fsw-wrap h3, .fsw-wrap h4, .fsw-wrap p { margin: 0 !important; padding: 0 !important; }

/* ════════ HEADER ════════ */
.fsw-wrap .fsw-header {
    background: var(--fsw-header-bg, #FAF8F4) !important;
    padding: 30px 36px 0 !important;
    border-bottom: 1px solid var(--fsw-border, #E8E3D8) !important;
}
.fsw-wrap .fsw-breadcrumb { font-size: 10px !important; letter-spacing: 2px !important; text-transform: uppercase !important; color: var(--fsw-bc-c, #AAA) !important; margin: 0 0 10px !important; }
.fsw-wrap .fsw-page-title {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: clamp(22px, 2.2vw, 32px) !important; font-weight: 600 !important;
    color: var(--fsw-title-c, #1C1C1C) !important; margin: 0 0 18px !important;
    line-height: 1.15 !important; display: flex !important; align-items: baseline !important;
    gap: 10px !important; flex-wrap: wrap !important;
}
.fsw-wrap .fsw-hdr-count { font-size: 12px !important; font-weight: 400 !important; color: var(--fsw-count-c, #C9A84C) !important; }

/* underline tabs */
.fsw-wrap .fsw-tabs { display: flex !important; flex-wrap: wrap !important; gap: 0 !important; }
.fsw-wrap .fsw-tab {
    font-size: 11px !important; font-weight: 600 !important; letter-spacing: 1.2px !important;
    text-transform: uppercase !important; padding: 12px 22px !important;
    background: transparent !important; border: 0 !important;
    border-bottom: 2px solid transparent !important; color: var(--fsw-tab-text, #888) !important;
    cursor: pointer !important; outline: none !important; transition: color .2s, border-color .2s !important;
    border-radius: 0 !important;
}
.fsw-wrap .fsw-tab.active { color: var(--fsw-tab-act-bg, #C9A84C) !important; border-bottom-color: var(--fsw-tab-act-bg, #C9A84C) !important; }
.fsw-wrap .fsw-tab:not(.active):hover { color: var(--fsw-text, #1C1C1C) !important; }

/* ════════ TOPBAR ════════ */
.fsw-wrap .fsw-topbar {
    display: flex !important; justify-content: space-between !important; align-items: center !important;
    padding: 12px 36px !important; background: var(--fsw-topbar-bg, #FAF8F4) !important;
    border-bottom: 1px solid var(--fsw-border, #E8E3D8) !important; gap: 12px !important; flex-wrap: wrap !important;
}
.fsw-wrap .fsw-result-count { font-size: 12px !important; color: var(--fsw-res-text, #888) !important; }
.fsw-wrap .fsw-topbar-right { display: flex !important; align-items: center !important; gap: 10px !important; }

.fsw-wrap .fsw-sort-select {
    font-size: 12px !important; color: var(--fsw-sort-text, #333) !important;
    background-color: var(--fsw-sort-bg, #fff) !important;
    border: 1.5px solid var(--fsw-sort-border, #C9A84C) !important; border-radius: 5px !important;
    padding: 9px 34px 9px 14px !important; outline: none !important; cursor: pointer !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C9A84C' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important; background-position: right 12px center !important;
    min-width: 190px !important; font-weight: 500 !important;
}

/* Mobile filter button (hidden desktop) */
.fsw-wrap .fsw-mob-filter-btn {
    display: none !important; align-items: center !important; gap: 7px !important;
    background: var(--fsw-fb-bg, #1C1C1C) !important; color: var(--fsw-fb-txt, #fff) !important;
    border: 0 !important; border-radius: 5px !important; padding: 10px 16px !important;
    font-size: 11px !important; font-weight: 600 !important; letter-spacing: 1px !important;
    text-transform: uppercase !important; cursor: pointer !important; outline: none !important;
}
.fsw-wrap .fsw-active-count { display:none !important; min-width:16px !important; height:16px !important; background:var(--fsw-gold,#C9A84C) !important; color:#fff !important; border-radius:50% !important; font-size:9px !important; font-weight:700 !important; align-items:center !important; justify-content:center !important; padding:0 3px !important; }
.fsw-wrap .fsw-active-count.visible { display:inline-flex !important; }

/* ════════ BODY (flex) ════════ */
.fsw-wrap .fsw-body {
    display: flex !important; flex-direction: row !important; align-items: flex-start !important;
    width: 100% !important; max-width: 100% !important; gap: 0 !important; position: relative !important;
}

/* ════════ SIDEBAR ════════ */
.fsw-wrap .fsw-sidebar {
    flex: 0 0 270px !important; width: 270px !important; max-width: 270px !important;
    align-self: stretch !important; border-right: 1px solid var(--fsw-border, #E8E3D8) !important;
    background: var(--fsw-sidebar-bg, #FAFAF8) !important; position: sticky !important; top: 0 !important;
    max-height: 100vh !important; overflow-y: auto !important; overflow-x: hidden !important;
    scrollbar-width: thin !important; scrollbar-color: var(--fsw-gold, #C9A84C) transparent !important;
}
.fsw-wrap .fsw-sidebar::-webkit-scrollbar { width: 4px !important; }
.fsw-wrap .fsw-sidebar::-webkit-scrollbar-thumb { background: var(--fsw-gold, #C9A84C) !important; border-radius: 2px !important; }
.fsw-wrap .fsw-sidebar-inner { padding: 24px 22px 50px !important; }

.fsw-wrap .fsw-sidebar-head {
    display: flex !important; justify-content: space-between !important; align-items: center !important;
    margin-bottom: 18px !important; padding-bottom: 16px !important;
    border-bottom: 1px solid var(--fsw-border, #E8E3D8) !important;
}
.fsw-wrap .fsw-sidebar-title { font-family: 'Cormorant Garamond', serif !important; font-size: 19px !important; font-weight: 600 !important; color: var(--fsw-drawer-title, #1C1C1C) !important; }
.fsw-wrap .fsw-head-right { display: flex !important; align-items: center !important; gap: 12px !important; }
.fsw-wrap .fsw-reset-btn {
    font-size: 10px !important; font-weight: 600 !important; letter-spacing: 1px !important;
    text-transform: uppercase !important; color: var(--fsw-reset-txt, #AAA) !important;
    background: transparent !important; border: 0 !important; cursor: pointer !important;
    padding: 0 !important; outline: none !important; text-decoration: underline !important; text-underline-offset: 3px !important;
}
.fsw-wrap .fsw-reset-btn:hover { color: var(--fsw-gold, #C9A84C) !important; }
.fsw-wrap .fsw-mob-close { display: none !important; }

/* ── Accordion sections — TRANSPARENT triggers (no maroon bleed) ── */
.fsw-wrap .fsw-filter-sec { border-bottom: 1px solid var(--fsw-border, #E8E3D8) !important; background: transparent !important; }
.fsw-wrap .fsw-filter-trigger {
    width: 100% !important; display: flex !important; justify-content: space-between !important;
    align-items: center !important; background: transparent !important; border: 0 !important;
    padding: 15px 0 !important; font-size: 11px !important; font-weight: 700 !important;
    letter-spacing: 1.8px !important; text-transform: uppercase !important;
    color: var(--fsw-sec-title, #1C1C1C) !important; cursor: pointer !important;
    outline: none !important; text-align: left !important; border-radius: 0 !important;
}
.fsw-wrap .fsw-trigger-icon { color: var(--fsw-gold, #C9A84C) !important; font-size: 15px !important; line-height: 1 !important; flex-shrink: 0 !important; transition: transform .2s !important; }
.fsw-wrap .fsw-filter-sec.closed .fsw-trigger-icon { transform: rotate(-90deg) !important; }
.fsw-wrap .fsw-filter-body { overflow: hidden !important; max-height: 999px !important; opacity: 1 !important; padding-bottom: 14px !important; transition: max-height .26s ease, opacity .2s ease, padding .2s ease !important; }
.fsw-wrap .fsw-filter-sec.closed .fsw-filter-body { max-height: 0 !important; opacity: 0 !important; padding-bottom: 0 !important; pointer-events: none !important; }

/* radios */
.fsw-wrap .fsw-radio-row { display:flex !important; align-items:center !important; gap:9px !important; font-size:12px !important; color:var(--fsw-check-txt,#3A3A3A) !important; cursor:pointer !important; padding:5px 4px !important; border-radius:4px !important; transition:background .15s !important; font-weight:400 !important; }
.fsw-wrap .fsw-radio-row:hover { background:rgba(201,168,76,.07) !important; }
.fsw-wrap .fsw-radio-row input { display:none !important; }
.fsw-wrap .fsw-radio-ui { width:15px !important; height:15px !important; border-radius:50% !important; border:2px solid #ccc !important; flex-shrink:0 !important; transition:all .15s !important; }
.fsw-wrap .fsw-radio-row input:checked + .fsw-radio-ui { border-color:var(--fsw-check,#C9A84C) !important; background:var(--fsw-check,#C9A84C) !important; box-shadow:inset 0 0 0 3px #fff !important; }

/* checkboxes */
.fsw-wrap .fsw-check-row { display:flex !important; align-items:center !important; gap:9px !important; font-size:12px !important; color:var(--fsw-check-txt,#3A3A3A) !important; cursor:pointer !important; padding:5px 4px !important; border-radius:4px !important; transition:background .15s !important; font-weight:400 !important; }
.fsw-wrap .fsw-check-row:hover { background:rgba(201,168,76,.07) !important; }
.fsw-wrap .fsw-check-row input { display:none !important; }
.fsw-wrap .fsw-check-ui { width:15px !important; height:15px !important; border-radius:3px !important; border:2px solid #ccc !important; flex-shrink:0 !important; position:relative !important; transition:all .15s !important; }
.fsw-wrap .fsw-check-row input:checked + .fsw-check-ui { background:var(--fsw-check,#C9A84C) !important; border-color:var(--fsw-check,#C9A84C) !important; }
.fsw-wrap .fsw-check-row input:checked + .fsw-check-ui::after { content:'' !important; position:absolute !important; left:3px !important; top:0 !important; width:5px !important; height:8px !important; border:2px solid #fff !important; border-top:0 !important; border-left:0 !important; transform:rotate(45deg) !important; }
.fsw-wrap .fsw-cnt { margin-left:auto !important; font-size:10px !important; color:var(--fsw-text-light,#AAA) !important; font-weight:400 !important; }

/* size chips */
.fsw-wrap .fsw-size-grid { display:flex !important; flex-wrap:wrap !important; gap:6px !important; }
.fsw-wrap .fsw-size-chip { font-size:10px !important; font-weight:600 !important; padding:5px 10px !important; border:1.5px solid var(--fsw-border,#E0D9C8) !important; border-radius:3px !important; cursor:pointer !important; color:var(--fsw-check-txt,#3A3A3A) !important; transition:all .15s !important; display:block !important; background:transparent !important; letter-spacing:.5px !important; }
.fsw-wrap .fsw-size-chip input { display:none !important; }
.fsw-wrap .fsw-size-chip:has(input:checked) { background:var(--fsw-check,#C9A84C) !important; border-color:var(--fsw-check,#C9A84C) !important; color:#fff !important; }
.fsw-wrap .fsw-size-chip:not(:has(input:checked)):hover { border-color:var(--fsw-gold,#C9A84C) !important; }

/* price */
.fsw-wrap .fsw-price-inputs { display:flex !important; align-items:center !important; gap:8px !important; margin-bottom:14px !important; }
.fsw-wrap .fsw-price-field { flex:1 !important; position:relative !important; }
.fsw-wrap .fsw-price-field .fsw-cur { position:absolute !important; left:10px !important; top:50% !important; transform:translateY(-50%) !important; font-size:11px !important; color:var(--fsw-text-light,#999) !important; pointer-events:none !important; z-index:2 !important; }
.fsw-wrap .fsw-price-field input {
    width:100% !important; font-size:12px !important; font-weight:600 !important;
    color:var(--fsw-check-txt,#333) !important; background:var(--fsw-card-bg,#fff) !important;
    border:1px solid var(--fsw-border,#E8E3D8) !important; border-radius:5px !important;
    padding:8px 8px 8px 22px !important; outline:none !important; text-align:left !important; -moz-appearance:textfield !important;
}
.fsw-wrap .fsw-price-field input::-webkit-outer-spin-button,
.fsw-wrap .fsw-price-field input::-webkit-inner-spin-button { -webkit-appearance:none !important; margin:0 !important; }
.fsw-wrap .fsw-price-field input:focus { border-color:var(--fsw-gold,#C9A84C) !important; }
.fsw-wrap .fsw-price-dash { color:var(--fsw-gold,#C9A84C) !important; font-weight:700 !important; flex-shrink:0 !important; }

.fsw-wrap .fsw-slider-wrap { position:relative !important; height:26px !important; margin:8px 6px 0 !important; }
.fsw-wrap .fsw-slider-track { position:absolute !important; top:50% !important; transform:translateY(-50%) !important; left:0 !important; right:0 !important; height:4px !important; background:var(--fsw-border,#E0D9C8) !important; border-radius:2px !important; }
.fsw-wrap .fsw-slider-fill { position:absolute !important; height:100% !important; background:var(--fsw-range-c,#C9A84C) !important; border-radius:2px !important; }
.fsw-wrap .fsw-range { position:absolute !important; top:50% !important; transform:translateY(-50%) !important; width:calc(100% + 12px) !important; margin-left:-6px !important; height:4px !important; background:transparent !important; pointer-events:none !important; outline:none !important; padding:0 !important; border:0 !important; }
.fsw-wrap .fsw-range::-webkit-slider-thumb { -webkit-appearance:none !important; width:18px !important; height:18px !important; border-radius:50% !important; background:var(--fsw-gold,#C9A84C) !important; border:3px solid #fff !important; box-shadow:0 2px 6px rgba(0,0,0,.25) !important; pointer-events:all !important; cursor:pointer !important; }
.fsw-wrap .fsw-range::-moz-range-thumb { width:18px !important; height:18px !important; border-radius:50% !important; background:var(--fsw-gold,#C9A84C) !important; border:3px solid #fff !important; pointer-events:all !important; cursor:pointer !important; }

/* Apply */
.fsw-wrap .fsw-apply-btn {
    display:block !important; width:100% !important; text-align:center !important;
    background:var(--fsw-apply-bg,#C9A84C) !important; color:var(--fsw-apply-txt,#fff) !important;
    font-size:11px !important; font-weight:700 !important; letter-spacing:2px !important;
    text-transform:uppercase !important; border:0 !important; border-radius:5px !important;
    padding:13px !important; cursor:pointer !important; outline:none !important; margin-top:20px !important; transition:opacity .2s !important;
}
.fsw-wrap .fsw-apply-btn:hover { opacity:.84 !important; }

/* ════════ MAIN ════════ */
.fsw-wrap .fsw-main { flex:1 1 auto !important; min-width:0 !important; width:auto !important; }
.fsw-wrap .fsw-grid-wrap { padding:26px 30px 16px !important; }
.fsw-wrap .fsw-grid { display:grid !important; gap:22px !important; animation:fsw-in .3s ease both !important; }
@keyframes fsw-in { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.fsw-wrap .fsw-cols-2 { grid-template-columns:repeat(2,1fr) !important; }
.fsw-wrap .fsw-cols-3 { grid-template-columns:repeat(3,1fr) !important; }
.fsw-wrap .fsw-cols-4 { grid-template-columns:repeat(4,1fr) !important; }

/* card */
.fsw-wrap .fsw-card { background:var(--fsw-card-bg,#fff) !important; border:1px solid var(--fsw-card-border,#EDEDE8) !important; border-radius:10px !important; overflow:hidden !important; display:flex !important; flex-direction:column !important; transition:box-shadow .24s, border-color .24s !important; }
.fsw-wrap .fsw-card:hover { box-shadow:0 8px 28px rgba(0,0,0,.08) !important; border-color:var(--fsw-gold,#C9A84C) !important; }
.fsw-wrap .fsw-card-oos { opacity:.65 !important; }
.fsw-wrap .fsw-card-img-wrap { display:block !important; position:relative !important; overflow:hidden !important; height:270px !important; background:#F5F3EE !important; flex-shrink:0 !important; }
.fsw-wrap .fsw-card-img { width:100% !important; height:100% !important; object-fit:contain !important; padding:18px !important; transition:transform .36s ease !important; }
.fsw-wrap .fsw-card:hover .fsw-card-img { transform:scale(1.05) !important; }
.fsw-wrap .fsw-card-overlay { position:absolute !important; inset:0 !important; background:rgba(28,28,28,.06) !important; display:flex !important; align-items:flex-end !important; justify-content:center !important; padding-bottom:16px !important; opacity:0 !important; transition:opacity .22s !important; }
.fsw-wrap .fsw-card:hover .fsw-card-overlay { opacity:1 !important; }
.fsw-wrap .fsw-overlay-icon { display:inline-flex !important; align-items:center !important; gap:5px !important; background:rgba(255,255,255,.94) !important; color:#1C1C1C !important; font-size:10px !important; font-weight:600 !important; letter-spacing:.8px !important; padding:6px 14px !important; border-radius:50px !important; }
.fsw-wrap .fsw-card-badges { position:absolute !important; top:11px !important; left:11px !important; display:flex !important; flex-direction:column !important; gap:4px !important; z-index:2 !important; }
.fsw-wrap .fsw-badge { display:inline-block !important; font-size:9px !important; font-weight:700 !important; letter-spacing:1.2px !important; text-transform:uppercase !important; padding:4px 8px !important; border-radius:3px !important; color:#fff !important; }
.fsw-wrap .fsw-sale-badge { background:var(--fsw-sale-bg,#C9A84C) !important; }
.fsw-wrap .fsw-new-badge { background:var(--fsw-new-bg,#3D6369) !important; }
.fsw-wrap .fsw-oos-badge { background:#888 !important; }
.fsw-wrap .fsw-disc-badge { position:absolute !important; top:11px !important; right:11px !important; background:var(--fsw-disc-bg,#D0021B) !important; color:var(--fsw-disc-txt,#fff) !important; font-size:11px !important; font-weight:800 !important; padding:4px 8px !important; border-radius:3px !important; z-index:2 !important; }
.fsw-wrap .fsw-card-body { padding:14px 16px 18px !important; display:flex !important; flex-direction:column !important; flex:1 !important; gap:8px !important; }
.fsw-wrap .fsw-card-title { font-family:'Cormorant Garamond',serif !important; font-size:16px !important; font-weight:600 !important; line-height:1.35 !important; color:var(--fsw-card-title-c,#1C1C1C) !important; }
.fsw-wrap .fsw-card-title a:hover { color:var(--fsw-gold,#C9A84C) !important; }
.fsw-wrap .fsw-card-price { font-size:14px !important; font-weight:600 !important; color:var(--fsw-price-c,#C9A84C) !important; }
.fsw-wrap .fsw-card-price * { color:inherit !important; }
.fsw-wrap .fsw-card-price del { opacity:.5 !important; font-weight:400 !important; font-size:11px !important; margin-right:4px !important; color:var(--fsw-price-old-c,#BBB) !important; }
.fsw-wrap .fsw-card-price del * { color:var(--fsw-price-old-c,#BBB) !important; }
.fsw-wrap .fsw-card-price ins { text-decoration:none !important; background:none !important; }
.fsw-wrap .fsw-atc-btn, .fsw-wrap a.fsw-atc-btn { display:block !important; width:100% !important; text-align:center !important; background:var(--fsw-btn-bg,#C9A84C) !important; color:var(--fsw-btn-txt,#fff) !important; font-size:10px !important; font-weight:700 !important; letter-spacing:2px !important; text-transform:uppercase !important; border:0 !important; border-radius:4px !important; padding:12px !important; cursor:pointer !important; outline:none !important; text-decoration:none !important; box-shadow:none !important; transition:opacity .2s !important; margin-top:auto !important; }
.fsw-wrap .fsw-atc-btn:hover, .fsw-wrap a.fsw-atc-btn:hover { opacity:.8 !important; color:var(--fsw-btn-txt,#fff) !important; }
.fsw-wrap .fsw-atc-btn.fsw-added { background:var(--fsw-gold-dark,#A67C32) !important; }

/* View Cart link — appears after add to cart */
.fsw-wrap .fsw-view-cart,
.fsw-wrap a.fsw-view-cart {
    display:block !important;
    width:100% !important;
    text-align:center !important;
    background:transparent !important;
    color:var(--fsw-btn-bg,#C9A84C) !important;
    font-size:10px !important;
    font-weight:700 !important;
    letter-spacing:2px !important;
    text-transform:uppercase !important;
    border:1.5px solid var(--fsw-btn-bg,#C9A84C) !important;
    border-radius:4px !important;
    padding:10px !important;
    cursor:pointer !important;
    outline:none !important;
    text-decoration:none !important;
    box-shadow:none !important;
    margin-top:8px !important;
    /* hidden until shown */
    max-height:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    margin-top:0 !important;
    border-width:0 !important;
    opacity:0 !important;
    overflow:hidden !important;
    transition:max-height .3s ease, opacity .3s ease, padding .3s ease, margin .3s ease, border-width .3s ease, background .2s, color .2s !important;
}
.fsw-wrap .fsw-view-cart.fsw-view-cart--show,
.fsw-wrap a.fsw-view-cart.fsw-view-cart--show {
    max-height:48px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
    margin-top:8px !important;
    border-width:1.5px !important;
    opacity:1 !important;
}
.fsw-wrap .fsw-view-cart:hover,
.fsw-wrap a.fsw-view-cart:hover {
    background:var(--fsw-btn-bg,#C9A84C) !important;
    color:var(--fsw-btn-txt,#fff) !important;
}

/* no results */
.fsw-wrap .fsw-no-results { grid-column:1/-1 !important; text-align:center !important; padding:70px 20px !important; color:var(--fsw-text-mid,#666) !important; }
.fsw-wrap .fsw-no-icon { font-size:40px !important; margin-bottom:12px !important; }
.fsw-wrap .fsw-no-results h3 { font-family:'Cormorant Garamond',serif !important; font-size:20px !important; font-weight:600 !important; margin:0 0 8px !important; }
.fsw-wrap .fsw-no-results p { font-size:13px !important; opacity:.7 !important; }

/* shimmer */
.fsw-wrap .fsw-grid-loading .fsw-card { pointer-events:none !important; border-color:transparent !important; }
.fsw-wrap .fsw-grid-loading .fsw-card-img-wrap, .fsw-wrap .fsw-grid-loading .fsw-card-body { background:linear-gradient(90deg,#F0ECE4 25%,#E8E3DA 50%,#F0ECE4 75%) !important; background-size:200% 100% !important; animation:fsw-shimmer 1.3s infinite !important; }
.fsw-wrap .fsw-grid-loading .fsw-card-img-wrap *, .fsw-wrap .fsw-grid-loading .fsw-card-body * { opacity:0 !important; }
@keyframes fsw-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* pagination */
.fsw-wrap .fsw-pagination { display:flex !important; justify-content:center !important; align-items:center !important; gap:5px !important; padding:16px 30px 48px !important; flex-wrap:wrap !important; }
.fsw-wrap .fsw-pg-btn { min-width:38px !important; height:38px !important; padding:0 11px !important; background:var(--fsw-pg-bg,#fff) !important; border:1.5px solid var(--fsw-pg-border,#E0D9C8) !important; color:var(--fsw-pg-text,#555) !important; font-size:12px !important; border-radius:5px !important; cursor:pointer !important; outline:none !important; transition:all .18s !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }
.fsw-wrap .fsw-pg-btn:hover:not(.fsw-pg-active):not([disabled]) { border-color:var(--fsw-gold,#C9A84C) !important; color:var(--fsw-gold,#C9A84C) !important; }
.fsw-wrap .fsw-pg-btn.fsw-pg-active { background:var(--fsw-pg-act-bg,#C9A84C) !important; border-color:var(--fsw-pg-act-bg,#C9A84C) !important; color:var(--fsw-pg-act-txt,#fff) !important; font-weight:700 !important; }
.fsw-wrap .fsw-pg-btn[disabled] { opacity:.3 !important; cursor:not-allowed !important; }
.fsw-wrap .fsw-pg-dots { border-color:transparent !important; cursor:default !important; }

/* backdrop */
.fsw-mob-backdrop { display:none !important; position:fixed !important; inset:0 !important; background:rgba(0,0,0,.48) !important; z-index:100000 !important; backdrop-filter:blur(3px) !important; }
.fsw-mob-backdrop.open { display:block !important; }

/* ════════ RESPONSIVE ════════ */
@media (max-width: 900px) {
    .fsw-wrap .fsw-body { display:block !important; }
    .fsw-wrap .fsw-main { width:100% !important; }
    .fsw-wrap .fsw-sidebar {
        position:fixed !important; top:0 !important; right:-100% !important; bottom:0 !important; left:auto !important;
        flex:none !important; width:min(340px,88vw) !important; max-width:88vw !important;
        height:100% !important; max-height:100vh !important; z-index:100001 !important;
        box-shadow:-4px 0 32px rgba(0,0,0,.2) !important; border-right:0 !important;
        transition:right .3s cubic-bezier(.4,0,.2,1) !important;
    }
    .fsw-wrap .fsw-sidebar.mob-open { right:0 !important; }
    .fsw-wrap .fsw-mob-filter-btn { display:inline-flex !important; }
    .fsw-wrap .fsw-mob-close { display:flex !important; align-items:center !important; justify-content:center !important; width:36px !important; height:36px !important; background:var(--fsw-header-bg,#FAF8F4) !important; border:2px solid var(--fsw-border,#E8E3D8) !important; border-radius:50% !important; cursor:pointer !important; outline:none !important; color:var(--fsw-text,#1C1C1C) !important; flex-shrink:0 !important; }
    .fsw-wrap .fsw-mob-close:hover { background:var(--fsw-gold,#C9A84C) !important; border-color:var(--fsw-gold,#C9A84C) !important; color:#fff !important; }
    .fsw-wrap .fsw-mob-close svg { width:17px !important; height:17px !important; stroke-width:2.5 !important; }
    .fsw-wrap .fsw-cols-3, .fsw-wrap .fsw-cols-4 { grid-template-columns:repeat(2,1fr) !important; }
    .fsw-wrap .fsw-grid-wrap { padding:18px 14px !important; }
    .fsw-wrap .fsw-header { padding:18px 14px 0 !important; }
    .fsw-wrap .fsw-topbar { padding:9px 14px !important; }
    .fsw-wrap .fsw-pagination { padding-left:14px !important; padding-right:14px !important; }
}
@media (max-width: 520px) {
    .fsw-wrap .fsw-cols-2, .fsw-wrap .fsw-cols-3, .fsw-wrap .fsw-cols-4 { grid-template-columns:1fr !important; }
    .fsw-wrap .fsw-grid { gap:14px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .fsw-wrap .fsw-card:hover .fsw-card-img { transform:none !important; }
    .fsw-wrap .fsw-grid { animation:none !important; }
}
