/* =================================================================
   taxonomy-fp_category.css — Unified Category / Taxonomy page
   Namespace: .fp-cat-*
   Tokens only · mobile-first · DNA: archive-fp_deal V1 + single-deal V5
   Breakpoints: 600px · 768px (tablet) · 1024px (desktop) · 1280px (wide)
   ================================================================= */

/* ──────────────────────────────────────────────────────────────
   1. Page shell + shared utilities
   ────────────────────────────────────────────────────────────── */
.fp-cat-page {
    background: #fafafa;
    color: var(--fp-text-main);
    font-family: var(--fp-font);
    padding: var(--fp-space-4) 0 calc(var(--fp-space-16) + 80px); /* bottom bar clearance */
    display: flex;
    flex-direction: column;
    gap: var(--fp-space-10);
    position: relative;
}
.fp-cat-page > section { padding: 0 var(--fp-space-4); }
@media (min-width: 768px) {
    .fp-cat-page { padding-top: var(--fp-space-6); gap: var(--fp-space-12); padding-bottom: var(--fp-space-16); }
    .fp-cat-page > section { padding: 0 var(--fp-space-6); }
}
@media (min-width: 1024px) {
    .fp-cat-page { padding-top: var(--fp-space-8); }
    .fp-cat-page > section {
        padding: 0 var(--fp-space-8);
        max-width: 1320px;
        margin-left: auto; margin-right: auto;
        width: 100%;
    }
}

.fp-cat-page .fp-cat-icon { flex-shrink: 0; vertical-align: middle; }
.fp-cat-page svg.fp-cat-icon { display: inline-block; }

/* Pulse dot (just-dropped, ticker, trending) */
.fp-cat-pulse {
    width: 8px; height: 8px;
    border-radius: var(--fp-radius-circle);
    background: var(--fp-green);
    box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.7);
    animation: fpCatPulse 1.8s ease-out infinite;
    display: inline-block;
    vertical-align: middle;
}
@keyframes fpCatPulse {
    0%   { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.6); }
    70%  { box-shadow: 0 0 0 12px rgba(46, 204, 113, 0); }
    100% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0); }
}

/* ──────────────────────────────────────────────────────────────
   2. Section head + section utilities
   ────────────────────────────────────────────────────────────── */
.fp-cat-section-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--fp-space-2);
    margin-bottom: var(--fp-space-5);
}
.fp-cat-section-head--center { align-items: center; text-align: center; }
.fp-cat-section-head--inline {
    flex-direction: row; align-items: center; gap: var(--fp-space-3);
    flex-wrap: wrap;
}

.fp-cat-section-eyebrow {
    display: inline-flex; align-items: center; gap: var(--fp-space-2);
    background: #ecfdf5; color: #065f46;
    border: 1px solid #a7f3d0;
    border-radius: var(--fp-radius-pill);
    padding: 6px var(--fp-space-3);
    font-size: var(--fp-text-sm); font-weight: 700;
    letter-spacing: 0.04em; text-transform: uppercase;
}
.fp-cat-section-eyebrow .fp-cat-icon { width: 14px; height: 14px; }
.fp-cat-section-eyebrow--red     { background: #fff1f2; color: #be123c; border-color: #fda4af; }
.fp-cat-section-eyebrow--lime    { background: #ecfccb; color: #3f6212; border-color: #bef264; }
.fp-cat-section-eyebrow--ai      { background: var(--fp-indigo-soft); color: var(--fp-secondary); border-color: var(--fp-indigo-border); }
.fp-cat-section-eyebrow--ai-dark { background: rgba(255,255,255,0.12); color: #fff; border-color: rgba(255,255,255,0.2); }

.fp-cat-section-h2 {
    margin: 0;
    font-size: var(--fp-text-xl);
    line-height: 1.2; font-weight: 800; letter-spacing: -0.01em;
    color: var(--fp-text-main);
}
.fp-cat-section-h2-inline {
    margin: 0;
    font-size: var(--fp-text-lg2); font-weight: 800;
    color: var(--fp-text-main);
}
.fp-cat-section-sub {
    margin: 0;
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base); line-height: 1.5;
}
.fp-cat-section-tag {
    color: var(--fp-text-muted);
    font-size: var(--fp-text-sm); font-weight: 500;
}
@media (min-width: 768px) {
    .fp-cat-section-h2 { font-size: var(--fp-text-2xl); }
    .fp-cat-section-h2-inline { font-size: var(--fp-text-xl); }
}

/* ──────────────────────────────────────────────────────────────
   3–4. Buttons + Cashback pill — moved to assets/css/coupon-card.css
   ────────────────────────────────────────────────────────────── */
/* fp-cat-cb-pill--xs moved to coupon-card.css */

/* Price tokens */
.fp-cat-price-now { font-weight: 800; color: var(--fp-text-main); font-size: var(--fp-text-lg); letter-spacing: -0.01em; }
.fp-cat-price-mrp { color: var(--fp-text-muted); text-decoration: line-through; font-weight: 500; font-size: var(--fp-text-sm2); }

/* Generic chip */
.fp-cat-chip {
    display: inline-flex; align-items: center;
    background: #fff; color: var(--fp-text-main);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 6px var(--fp-space-3);
    font-size: var(--fp-text-sm2); font-weight: 600;
    cursor: pointer;
    transition: var(--fp-transition);
    min-height: 32px;
}
.fp-cat-chip:hover { border-color: #cbd5e1; transform: translateY(-1px); }

/* ──────────────────────────────────────────────────────────────
   5. Just-Dropped floating chip (top, persistent)
   ────────────────────────────────────────────────────────────── */
.fp-cat-just-dropped {
    position: fixed;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 50;
    display: inline-flex; align-items: center; gap: var(--fp-space-3);
    background: var(--fp-text-main);
    color: #fff;
    border-radius: var(--fp-radius-pill);
    padding: 8px var(--fp-space-3) 8px var(--fp-space-4);
    box-shadow: var(--fp-shadow-lg);
    font-size: var(--fp-text-sm2); font-weight: 600;
    max-width: calc(100% - 32px);
    animation: fpCatSlideDown 0.4s ease-out;
}
@keyframes fpCatSlideDown { from { transform: translate(-50%, -150%); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
.fp-cat-just-dropped strong { font-weight: 700; }
.fp-cat-just-dropped-cta {
    display: inline-flex; align-items: center; gap: 4px;
    background: var(--fp-lime); color: #1a1a1a;
    border: none;
    border-radius: var(--fp-radius-pill);
    padding: 6px var(--fp-space-3);
    font-weight: 700; font-size: var(--fp-text-sm2);
    cursor: pointer;
}
.fp-cat-just-dropped-cta .fp-cat-icon { width: 14px; height: 14px; }
.fp-cat-just-dropped-close {
    background: none; border: none; color: rgba(255,255,255,0.6);
    cursor: pointer; padding: 4px; display: inline-flex;
}
.fp-cat-just-dropped-close:hover { color: #fff; }
.fp-cat-just-dropped-close .fp-cat-icon { width: 14px; height: 14px; }
@media (min-width: 768px) {
    .fp-cat-just-dropped { top: 90px; font-size: var(--fp-text-base); }
}

/* ──────────────────────────────────────────────────────────────
   6. Hero (Section 1)
   ────────────────────────────────────────────────────────────── */
.fp-cat-hero {
    position: relative;
    background: linear-gradient(180deg, #ffffff 0%, #eef2ff 100%);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-5) var(--fp-space-4) var(--fp-space-6) !important;
    overflow: hidden;
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-hero-mesh {
    position: absolute; inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
}
.fp-cat-hero-orb {
    position: absolute;
    border-radius: var(--fp-radius-circle);
    filter: blur(60px);
    opacity: 0.5;
}
.fp-cat-hero-orb--a { top: -40px; left: -40px;  width: 220px; height: 220px; background: #c7d2fe; }
.fp-cat-hero-orb--b { bottom: -40px; right: -40px; width: 260px; height: 260px; background: #bbf7d0; opacity: 0.5; }
.fp-cat-hero-orb--c { top: 40%; left: 40%; width: 180px; height: 180px; background: #a7f3d0; opacity: 0.4; }

.fp-cat-breadcrumb {
    position: relative; z-index: 1;
    display: flex; align-items: center;
    gap: 6px;
    font-size: var(--fp-text-sm2);
    color: var(--fp-text-muted);
    margin-bottom: var(--fp-space-4);
    flex-wrap: wrap;
}
.fp-cat-breadcrumb a { color: var(--fp-text-muted); text-decoration: none; }
.fp-cat-breadcrumb a:hover { color: var(--fp-text-main); }
.fp-cat-breadcrumb [aria-current] { color: var(--fp-text-main); font-weight: 600; }
.fp-cat-bc-sep { width: 14px; height: 14px; opacity: 0.6; }

.fp-cat-hero-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--fp-space-5); }

.fp-cat-hero-head { display: flex; flex-direction: column; gap: var(--fp-space-3); }
.fp-cat-hero-eyebrow {
    display: inline-flex; align-items: center; gap: 6px; align-self: flex-start;
    background: rgba(255,255,255,0.7);
    backdrop-filter: blur(8px);
    color: var(--fp-secondary);
    border: 1px solid var(--fp-indigo-border);
    border-radius: var(--fp-radius-pill);
    padding: 6px var(--fp-space-3);
    font-size: var(--fp-text-sm); font-weight: 700;
    letter-spacing: 0.04em; text-transform: uppercase;
}
.fp-cat-hero-eyebrow .fp-cat-icon { width: 14px; height: 14px; }

.fp-cat-hero-title {
    margin: 0;
    font-size: var(--fp-text-2xl);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--fp-text-main);
}
.fp-cat-hero-month {
    display: block;
    color: var(--fp-secondary);
    font-weight: 800;
    margin-top: 4px;
}
.fp-cat-hero-sub {
    margin: 0;
    color: var(--fp-text-muted);
    font-size: var(--fp-text-md);
    line-height: 1.5;
}

.fp-cat-hero-search {
    display: flex; align-items: center;
    gap: 4px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 6px 6px 6px var(--fp-space-4);
    box-shadow: var(--fp-shadow-md);
    transition: var(--fp-transition);
}
.fp-cat-hero-search:focus-within {
    border-color: var(--fp-lime);
    box-shadow: 0 0 0 4px rgba(196,181,253,0.25), var(--fp-shadow-md);
}
.fp-cat-hero-search-icon { display: inline-flex; color: var(--fp-text-muted); }
.fp-cat-hero-search-icon .fp-cat-icon { width: 20px; height: 20px; }
.fp-cat-hero-search-input {
    flex: 1; min-width: 0;
    background: transparent;
    border: none;
    outline: none;
    font-family: var(--fp-font);
    font-size: var(--fp-text-base);
    color: var(--fp-text-main);
    padding: 8px 0;
}
.fp-cat-hero-search-input::placeholder { color: var(--fp-text-muted); }
.fp-cat-hero-search-icon-btn {
    display: inline-flex; align-items: center; justify-content: center;
    background: none; border: none; cursor: pointer;
    width: 36px; height: 36px;
    border-radius: var(--fp-radius-circle);
    color: var(--fp-text-muted);
}
.fp-cat-hero-search-icon-btn:hover { background: var(--fp-search-bg); color: var(--fp-text-main); }
.fp-cat-hero-search-icon-btn .fp-cat-icon { width: 18px; height: 18px; }
.fp-cat-hero-search-go {
    background: var(--fp-text-main); color: #fff;
    border: none;
    border-radius: var(--fp-radius-pill);
    padding: 8px var(--fp-space-4);
    font-weight: 700; font-size: var(--fp-text-sm2);
    cursor: pointer;
    min-height: 36px;
}
.fp-cat-hero-search-go:hover { background: #000; }

.fp-cat-hero-stats {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: var(--fp-space-2);
    background: rgba(255,255,255,0.6);
    backdrop-filter: blur(8px);
    border-radius: var(--fp-radius-lg);
    padding: var(--fp-space-3);
    border: 1px solid rgba(255,255,255,0.6);
}
.fp-cat-hero-stats li {
    display: flex; flex-direction: column;
    align-items: center; text-align: center;
    gap: 2px;
}
.fp-cat-hero-stats strong {
    font-size: var(--fp-text-lg);
    font-weight: 800;
    color: var(--fp-text-main);
    letter-spacing: -0.01em;
}
.fp-cat-hero-stats span {
    font-size: var(--fp-text-xs2);
    color: var(--fp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}
.fp-cat-hero-stats-cb strong { color: #16a34a; }

.fp-cat-hero-greet {
    margin: 0;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--fp-text-sm2);
    color: var(--fp-text-muted);
}
.fp-cat-hero-greet .fp-cat-icon { width: 14px; height: 14px; color: #16a34a; }

@media (min-width: 768px) {
    .fp-cat-hero { padding: var(--fp-space-8) !important; border-radius: var(--fp-radius-30); }
    .fp-cat-hero-title { font-size: var(--fp-text-3xl); }
    .fp-cat-hero-sub { font-size: var(--fp-text-md2); }
    .fp-cat-hero-stats { padding: var(--fp-space-4); gap: var(--fp-space-3); }
    .fp-cat-hero-stats strong { font-size: var(--fp-text-xl); }
}
@media (min-width: 1024px) {
    .fp-cat-hero { padding: var(--fp-space-10) var(--fp-space-12) !important; }
    .fp-cat-hero-title { font-size: var(--fp-text-4xl); }
    .fp-cat-hero-stats { grid-template-columns: repeat(4, 1fr); }
}

/* ──────────────────────────────────────────────────────────────
   7. Top-pick horizontal rails (Sections 2 + 3)
   ────────────────────────────────────────────────────────────── */
.fp-cat-rail-viewall {
    display: inline-flex; align-items: center; gap: 4px;
    margin-left: auto;
    font-size: var(--fp-text-sm2); font-weight: 700;
    color: var(--fp-text-main);
    text-decoration: none;
    padding: 6px var(--fp-space-2);
    border-radius: var(--fp-radius-pill);
    transition: var(--fp-transition);
}
.fp-cat-rail-viewall .fp-cat-icon { width: 14px; height: 14px; }
.fp-cat-rail-viewall:hover { background: #f3f4f6; color: var(--fp-lime-dark); }

.fp-cat-rail-wrap { position: relative; }

.fp-cat-rail-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 70%;
    gap: var(--fp-space-3);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-padding: var(--fp-space-2);
    padding: 4px 0 var(--fp-space-3);
    scrollbar-width: none;
    scroll-behavior: smooth;
}
.fp-cat-rail-track::-webkit-scrollbar { display: none; }
.fp-cat-rail-item {
    scroll-snap-align: start;
    min-width: 0;
}

@media (min-width: 600px)  { .fp-cat-rail-track { grid-auto-columns: 44%; } }
@media (min-width: 768px)  { .fp-cat-rail-track { grid-auto-columns: 32%; gap: var(--fp-space-4); } }
@media (min-width: 1024px) { .fp-cat-rail-track { grid-auto-columns: 24%; } }
@media (min-width: 1280px) { .fp-cat-rail-track { grid-auto-columns: 19.5%; } }

.fp-cat-rail-arrow {
    display: none;
    position: absolute;
    top: calc(50% - 4px);
    transform: translateY(-50%);
    z-index: 5;
    width: 40px; height: 40px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-circle);
    box-shadow: var(--fp-shadow-md);
    color: var(--fp-text-main);
    cursor: pointer;
    align-items: center; justify-content: center;
    transition: var(--fp-transition);
}
.fp-cat-rail-arrow .fp-cat-icon { width: 18px; height: 18px; }
.fp-cat-rail-arrow:hover { background: var(--fp-text-main); color: #fff; border-color: var(--fp-text-main); }
.fp-cat-rail-arrow--prev { left: -8px; transform: translateY(-50%) rotate(90deg); }
.fp-cat-rail-arrow--next { right: -8px; transform: translateY(-50%) rotate(-90deg); }
.fp-cat-rail-arrow[hidden] { display: none !important; }
@media (min-width: 768px) {
    .fp-cat-rail-arrow { display: inline-flex; }
}

/* ──────────────────────────────────────────────────────────────
   8. AI Snapshot card (Section 3)
   ────────────────────────────────────────────────────────────── */
.fp-cat-snapshot-card {
    background: linear-gradient(135deg, #ffffff 0%, #f4fbe8 100%);
    border: 1px solid #e9d5ff;
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-5);
    display: flex; flex-direction: column;
    gap: var(--fp-space-4);
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-snapshot-headline {
    margin: 0;
    font-size: var(--fp-text-lg2); font-weight: 700;
    color: var(--fp-text-main);
    line-height: 1.3;
    letter-spacing: -0.01em;
}
.fp-cat-snapshot-headline strong { color: #16a34a; font-weight: 800; }
.fp-cat-snapshot-stats {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: var(--fp-space-3);
}
.fp-cat-snapshot-stats li {
    background: #fff;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-lg);
    padding: var(--fp-space-3);
    display: flex; flex-direction: column; gap: 4px;
}
.fp-cat-snapshot-stat-label {
    font-size: var(--fp-text-xs2);
    color: var(--fp-text-muted);
    text-transform: uppercase; letter-spacing: 0.04em;
    font-weight: 600;
}
.fp-cat-snapshot-stat-value {
    font-size: var(--fp-text-lg);
    font-weight: 800;
    color: var(--fp-text-main);
    letter-spacing: -0.01em;
}
.fp-cat-snapshot-verdict { display: inline-flex; align-items: center; gap: 4px; }
.fp-cat-snapshot-verdict--buy  { color: #16a34a; }
.fp-cat-snapshot-verdict--wait { color: #c2410c; }
.fp-cat-snapshot-keywords {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: var(--fp-space-2);
}
.fp-cat-snapshot-keywords-label {
    font-size: var(--fp-text-sm2);
    color: var(--fp-text-muted);
    font-weight: 600;
}

@media (min-width: 768px) {
    .fp-cat-snapshot-headline { font-size: var(--fp-text-xl); }
    .fp-cat-snapshot-stats { grid-template-columns: repeat(4, 1fr); }
}

/* ──────────────────────────────────────────────────────────────
   9. Story rail (Section 4)
   ────────────────────────────────────────────────────────────── */
.fp-cat-story-rail-scroll {
    display: flex; gap: var(--fp-space-4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 4px 0 var(--fp-space-2);
    scrollbar-width: none;
}
.fp-cat-story-rail-scroll::-webkit-scrollbar { display: none; }

.fp-cat-story {
    flex: 0 0 auto;
    scroll-snap-align: start;
    display: flex; flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 84px;
    background: none; border: none; padding: 0;
    cursor: pointer;
    font-family: var(--fp-font);
}
.fp-cat-story-ring {
    width: 76px; height: 76px;
    border-radius: var(--fp-radius-circle);
    padding: 3px;
    background: conic-gradient(from 0deg, var(--fp-lime), #22c55e, #06b6d4, var(--fp-lime-deep), var(--fp-lime));
    display: flex; align-items: center; justify-content: center;
    transition: var(--fp-transition);
}
.fp-cat-story:hover .fp-cat-story-ring { transform: scale(1.05); }
.fp-cat-story:active .fp-cat-story-ring { transform: scale(0.97); }
.fp-cat-story-ring--lime    { background: conic-gradient(from 0deg, #84cc16, #22c55e, #84cc16); }
.fp-cat-story-ring--red     { background: conic-gradient(from 0deg, #ef4444, #f43f5e, #ef4444); }
.fp-cat-story-ring--amber   { background: conic-gradient(from 0deg, var(--fp-lime-deep), var(--fp-lime), var(--fp-lime-deep)); }
.fp-cat-story-ring--rose    { background: conic-gradient(from 0deg, #f43f5e, #ec4899, #f43f5e); }
.fp-cat-story-ring--orange  { background: conic-gradient(from 0deg, #f97316, #ea580c, #f97316); }
.fp-cat-story-ring--green   { background: conic-gradient(from 0deg, #22c55e, #16a34a, #22c55e); }
.fp-cat-story-ring--sky     { background: conic-gradient(from 0deg, #0ea5e9, #06b6d4, #0ea5e9); }

.fp-cat-story-icon {
    width: 100%; height: 100%;
    background: #fff;
    border-radius: var(--fp-radius-circle);
    display: flex; align-items: center; justify-content: center;
    color: var(--fp-text-main);
}
.fp-cat-story-icon .fp-cat-icon { width: 30px; height: 30px; }
.fp-cat-story-label {
    font-size: var(--fp-text-sm);
    font-weight: 700;
    color: var(--fp-text-main);
    text-align: center;
    line-height: 1.2;
    max-width: 84px;
}
.fp-cat-story-count {
    font-size: var(--fp-text-xs2);
    color: var(--fp-text-muted);
    font-weight: 500;
}

/* ──────────────────────────────────────────────────────────────
   10. Quick filter pills (Section 5)
   ────────────────────────────────────────────────────────────── */
.fp-cat-quick-filters-scroll {
    display: flex; gap: var(--fp-space-2);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.fp-cat-quick-filters-scroll::-webkit-scrollbar { display: none; }
.fp-cat-quick-pill {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 6px;
    background: #fff; color: var(--fp-text-main);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 8px var(--fp-space-3);
    font-family: var(--fp-font);
    font-size: var(--fp-text-sm2); font-weight: 600;
    cursor: pointer;
    transition: var(--fp-transition);
    min-height: 38px;
    white-space: nowrap;
}
.fp-cat-quick-pill .fp-cat-icon { width: 14px; height: 14px; color: var(--fp-text-muted); }
.fp-cat-quick-pill:hover { border-color: #cbd5e1; transform: translateY(-1px); }
.fp-cat-quick-pill.is-active {
    background: var(--fp-text-main); color: #fff;
    border-color: var(--fp-text-main);
}
.fp-cat-quick-pill.is-active .fp-cat-icon { color: #fff; }

/* ──────────────────────────────────────────────────────────────
   11. Sticky tab bar (Section 6)
   ────────────────────────────────────────────────────────────── */
.fp-cat-sticky-bar {
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(250, 250, 250, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--fp-border);
    padding: var(--fp-space-2) var(--fp-space-4) !important;
    display: flex; flex-direction: column;
    gap: var(--fp-space-2);
    margin-left: calc(-1 * var(--fp-space-4));
    margin-right: calc(-1 * var(--fp-space-4));
    box-shadow: 0 4px 18px rgba(0,0,0,0.04);
}
.fp-cat-tabs {
    display: flex;
    gap: var(--fp-space-2);
    overflow-x: auto;
    scrollbar-width: none;
}
.fp-cat-tabs::-webkit-scrollbar { display: none; }
.fp-cat-tab {
    flex: 1 1 auto;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    background: #fff; color: var(--fp-text-main);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 10px var(--fp-space-3);
    font-family: var(--fp-font);
    font-size: var(--fp-text-sm2); font-weight: 700;
    cursor: pointer;
    transition: var(--fp-transition);
    min-height: 42px;
    white-space: nowrap;
}
.fp-cat-tab .fp-cat-icon { width: 16px; height: 16px; }
.fp-cat-tab-count {
    background: #f3f4f6;
    color: var(--fp-text-muted);
    border-radius: var(--fp-radius-pill);
    padding: 2px var(--fp-space-2);
    font-size: var(--fp-text-xs2);
    font-weight: 700;
}
.fp-cat-tab.is-active {
    background: var(--fp-text-main); color: #fff;
    border-color: var(--fp-text-main);
}
.fp-cat-tab.is-active .fp-cat-tab-count { background: rgba(255,255,255,0.18); color: #fff; }

.fp-cat-sticky-tools {
    display: flex; align-items: center;
    gap: var(--fp-space-2);
}
.fp-cat-tool-btn {
    display: inline-flex; align-items: center; gap: 4px;
    background: #fff; color: var(--fp-text-main);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 8px var(--fp-space-3);
    font-family: var(--fp-font);
    font-size: var(--fp-text-sm2); font-weight: 600;
    cursor: pointer;
    min-height: 38px;
}
.fp-cat-tool-btn .fp-cat-icon { width: 16px; height: 16px; }
.fp-cat-sort-wrap {
    display: inline-flex; align-items: center; gap: 4px;
    background: #fff;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 0 var(--fp-space-2) 0 var(--fp-space-3);
    min-height: 38px;
}
.fp-cat-sort-wrap .fp-cat-icon { width: 16px; height: 16px; color: var(--fp-text-muted); }
.fp-cat-sort {
    background: transparent; border: none; outline: none;
    font-family: var(--fp-font);
    font-size: var(--fp-text-sm2); font-weight: 600;
    color: var(--fp-text-main);
    padding: 8px var(--fp-space-3) 8px 0;
    cursor: pointer;
}

@media (min-width: 768px) {
    .fp-cat-sticky-bar { flex-direction: row; align-items: center; justify-content: space-between; padding: var(--fp-space-3) var(--fp-space-6) !important; margin-left: calc(-1 * var(--fp-space-6)); margin-right: calc(-1 * var(--fp-space-6)); }
    .fp-cat-tabs { flex: 1; }
    .fp-cat-tab { flex: 0 0 auto; min-width: 140px; }
}

/* ──────────────────────────────────────────────────────────────
   12. Tab content + grids (Section 7)
   ────────────────────────────────────────────────────────────── */
.fp-cat-tab-content { min-height: 600px; }
.fp-cat-tab-panel { display: none; flex-direction: column; gap: var(--fp-space-5); }
.fp-cat-tab-panel.is-active { display: flex; }
.fp-cat-grid {
    display: grid;
    gap: var(--fp-space-4);
}
.fp-cat-grid--stores  { grid-template-columns: repeat(2, 1fr); }
.fp-cat-grid--coupons { grid-template-columns: repeat(2, 1fr); gap: var(--fp-space-3); }
.fp-cat-grid--deals   { grid-template-columns: repeat(2, 1fr); gap: var(--fp-space-2); }

@media (min-width: 600px) {
    .fp-cat-grid--coupons { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
    .fp-cat-grid--stores  { grid-template-columns: repeat(3, 1fr); gap: var(--fp-space-5); }
    .fp-cat-grid--coupons { grid-template-columns: repeat(3, 1fr); gap: var(--fp-space-4); }
    .fp-cat-grid--deals   { grid-template-columns: repeat(3, 1fr); gap: var(--fp-space-3); }
}
@media (min-width: 1024px) {
    .fp-cat-grid--stores  { grid-template-columns: repeat(4, 1fr); }
    .fp-cat-grid--coupons { grid-template-columns: repeat(3, 1fr); gap: var(--fp-space-4); }
    .fp-cat-grid--deals   { grid-template-columns: repeat(4, 1fr); gap: var(--fp-space-3); }
}
@media (min-width: 1280px) {
    .fp-cat-grid--coupons { grid-template-columns: repeat(4, 1fr); }
    .fp-cat-grid--deals   { grid-template-columns: repeat(5, 1fr); gap: var(--fp-space-3); }
}

.fp-cat-load-more {
    align-self: center;
    margin-top: var(--fp-space-3);
    background: #fff; color: var(--fp-text-main);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 12px var(--fp-space-6);
    font-family: var(--fp-font);
    font-size: var(--fp-text-md); font-weight: 700;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    transition: var(--fp-transition);
    min-height: 44px;
}
.fp-cat-load-more .fp-cat-icon { width: 16px; height: 16px; }
.fp-cat-load-more:hover { border-color: #cbd5e1; transform: translateY(-1px); box-shadow: var(--fp-shadow-md); }

/* ── Store cards ── */
.fp-cat-store-card {
    position: relative;
    background: var(--fp-surface);
    border-radius: var(--fp-radius-20);
    padding: var(--fp-space-4);
    box-shadow: var(--fp-shadow-sm);
    display: flex; flex-direction: column;
    gap: var(--fp-space-3);
    transition: var(--fp-transition);
}
.fp-cat-store-card:hover { transform: translateY(-2px); box-shadow: var(--fp-shadow-md); }

/* fp-cat-card-heart, fp-cat-card-compare — moved to assets/css/coupon-card.css */

.fp-cat-store-logo {
    width: 56px; height: 56px;
    border-radius: var(--fp-radius-lg);
    background: linear-gradient(135deg, #1f2937, #111827);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: var(--fp-text-xl);
    font-weight: 800;
    letter-spacing: -0.02em;
}
.fp-cat-store-name {
    margin: 0;
    font-size: var(--fp-text-md2); font-weight: 800;
    color: var(--fp-text-main);
    letter-spacing: -0.01em;
}
.fp-cat-store-counts {
    margin: 0;
    font-size: var(--fp-text-sm2);
    color: var(--fp-text-muted);
}
.fp-cat-store-counts strong { color: var(--fp-text-main); font-weight: 700; }
.fp-cat-store-best {
    margin: 0;
    font-size: var(--fp-text-sm2);
    color: var(--fp-text-main);
    line-height: 1.4;
    min-height: 2.8em;
}
.fp-cat-store-foot {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--fp-space-2);
    flex-wrap: wrap;
    margin-top: auto;
}

/* fp-cat-coupon-card, fp-cat-coupon-*, fp-cat-meta-pill, fp-cat-vote* — moved to assets/css/coupon-card.css */

/* fp-cat-deal-reason stays here (deal-specific, not shared with coupon card) */
.fp-cat-deal-reason {
    margin: 0;
    background: var(--fp-brand-indigo-soft);
    color: var(--fp-brand-indigo);
    border-radius: var(--fp-radius-sm);
    padding: 6px var(--fp-space-2);
    font-size: var(--fp-text-xs2); line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2; line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    border: 1px solid var(--fp-brand-indigo-border);
}
.fp-cat-deal-reason .fp-cat-icon { width: 12px; height: 12px; margin-right: 4px; flex-shrink: 0; vertical-align: -2px; }

/* Deal cards use the shared fp-dag-tile component (see archive-fp_deal.css + inc/deal-tile.php). */

/* ──────────────────────────────────────────────────────────────
   13. Cashback table (Section 8) — AI Overview gold
   ────────────────────────────────────────────────────────────── */
.fp-cat-table-wrap {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    overflow: hidden;
    box-shadow: var(--fp-shadow-sm);
    overflow-x: auto;
}
.fp-cat-table {
    width: 100%;
    min-width: 480px;
    border-collapse: collapse;
    font-size: var(--fp-text-sm2);
}
.fp-cat-table thead {
    background: #fafafa;
}
.fp-cat-table th {
    text-align: left;
    padding: var(--fp-space-3) var(--fp-space-4);
    font-size: var(--fp-text-xs2);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fp-text-muted);
    font-weight: 700;
    border-bottom: 1px solid var(--fp-border);
}
.fp-cat-table td {
    padding: var(--fp-space-4);
    border-bottom: 1px solid var(--fp-border);
    color: var(--fp-text-main);
    vertical-align: middle;
}
.fp-cat-table tbody tr:last-child td,
.fp-cat-table tbody tr:last-child th { border-bottom: none; }
.fp-cat-table-store {
    display: inline-flex; align-items: center; gap: var(--fp-space-3);
    font-weight: 700;
    font-size: var(--fp-text-md);
}
.fp-cat-table-logo {
    width: 32px; height: 32px;
    border-radius: var(--fp-radius-sm);
    background: linear-gradient(135deg, #1f2937, #111827);
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: var(--fp-text-base);
    font-weight: 800;
}

/* ──────────────────────────────────────────────────────────────
   14. AI Compare widget (Section 9)
   ────────────────────────────────────────────────────────────── */
.fp-cat-compare-hint {
    margin: 0 0 var(--fp-space-3);
    color: var(--fp-text-muted);
    font-size: var(--fp-text-sm2);
    display: inline-flex; align-items: center; gap: 6px;
}
.fp-cat-compare-hint .fp-cat-icon { width: 14px; height: 14px; }
.fp-cat-compare-tray {
    background: var(--fp-surface);
    border: 1.5px dashed var(--fp-lime);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-5);
    min-height: 120px;
    display: flex; align-items: center; justify-content: center;
    text-align: center;
}
.fp-cat-compare-tray[data-fp-empty="false"] {
    border-style: solid;
    border-color: var(--fp-lime-deep);
    background: linear-gradient(135deg, var(--fp-lime-soft), #ffffff);
}
.fp-cat-compare-empty {
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base);
    font-weight: 500;
}

/* ──────────────────────────────────────────────────────────────
   15. AI Collections (Section 10)
   ────────────────────────────────────────────────────────────── */
.fp-cat-collections-grid {
    display: grid;
    gap: var(--fp-space-4);
    grid-template-columns: 1fr;
}
@media (min-width: 768px)  { .fp-cat-collections-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .fp-cat-collections-grid { grid-template-columns: repeat(4, 1fr); } }

.fp-cat-collection-card {
    background: var(--fp-surface);
    border-radius: var(--fp-radius-2xl);
    overflow: hidden;
    box-shadow: var(--fp-shadow-sm);
    display: flex; flex-direction: column;
    transition: var(--fp-transition);
}
.fp-cat-collection-card:hover { transform: translateY(-2px); box-shadow: var(--fp-shadow-md); }
.fp-cat-collection-media {
    position: relative; display: block;
    aspect-ratio: 5 / 3;
    overflow: hidden;
    background: #f3f4f6;
}
.fp-cat-collection-media img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.fp-cat-collection-card:hover .fp-cat-collection-media img { transform: scale(1.04); }
.fp-cat-collection-items {
    position: absolute; top: var(--fp-space-3); right: var(--fp-space-3);
    background: rgba(0,0,0,0.65);
    color: #fff;
    border-radius: var(--fp-radius-pill);
    padding: 4px var(--fp-space-2);
    font-size: var(--fp-text-xs2); font-weight: 700;
    backdrop-filter: blur(6px);
}
.fp-cat-collection-body {
    padding: var(--fp-space-4);
    display: flex; flex-direction: column;
    gap: var(--fp-space-2);
    flex: 1;
}
.fp-cat-collection-title {
    margin: 0;
    font-size: var(--fp-text-md2); font-weight: 800;
    color: var(--fp-text-main);
    letter-spacing: -0.01em;
}
.fp-cat-collection-desc {
    margin: 0;
    font-size: var(--fp-text-sm2);
    color: var(--fp-text-muted);
    line-height: 1.4;
    flex: 1;
}
.fp-cat-collection-foot {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--fp-space-2);
    margin-top: auto;
    padding-top: var(--fp-space-2);
}
.fp-cat-collection-save {
    background: var(--fp-gradient-green);
    color: #fff;
    border-radius: var(--fp-radius-pill);
    padding: 4px var(--fp-space-3);
    font-size: var(--fp-text-sm); font-weight: 800;
}

/* ──────────────────────────────────────────────────────────────
   16. Bank tabs + panels (Section 11)
   ────────────────────────────────────────────────────────────── */
.fp-cat-bank-tabs {
    display: flex; gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 2px;
    margin-bottom: var(--fp-space-3);
}
.fp-cat-bank-tabs::-webkit-scrollbar { display: none; }
.fp-cat-bank-tab {
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 8px var(--fp-space-4);
    font-family: var(--fp-font);
    font-size: var(--fp-text-sm2); font-weight: 700;
    color: var(--fp-text-main);
    cursor: pointer;
    transition: var(--fp-transition);
    min-height: 38px;
}
.fp-cat-bank-tab.is-active { background: var(--fp-text-main); color: #fff; border-color: var(--fp-text-main); }
.fp-cat-bank-panel { display: none; }
.fp-cat-bank-panel.is-active { display: block; }
.fp-cat-bank-card {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-5);
    box-shadow: var(--fp-shadow-sm);
    display: flex; flex-direction: column;
    gap: var(--fp-space-3);
}
.fp-cat-bank-card-title { margin: 0; font-size: var(--fp-text-md2); font-weight: 800; color: var(--fp-text-main); }
.fp-cat-bank-card-on { margin: 0; color: var(--fp-text-muted); font-size: var(--fp-text-sm2); }
.fp-cat-bank-card-on strong { color: var(--fp-text-main); font-weight: 700; }

/* ──────────────────────────────────────────────────────────────
   17. Sub-categories pills (Section 12)
   ────────────────────────────────────────────────────────────── */
.fp-cat-subcats-scroll {
    display: flex; gap: var(--fp-space-2);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.fp-cat-subcats-scroll::-webkit-scrollbar { display: none; }
.fp-cat-subcat-pill {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 6px;
    background: #fff;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 8px var(--fp-space-3);
    text-decoration: none;
    color: var(--fp-text-main);
    font-size: var(--fp-text-sm2); font-weight: 600;
    transition: var(--fp-transition);
    min-height: 40px;
}
.fp-cat-subcat-pill .fp-cat-icon { width: 16px; height: 16px; color: var(--fp-text-muted); }
.fp-cat-subcat-pill:hover { border-color: #cbd5e1; transform: translateY(-1px); }
.fp-cat-subcat-count {
    background: #f3f4f6;
    color: var(--fp-text-muted);
    border-radius: var(--fp-radius-pill);
    padding: 2px var(--fp-space-2);
    font-size: var(--fp-text-xs2);
    font-weight: 700;
}

/* ──────────────────────────────────────────────────────────────
   18. Budget pills (Section 13)
   ────────────────────────────────────────────────────────────── */
.fp-cat-budget-scroll {
    display: flex; gap: var(--fp-space-2);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.fp-cat-budget-scroll::-webkit-scrollbar { display: none; }
.fp-cat-budget-pill {
    flex: 0 0 auto;
    background: linear-gradient(135deg, #fff, #fafafa);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-lg);
    padding: var(--fp-space-3) var(--fp-space-4);
    font-family: var(--fp-font);
    color: var(--fp-text-main);
    cursor: pointer;
    transition: var(--fp-transition);
    display: flex; flex-direction: column;
    align-items: flex-start; gap: 2px;
    min-width: 120px;
}
.fp-cat-budget-pill:hover { border-color: var(--fp-lime); transform: translateY(-1px); box-shadow: var(--fp-shadow-sm); }
.fp-cat-budget-label { font-weight: 800; font-size: var(--fp-text-md); letter-spacing: -0.01em; }
.fp-cat-budget-count { font-size: var(--fp-text-xs2); color: var(--fp-text-muted); }/* ──────────────────────────────────────────────────────────────
   19. Trending list (Section 14)
   ────────────────────────────────────────────────────────────── */
.fp-cat-trending-metric .fp-cat-icon { width: 14px; height: 14px; color: #16a34a; }/* ──────────────────────────────────────────────────────────────
   20. Price drops grid (Section 15)
   ────────────────────────────────────────────────────────────── */
.fp-cat-drop-prices .fp-cat-icon { width: 12px; height: 12px; color: var(--fp-text-muted); }
.fp-cat-drop-prices .fp-cat-price-now { font-size: var(--fp-text-md); color: #16a34a; }

/* ──────────────────────────────────────────────────────────────
   21. Expiring soon list (Section 16)
   ────────────────────────────────────────────────────────────── */
.fp-cat-expiring-list {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-direction: column;
    gap: var(--fp-space-3);
}
.fp-cat-expiring-card {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-left: 4px solid #f43f5e;
    border-radius: var(--fp-radius-lg);
    padding: var(--fp-space-4);
    box-shadow: var(--fp-shadow-sm);
    display: flex; flex-direction: column;
    gap: var(--fp-space-3);
}
.fp-cat-expiring-body { display: flex; flex-direction: column; gap: 4px; }
.fp-cat-expiring-store {
    font-size: var(--fp-text-xs2);
    color: var(--fp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}
.fp-cat-expiring-title {
    margin: 0;
    font-size: var(--fp-text-md); font-weight: 700;
    color: var(--fp-text-main);
}
.fp-cat-expiring-price {
    font-size: var(--fp-text-md); font-weight: 800;
    color: #16a34a;
}
.fp-cat-expiring-timer-wrap {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--fp-space-3);
    flex-wrap: wrap;
    padding-top: var(--fp-space-2);
    border-top: 1px dashed var(--fp-border);
}
.fp-cat-expiring-timer-label {
    font-size: var(--fp-text-xs2);
    color: var(--fp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}
.fp-cat-expiring-timer {
    font-family: var(--fp-font-mono);
    font-size: var(--fp-text-lg);
    font-weight: 800;
    color: #f43f5e;
    letter-spacing: -0.01em;
    flex: 1;
}
@media (min-width: 600px) {
    .fp-cat-expiring-card { flex-direction: row; align-items: center; }
    .fp-cat-expiring-body { flex: 1; }
    .fp-cat-expiring-timer-wrap { border-top: none; padding-top: 0; flex-shrink: 0; }
}/* ──────────────────────────────────────────────────────────────
   22. Price trend (Section 17)
   ────────────────────────────────────────────────────────────── */

/* ──────────────────────────────────────────────────────────────
   23. GEO Q&A cards (Section 18)
   ────────────────────────────────────────────────────────────── */
.fp-cat-geo-qa-list {
    list-style: none; margin: 0; padding: 0;
    display: grid; gap: var(--fp-space-3);
    grid-template-columns: 1fr;
}
@media (min-width: 768px) { .fp-cat-geo-qa-list { grid-template-columns: repeat(2, 1fr); } }
.fp-cat-geo-qa-card {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-left: 3px solid var(--fp-secondary);
    border-radius: var(--fp-radius-lg);
    padding: var(--fp-space-4);
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-geo-qa-q {
    margin: 0 0 var(--fp-space-2);
    font-size: var(--fp-text-md); font-weight: 800;
    color: var(--fp-text-main);
    line-height: 1.3;
    letter-spacing: -0.005em;
}
.fp-cat-geo-qa-a p {
    margin: 0;
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base);
    line-height: 1.55;
}

/* ──────────────────────────────────────────────────────────────
   24. FAQ (Section 19)
   ────────────────────────────────────────────────────────────── */
.fp-cat-faq-list {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    overflow: hidden;
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-faq-item { border-bottom: 1px solid var(--fp-border); }
.fp-cat-faq-item:last-child { border-bottom: none; }
.fp-cat-faq-q {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--fp-space-3);
    padding: var(--fp-space-4);
    font-size: var(--fp-text-md); font-weight: 700;
    color: var(--fp-text-main);
    cursor: pointer;
    list-style: none;
    line-height: 1.3;
}
.fp-cat-faq-q::-webkit-details-marker { display: none; }
.fp-cat-faq-icon {
    flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px;
    border-radius: var(--fp-radius-circle);
    background: #f3f4f6;
    color: var(--fp-text-main);
    transition: transform 0.2s ease;
}
.fp-cat-faq-icon .fp-cat-icon { width: 14px; height: 14px; }
.fp-cat-faq-item[open] .fp-cat-faq-icon { transform: rotate(45deg); background: var(--fp-lime); }
.fp-cat-faq-a {
    padding: 0 var(--fp-space-4) var(--fp-space-4);
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base);
    line-height: 1.55;
}
.fp-cat-faq-a p { margin: 0; }

/* ──────────────────────────────────────────────────────────────
   25. Category description (Section 20)
   ────────────────────────────────────────────────────────────── */
.fp-cat-description-body {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-5);
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-description-body p {
    margin: 0 0 var(--fp-space-3);
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base);
    line-height: 1.6;
}
.fp-cat-description-body p:last-child { margin-bottom: 0; }
.fp-cat-description-body strong { color: var(--fp-text-main); font-weight: 700; }

/* ──────────────────────────────────────────────────────────────
   26. Ask FlashAI (Section 21)
   ────────────────────────────────────────────────────────────── */
.fp-cat-ask-card {
    position: relative;
    background: var(--fp-gradient-slate, linear-gradient(135deg, #111827, #312e81));
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-6);
    overflow: hidden;
    color: #fff;
    box-shadow: var(--fp-shadow-lg);
}
.fp-cat-ask-orb {
    position: absolute;
    border-radius: var(--fp-radius-circle);
    filter: blur(80px);
    opacity: 0.5;
    pointer-events: none;
}
.fp-cat-ask-orb--a { top: -50px; right: -50px; width: 240px; height: 240px; background: var(--fp-secondary); }
.fp-cat-ask-orb--b { bottom: -60px; left: -60px; width: 220px; height: 220px; background: #06b6d4; opacity: 0.4; }
.fp-cat-ask-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--fp-space-3); }
.fp-cat-ask-title {
    margin: 0;
    font-size: var(--fp-text-xl); font-weight: 800;
    color: #fff;
    letter-spacing: -0.01em;
}
.fp-cat-ask-sub {
    margin: 0;
    color: rgba(255,255,255,0.7);
    font-size: var(--fp-text-md);
    line-height: 1.5;
}
.fp-cat-ask-prompts {
    display: flex; flex-direction: column;
    gap: var(--fp-space-2);
}
.fp-cat-ask-prompt {
    background: rgba(255,255,255,0.08);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: var(--fp-radius-pill);
    padding: 10px var(--fp-space-4);
    font-family: var(--fp-font);
    font-size: var(--fp-text-sm2); font-weight: 600;
    cursor: pointer;
    text-align: left;
    transition: var(--fp-transition);
    backdrop-filter: blur(8px);
}
.fp-cat-ask-prompt:hover { background: rgba(255,255,255,0.18); border-color: rgba(255,255,255,0.32); }
@media (min-width: 768px) {
    .fp-cat-ask-card { padding: var(--fp-space-8); }
    .fp-cat-ask-title { font-size: var(--fp-text-2xl); }
    .fp-cat-ask-prompts { flex-direction: row; flex-wrap: wrap; }
    .fp-cat-ask-prompts .fp-cat-ask-prompt { flex: 1; min-width: 200px; }
}

/* ──────────────────────────────────────────────────────────────
   27. FlashAI promo banner (Section 22)
   ────────────────────────────────────────────────────────────── */
.fp-cat-flashai-promo-card {
    background: var(--fp-gradient-indigo);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-6);
    color: #fff;
    display: flex; flex-direction: column;
    gap: var(--fp-space-5);
    box-shadow: var(--fp-shadow-lg);
    position: relative;
    overflow: hidden;
}
.fp-cat-flashai-promo-body { display: flex; flex-direction: column; gap: var(--fp-space-3); }
.fp-cat-flashai-promo-title {
    margin: 0;
    font-size: var(--fp-text-xl);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.01em;
}
.fp-cat-flashai-promo-sub {
    margin: 0;
    color: rgba(255,255,255,0.85);
    font-size: var(--fp-text-md);
    line-height: 1.5;
}
.fp-cat-flashai-promo-visual {
    display: flex; gap: 6px;
    justify-content: center;
}
.fp-cat-flashai-promo-tile {
    width: 50px; height: 60px;
    background: rgba(255,255,255,0.12);
    border-radius: var(--fp-radius-md);
    display: block;
    backdrop-filter: blur(8px);
}
.fp-cat-flashai-promo-tile:nth-child(2) { transform: translateY(-8px); background: rgba(255,255,255,0.18); }
.fp-cat-flashai-promo-tile:nth-child(3) { transform: translateY(4px); }

@media (min-width: 768px) {
    .fp-cat-flashai-promo-card { flex-direction: row; align-items: center; padding: var(--fp-space-8); }
    .fp-cat-flashai-promo-body { flex: 1; }
    .fp-cat-flashai-promo-title { font-size: var(--fp-text-2xl); }
    .fp-cat-flashai-promo-visual { flex: 0 0 auto; }
}

/* ──────────────────────────────────────────────────────────────
   28. Buying guides (Section 23)
   ────────────────────────────────────────────────────────────── */
.fp-cat-guides-grid {
    display: grid; gap: var(--fp-space-4);
    grid-template-columns: 1fr;
}
@media (min-width: 600px) { .fp-cat-guides-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .fp-cat-guides-grid { grid-template-columns: repeat(4, 1fr); } }
.fp-cat-guide-card {
    background: var(--fp-surface);
    border-radius: var(--fp-radius-lg);
    overflow: hidden;
    box-shadow: var(--fp-shadow-sm);
    display: flex; flex-direction: column;
    transition: var(--fp-transition);
}
.fp-cat-guide-card:hover { transform: translateY(-2px); box-shadow: var(--fp-shadow-md); }
.fp-cat-guide-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #f3f4f6; }
.fp-cat-guide-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.fp-cat-guide-card:hover .fp-cat-guide-media img { transform: scale(1.04); }
.fp-cat-guide-body { padding: var(--fp-space-3); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.fp-cat-guide-meta { font-size: var(--fp-text-xs2); color: var(--fp-text-muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
.fp-cat-guide-title { margin: 0; font-size: var(--fp-text-sm2); font-weight: 800; color: var(--fp-text-main); line-height: 1.3; }
.fp-cat-guide-title a { color: inherit; text-decoration: none; }
.fp-cat-guide-title a:hover { color: var(--fp-lime-dark); }/* ──────────────────────────────────────────────────────────────
   29. Voting recap (Section 24)
   ────────────────────────────────────────────────────────────── */
.fp-cat-vote-recap-hot .fp-cat-icon { width: 12px; height: 12px; }

/* ──────────────────────────────────────────────────────────────
   30. Live ticker (Section 25)
   ────────────────────────────────────────────────────────────── */
.fp-cat-ticker-card {
    display: flex; align-items: center;
    gap: var(--fp-space-3);
    background: var(--fp-text-main); color: #fff;
    border-radius: var(--fp-radius-pill);
    padding: 10px var(--fp-space-4);
    box-shadow: var(--fp-shadow-md);
    overflow: hidden;
}
.fp-cat-ticker-dot {
    display: inline-flex; align-items: center; gap: 6px;
    background: #be123c; color: #fff;
    border-radius: var(--fp-radius-pill);
    padding: 2px var(--fp-space-2);
    font-size: var(--fp-text-xs2); font-weight: 800;
    letter-spacing: 0.06em;
    flex-shrink: 0;
}
.fp-cat-ticker-track {
    list-style: none; margin: 0; padding: 0;
    flex: 1; min-width: 0;
    position: relative;
    height: 22px;
    overflow: hidden;
}
.fp-cat-ticker-line {
    position: absolute; left: 0; top: 0;
    width: 100%;
    font-size: var(--fp-text-sm2);
    color: rgba(255,255,255,0.92);
    font-weight: 500;
    white-space: nowrap;
    text-overflow: ellipsis; overflow: hidden;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.fp-cat-ticker-line.is-current {
    opacity: 1;
    transform: translateY(0);
}/* ──────────────────────────────────────────────────────────────
   31. Beat this price (Section 26)
   ────────────────────────────────────────────────────────────── *//* ──────────────────────────────────────────────────────────────
   32. Recent expired (Section 27)
   ────────────────────────────────────────────────────────────── */

/* ──────────────────────────────────────────────────────────────
   33. Promo slots (Section 28)
   ────────────────────────────────────────────────────────────── */
.fp-cat-promos-grid {
    display: grid; gap: var(--fp-space-3);
    grid-template-columns: 1fr;
}
@media (min-width: 600px)  { .fp-cat-promos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .fp-cat-promos-grid { grid-template-columns: repeat(3, 1fr); } }
.fp-cat-promo-card {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-4);
    box-shadow: var(--fp-shadow-sm);
    display: flex; flex-direction: column;
    gap: var(--fp-space-2);
    position: relative;
    overflow: hidden;
}
.fp-cat-promo-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--fp-lime);
}
.fp-cat-promo-card--red::before    { background: #f43f5e; }
.fp-cat-promo-card--lime::before   { background: #84cc16; }
.fp-cat-promo-card--indigo::before { background: var(--fp-ai-indigo); }
.fp-cat-promo-card--sky::before    { background: #0ea5e9; }
.fp-cat-promo-card--rose::before   { background: #ec4899; }
.fp-cat-promo-card--amber::before  { background: var(--fp-lime-deep); }

.fp-cat-promo-eyebrow {
    font-size: var(--fp-text-xs2);
    color: var(--fp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 800;
}
.fp-cat-promo-title { margin: 0; font-size: var(--fp-text-md2); font-weight: 800; color: var(--fp-text-main); letter-spacing: -0.005em; }
.fp-cat-promo-desc { margin: 0; color: var(--fp-text-muted); font-size: var(--fp-text-sm2); line-height: 1.5; flex: 1; }

/* ──────────────────────────────────────────────────────────────
   34. Trust block (Section 29)
   ────────────────────────────────────────────────────────────── */
.fp-cat-trust-grid {
    list-style: none; margin: 0; padding: 0;
    display: grid; gap: var(--fp-space-3);
    grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 768px) { .fp-cat-trust-grid { grid-template-columns: repeat(4, 1fr); } }
.fp-cat-trust-card {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-4);
    text-align: center;
    display: flex; flex-direction: column;
    gap: 4px;
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-trust-icon {
    width: 44px; height: 44px;
    margin: 0 auto;
    background: linear-gradient(135deg, #ecfdf5, #d1fae5);
    border-radius: var(--fp-radius-circle);
    display: inline-flex; align-items: center; justify-content: center;
    color: #065f46;
    margin-bottom: var(--fp-space-2);
}
.fp-cat-trust-icon .fp-cat-icon { width: 22px; height: 22px; }
.fp-cat-trust-big { font-size: var(--fp-text-xl); font-weight: 800; color: var(--fp-text-main); letter-spacing: -0.02em; }
.fp-cat-trust-small { font-size: var(--fp-text-xs2); color: var(--fp-text-muted); line-height: 1.4; }
.fp-cat-trust-stamp {
    text-align: center;
    color: var(--fp-text-muted);
    font-size: var(--fp-text-sm);
    margin: var(--fp-space-4) 0 0;
}

/* ──────────────────────────────────────────────────────────────
   35. Notify strip (Section 30)
   ────────────────────────────────────────────────────────────── */
.fp-cat-notify-card {
    background: linear-gradient(135deg, #064e3b 0%, #065f46 100%);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-6);
    color: #fff;
    display: flex; flex-direction: column;
    gap: var(--fp-space-4);
    box-shadow: var(--fp-shadow-lg);
}
.fp-cat-notify-body { display: flex; flex-direction: column; gap: var(--fp-space-2); }
.fp-cat-notify-body .fp-cat-section-eyebrow {
    background: rgba(255,255,255,0.14); color: #fff;
    border-color: rgba(255,255,255,0.22);
    align-self: flex-start;
}
.fp-cat-notify-title { margin: 0; font-size: var(--fp-text-xl); font-weight: 800; letter-spacing: -0.01em; }
.fp-cat-notify-sub { margin: 0; color: rgba(255,255,255,0.78); font-size: var(--fp-text-md); }
.fp-cat-notify-actions { display: flex; flex-wrap: wrap; gap: var(--fp-space-2); }
.fp-cat-notify-actions .fp-cat-btn { flex: 1; min-width: 140px; }

@media (min-width: 768px) {
    .fp-cat-notify-card { flex-direction: row; align-items: center; padding: var(--fp-space-8); }
    .fp-cat-notify-body { flex: 1; }
    .fp-cat-notify-title { font-size: var(--fp-text-2xl); }
    .fp-cat-notify-actions { flex-shrink: 0; }
}

/* ──────────────────────────────────────────────────────────────
   36. Share buttons (Section 31)
   ────────────────────────────────────────────────────────────── */
.fp-cat-share-buttons {
    display: flex; justify-content: center;
    gap: var(--fp-space-3);
    flex-wrap: wrap;
}
.fp-cat-share-btn {
    width: 52px; height: 52px;
    border-radius: var(--fp-radius-circle);
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--fp-text-main);
    text-decoration: none;
    cursor: pointer;
    transition: var(--fp-transition);
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-share-btn .fp-cat-icon { width: 22px; height: 22px; }
.fp-cat-share-btn:hover { transform: translateY(-2px); box-shadow: var(--fp-shadow-md); }
.fp-cat-share-btn--whatsapp:hover { background: #25D366; color: #fff; border-color: #25D366; }
.fp-cat-share-btn--telegram:hover { background: #0088cc; color: #fff; border-color: #0088cc; }
.fp-cat-share-btn--twitter:hover  { background: #000;    color: #fff; border-color: #000; }
.fp-cat-share-btn--copy:hover     { background: var(--fp-lime); color: #1a1a1a; border-color: var(--fp-lime); }
.fp-cat-share-btn--copy.is-copied { background: #16a34a; color: #fff; border-color: #16a34a; }

/* ──────────────────────────────────────────────────────────────
   37. Related categories (Section 32)
   ────────────────────────────────────────────────────────────── */
.fp-cat-related-scroll {
    display: flex; gap: var(--fp-space-3);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}
.fp-cat-related-scroll::-webkit-scrollbar { display: none; }
.fp-cat-related-card {
    flex: 0 0 auto;
    width: 130px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-lg);
    padding: var(--fp-space-3);
    text-decoration: none;
    color: var(--fp-text-main);
    display: flex; flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    transition: var(--fp-transition);
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-related-card:hover { transform: translateY(-2px); box-shadow: var(--fp-shadow-md); border-color: #cbd5e1; }
.fp-cat-related-icon {
    width: 44px; height: 44px;
    background: var(--fp-indigo-soft);
    color: var(--fp-secondary);
    border-radius: var(--fp-radius-circle);
    display: inline-flex; align-items: center; justify-content: center;
}
.fp-cat-related-icon .fp-cat-icon { width: 22px; height: 22px; }
.fp-cat-related-name { font-size: var(--fp-text-sm2); font-weight: 700; }
.fp-cat-related-count { font-size: var(--fp-text-xs2); color: var(--fp-text-muted); font-weight: 600; }

/* ──────────────────────────────────────────────────────────────
   38. SEO footer (Section 33)
   ────────────────────────────────────────────────────────────── */
.fp-cat-seo-footer-body {
    background: var(--fp-surface);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-2xl);
    padding: var(--fp-space-5);
    box-shadow: var(--fp-shadow-sm);
}
.fp-cat-seo-footer-body h3 {
    margin: var(--fp-space-5) 0 var(--fp-space-2);
    font-size: var(--fp-text-md2); font-weight: 800;
    color: var(--fp-text-main);
    letter-spacing: -0.005em;
}
.fp-cat-seo-footer-body h3:first-child { margin-top: 0; }
.fp-cat-seo-footer-body p {
    margin: 0;
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base);
    line-height: 1.6;
}
.fp-cat-seo-footer-body strong { color: var(--fp-text-main); font-weight: 700; }

/* ──────────────────────────────────────────────────────────────
   39. Back-to-top floating (Section 34)
   ────────────────────────────────────────────────────────────── */
.fp-cat-back-to-top {
    position: fixed;
    right: var(--fp-space-4);
    bottom: 96px; /* above bottom bar */
    z-index: 30;
    width: 48px; height: 48px;
    border-radius: var(--fp-radius-circle);
    background: var(--fp-text-main); color: #fff;
    border: none;
    box-shadow: var(--fp-shadow-lg);
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: var(--fp-transition);
}
.fp-cat-back-to-top .fp-cat-icon { width: 20px; height: 20px; }
.fp-cat-back-to-top:hover { transform: translateY(-2px); background: #000; }
@media (min-width: 768px) {
    .fp-cat-back-to-top { bottom: var(--fp-space-6); right: var(--fp-space-6); }
}

/* ──────────────────────────────────────────────────────────────
   40. Sticky bottom action bar (mobile only)
   ────────────────────────────────────────────────────────────── */
.fp-cat-bottom-bar {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 40;
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid var(--fp-border);
    padding: 8px var(--fp-space-3);
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
    display: flex; align-items: center; justify-content: space-around;
    box-shadow: 0 -4px 18px rgba(0,0,0,0.06);
    transition: transform 0.3s ease;
}
.fp-cat-bottom-bar.is-hidden { transform: translateY(110%); }
.fp-cat-bottom-btn {
    position: relative;
    display: inline-flex; flex-direction: column; align-items: center;
    gap: 2px;
    background: none; border: none;
    padding: 8px var(--fp-space-2);
    cursor: pointer;
    font-family: var(--fp-font);
    font-size: var(--fp-text-xs2);
    font-weight: 700;
    color: var(--fp-text-muted);
    flex: 1;
    min-height: 56px;
    transition: var(--fp-transition);
}
.fp-cat-bottom-btn .fp-cat-icon { width: 22px; height: 22px; }
.fp-cat-bottom-btn:hover, .fp-cat-bottom-btn.is-active { color: var(--fp-text-main); }
.fp-cat-bottom-btn--compare { color: var(--fp-lime-dark); }
.fp-cat-bottom-badge {
    position: absolute;
    top: 2px;
    right: calc(50% - 22px);
    background: #f43f5e; color: #fff;
    border-radius: var(--fp-radius-pill);
    padding: 1px 5px;
    font-size: var(--fp-text-4xs);
    font-weight: 800;
    min-width: 14px;
    text-align: center;
    line-height: 1.4;
}
@media (min-width: 1024px) {
    .fp-cat-bottom-bar { display: none; }
}

/* ──────────────────────────────────────────────────────────────
   41. Sheets (filter + wishlist) + Modal (compare)
   ────────────────────────────────────────────────────────────── */
.fp-cat-sheet {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: flex; align-items: flex-end;
    pointer-events: none;
}
.fp-cat-sheet:not([hidden]) { pointer-events: auto; }
.fp-cat-sheet-backdrop {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    transition: opacity 0.25s ease;
}
.fp-cat-sheet:not([hidden]) .fp-cat-sheet-backdrop { opacity: 1; }
.fp-cat-sheet-body {
    position: relative;
    width: 100%;
    max-height: 88vh;
    background: var(--fp-surface);
    border-top-left-radius: var(--fp-radius-2xl);
    border-top-right-radius: var(--fp-radius-2xl);
    box-shadow: 0 -8px 32px rgba(0,0,0,0.18);
    display: flex; flex-direction: column;
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
    overflow: hidden;
}
.fp-cat-sheet:not([hidden]) .fp-cat-sheet-body { transform: translateY(0); }
.fp-cat-sheet-grabber {
    width: 40px; height: 4px;
    background: #d1d5db;
    border-radius: var(--fp-radius-pill);
    margin: var(--fp-space-2) auto 0;
}
.fp-cat-sheet-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--fp-space-3);
    padding: var(--fp-space-4) var(--fp-space-5);
    border-bottom: 1px solid var(--fp-border);
}
.fp-cat-sheet-head h2 { margin: 0; font-size: var(--fp-text-lg); font-weight: 800; color: var(--fp-text-main); }
.fp-cat-sheet-close {
    background: #f3f4f6; border: none;
    width: 36px; height: 36px;
    border-radius: var(--fp-radius-circle);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    color: var(--fp-text-main);
}
.fp-cat-sheet-close .fp-cat-icon { width: 16px; height: 16px; }
.fp-cat-sheet-content { flex: 1; overflow-y: auto; padding: var(--fp-space-5); display: flex; flex-direction: column; gap: var(--fp-space-5); }
.fp-cat-sheet-foot {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--fp-space-3);
    padding: var(--fp-space-4) var(--fp-space-5);
    padding-bottom: calc(var(--fp-space-4) + env(safe-area-inset-bottom));
    border-top: 1px solid var(--fp-border);
    background: var(--fp-surface);
}
.fp-cat-sheet-foot .fp-cat-btn { flex: 1; }

/* Right-slide variant (wishlist drawer) */
.fp-cat-sheet--right { align-items: stretch; justify-content: flex-end; }
.fp-cat-sheet--right .fp-cat-sheet-body {
    width: min(420px, 92vw);
    max-height: 100vh;
    height: 100%;
    border-radius: 0;
    transform: translateX(100%);
    border-top-left-radius: var(--fp-radius-2xl);
    border-bottom-left-radius: var(--fp-radius-2xl);
}
.fp-cat-sheet--right:not([hidden]) .fp-cat-sheet-body { transform: translateX(0); }

.fp-cat-filter-group { border: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--fp-space-3); }
.fp-cat-filter-group legend { font-size: var(--fp-text-sm); color: var(--fp-text-muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; }
.fp-cat-filter-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.fp-cat-filter-pills label {
    display: inline-flex; align-items: center; gap: 4px;
    background: #f9fafb;
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-pill);
    padding: 6px var(--fp-space-3);
    font-size: var(--fp-text-sm2); font-weight: 600;
    color: var(--fp-text-main);
    cursor: pointer;
    transition: var(--fp-transition);
    min-height: 36px;
}
.fp-cat-filter-pills input { position: absolute; opacity: 0; pointer-events: none; }
.fp-cat-filter-pills label:has(input:checked) { background: var(--fp-text-main); color: #fff; border-color: var(--fp-text-main); }
.fp-cat-filter-input {
    width: 100%;
    background: var(--fp-search-bg);
    border: 1px solid var(--fp-border);
    border-radius: var(--fp-radius-md);
    padding: 10px var(--fp-space-3);
    font-family: var(--fp-font);
    font-size: var(--fp-text-md);
    min-height: 44px;
}

.fp-cat-wishlist-empty {
    color: var(--fp-text-muted);
    font-size: var(--fp-text-base);
    text-align: center;
    padding: var(--fp-space-8) 0;
}

/* Compare modal */
.fp-cat-modal {
    position: fixed; inset: 0;
    z-index: 70;
    display: flex; align-items: center; justify-content: center;
    padding: var(--fp-space-4);
    pointer-events: none;
}
.fp-cat-modal:not([hidden]) { pointer-events: auto; }
.fp-cat-modal-backdrop {
    position: absolute; inset: 0;
    background: rgba(0,0,0,0.55);
    opacity: 0;
    transition: opacity 0.25s ease;
}
.fp-cat-modal:not([hidden]) .fp-cat-modal-backdrop { opacity: 1; }
.fp-cat-modal-body {
    position: relative;
    width: 100%;
    max-width: 900px;
    max-height: 90vh;
    background: var(--fp-surface);
    border-radius: var(--fp-radius-2xl);
    display: flex; flex-direction: column;
    overflow: hidden;
    transform: scale(0.96);
    opacity: 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
}
.fp-cat-modal:not([hidden]) .fp-cat-modal-body { transform: scale(1); opacity: 1; }
.fp-cat-modal-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--fp-space-4) var(--fp-space-5);
    border-bottom: 1px solid var(--fp-border);
}
.fp-cat-modal-head h2 { margin: 0; font-size: var(--fp-text-lg); font-weight: 800; color: var(--fp-text-main); }
.fp-cat-modal-close {
    background: #f3f4f6; border: none;
    width: 36px; height: 36px;
    border-radius: var(--fp-radius-circle);
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.fp-cat-modal-close .fp-cat-icon { width: 16px; height: 16px; }
.fp-cat-modal-content {
    flex: 1; overflow-y: auto;
    padding: var(--fp-space-5);
}
.fp-cat-modal-empty {
    color: var(--fp-text-muted);
    text-align: center;
    padding: var(--fp-space-8) 0;
}/* ──────────────────────────────────────────────────────────────
   42. Skeleton loader (shared)
   ────────────────────────────────────────────────────────────── */

/* ──────────────────────────────────────────────────────────────
   43. Reduced motion + print
   ────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .fp-cat-page *,
    .fp-cat-page *::before,
    .fp-cat-page *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
@media print {
    .fp-cat-bottom-bar,
    .fp-cat-back-to-top,
    .fp-cat-just-dropped,
    .fp-cat-sticky-bar { display: none !important; }
}
