/* Fast Files v1.0.0 — front-end styles (theme-neutral; reads the Customizer variables) */
.ff-wrap{max-width:var(--fp-container,1200px);margin:0 auto;padding:24px 16px 48px}
.ff-embed{margin:0 0 24px}
.ff-page-head{margin-bottom:22px}
.ff-page-head h1{margin:8px 0 6px;font-size:clamp(22px,3vw,32px);line-height:1.2}
.ff-page-head-compact{margin-bottom:12px}
.ff-lead{color:var(--fp-muted,#5a6b85);max-width:760px;margin:0 0 14px;font-size:15px}
.ff-breadcrumb{font-size:13px;color:var(--fp-muted,#6b7280);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ff-breadcrumb a{color:inherit;text-decoration:none}.ff-breadcrumb a:hover{color:var(--fp-primary,#9c2b2b)}
.ff-bc-sep{opacity:.5}
.ff-h2{font-size:22px;margin:0 0 14px;padding-bottom:8px;position:relative}
.ff-h2::after{content:"";position:absolute;left:0;bottom:0;width:180px;height:2px;background:var(--fp-primary,#9c2b2b)}
.ff-h2 small{font-weight:400;color:var(--fp-muted,#6b7280);font-size:14px}
.ff-section{margin:0 0 40px}
.ff-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.ff-search{display:flex;max-width:520px;border:1px solid var(--fp-border,#e2e8f2);border-radius:8px;overflow:hidden;background:#fff}
.ff-search input{flex:1;border:0;padding:11px 14px;font:inherit;font-size:14px;min-width:0;outline:none}
.ff-search button{border:0;background:var(--fp-primary,#9c2b2b);color:#fff;padding:0 18px;cursor:pointer;display:flex;align-items:center}
.ff-search button:hover{filter:brightness(1.1)}
.ff-sort{display:flex;gap:4px;flex-wrap:wrap;font-size:13px}
.ff-sort a{padding:6px 12px;border-radius:20px;border:1px solid var(--fp-border,#e2e8f2);color:inherit;text-decoration:none}
.ff-sort a.is-active,.ff-sort a:hover{background:var(--fp-primary,#9c2b2b);border-color:var(--fp-primary,#9c2b2b);color:#fff}
/* category grids */
.ff-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.ff-cat-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:16px 10px;background:var(--fp-card-bg,#fff);border:1px solid var(--fp-border,#e2e8f2);border-radius:12px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.ff-cat-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(16,40,70,.10);border-color:var(--fp-primary,#9c2b2b)}
.ff-cat-media{width:72px;height:72px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f1f5f9}
.ff-cat-media img{width:100%;height:100%;object-fit:cover}
.ff-cat-initial{font-size:28px;font-weight:800;color:var(--fp-primary,#9c2b2b)}
.ff-cat-name{font-weight:700;font-size:14px;line-height:1.25}
.ff-cat-count{font-size:12px;color:var(--fp-muted,#6b7280)}
.ff-cat-links{display:flex;flex-wrap:wrap;gap:6px 26px}
.ff-cat-link{text-transform:uppercase;font-weight:700;font-size:13px;letter-spacing:.3px;color:inherit;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.ff-cat-link:hover{color:var(--fp-primary,#9c2b2b);border-color:var(--fp-primary,#9c2b2b)}
.ff-chips{display:flex;flex-wrap:wrap;gap:8px}
.ff-chip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:20px;background:#f1f5f9;color:inherit;text-decoration:none;font-size:13px}
.ff-chip b{background:#fff;border-radius:10px;padding:0 7px;font-size:11px}
.ff-chip:hover{background:var(--fp-primary,#9c2b2b);color:#fff}
/* file cards */
.ff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
.ff-card{background:var(--fp-card-bg,#fff);border:1px solid var(--fp-border,#e2e8f2);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.ff-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(16,40,70,.12)}
.ff-card-media{display:block;position:relative;aspect-ratio:1/1;background:#f8fafc;overflow:hidden}
.ff-card-media img{width:100%;height:100%;object-fit:contain;padding:6%;box-sizing:border-box;display:block}
.ff-card-badges{position:absolute;top:10px;left:10px;display:flex;gap:6px}
.ff-badge{display:inline-block;padding:3px 9px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#fff;background:#438e44}
.ff-badge-hot{background:var(--fp-primary,#9c2b2b)}.ff-badge-free{background:#f59e0b;color:#1f2937}
.ff-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.ff-card-cat{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--fp-muted,#6b7280);text-decoration:none}
.ff-card-title{font-size:14px;line-height:1.35;margin:0;font-weight:600;flex:1}
.ff-card-title a{color:inherit;text-decoration:none}.ff-card-title a:hover{color:var(--fp-primary,#9c2b2b)}
.ff-card-meta{display:flex;gap:10px;font-size:12px;color:var(--fp-muted,#6b7280)}
.ff-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--fp-primary,#9c2b2b);color:#fff!important;border:2px solid var(--fp-primary,#9c2b2b);padding:10px 20px;border-radius:8px;font-weight:700;text-decoration:none;cursor:pointer;font-size:14px;line-height:1.2;transition:filter .15s}
.ff-btn:hover{filter:brightness(1.12)}
.ff-btn-sm{padding:7px 14px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;align-self:flex-start}
.ff-btn-ghost{background:transparent;color:var(--fp-primary,#9c2b2b)!important}
.ff-btn-download{width:100%;font-size:16px;padding:15px 28px;border-radius:10px;text-transform:uppercase;letter-spacing:.6px;box-shadow:0 8px 20px rgba(156,43,43,.22)}.ff-btn-download:hover{transform:translateY(-1px)}.ff-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--fp-primary,#9c2b2b);margin-bottom:6px}.ff-dl-panel{background:linear-gradient(180deg,#fff,#f6f8fb);border:1px solid var(--fp-border,#e2e8f2);border-radius:14px;padding:18px 20px 20px;margin:0 0 20px;box-shadow:0 8px 24px rgba(16,40,70,.07)}.ff-dl-facts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.ff-fact{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--fp-border,#e2e8f2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:#334155}.ff-fact svg{color:var(--fp-primary,#9c2b2b)}.ff-fact-free{background:#fef3c7;border-color:#fcd34d;color:#78350f}.ff-fact-free svg{color:#b45309}.ff-fact-lock{background:#f1f5f9}.ff-fact-lock svg{color:#64748b}.ff-dl-panel .ff-download-area{margin:0}.ff-dl-panel .fm-status,.ff-dl-panel .ff-gate{margin:14px 0 0}.ff-dl-panel .fm-status{background:#fff}
.ff-more{margin-top:14px;text-align:center}
.ff-empty,.ff-muted{color:var(--fp-muted,#6b7280)}
/* single file */
.ff-single{display:grid;grid-template-columns:minmax(220px,380px) 1fr;gap:32px;margin-bottom:36px}
.ff-single-media{position:relative;border:1px solid var(--fp-border,#e2e8f2);border-radius:12px;overflow:hidden;background:#fff;align-self:start}
.ff-single-media img{width:100%;display:block;aspect-ratio:1/1;object-fit:cover}
.ff-single-title{font-size:clamp(20px,2.6vw,28px);line-height:1.25;margin:0 0 16px;word-break:break-word}
.ff-download-area{margin:0 0 20px}
.ff-gate{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:14px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.ff-gate p{margin:0;flex:1;min-width:200px}
.ff-gate-daily,.ff-gate-total,.ff-gate-membership,.ff-gate-expired,.ff-gate-blocked{background:#fef2f2;border-color:#fecaca}
.ff-meta{display:grid;grid-template-columns:130px 1fr;gap:0 12px;margin:0 0 16px;font-size:14px;border:1px solid var(--fp-border,#e2e8f2);border-radius:10px;padding:4px 16px;background:#fff}.ff-meta dt,.ff-meta dd{padding:9px 0;border-bottom:1px solid #eef2f7}.ff-meta dt:nth-last-of-type(1),.ff-meta dd:last-child{border-bottom:0}
.ff-meta dt{color:var(--fp-muted,#6b7280);font-weight:600}
.ff-meta dd{margin:0;word-break:break-all}
.ff-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.ff-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.ff-share{font-size:13px;color:var(--fp-muted,#6b7280)}.ff-share a{margin-left:8px;color:var(--fp-primary,#9c2b2b)}
.ff-description{max-width:860px;line-height:1.7}
.ff-notice{padding:10px 14px;border-radius:8px;margin:0 0 14px}
.ff-notice-warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.ff-denied{max-width:640px;margin:20px auto 40px;text-align:center;padding:30px 20px;background:#fff;border:1px solid var(--fp-border,#e2e8f2);border-radius:14px}
.ff-denied h1{margin:0 0 10px}
.ff-pagination{display:flex;gap:6px;justify-content:center;margin:22px 0 0;flex-wrap:wrap}
.ff-pagination a,.ff-pagination span{min-width:36px;padding:8px 10px;text-align:center;border-radius:8px;border:1px solid var(--fp-border,#e2e8f2);text-decoration:none;color:inherit;font-size:14px}
.ff-pagination a:hover,.ff-pagination .is-current{background:var(--fp-primary,#9c2b2b);color:#fff;border-color:var(--fp-primary,#9c2b2b)}
.ff-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:0 0 24px}
.ff-stats>div{background:var(--fp-card-bg,#fff);border:1px solid var(--fp-border,#e2e8f2);border-radius:12px;padding:18px;text-align:center}
.ff-stats b{display:block;font-size:28px;color:var(--fp-primary,#9c2b2b)}
.ff-stats span{font-size:13px;color:var(--fp-muted,#6b7280)}
/* membership status box (rendered by Fast Memberships under the download button) */
.fm-status{background:#f8fafc;border:1px solid var(--fp-border,#e2e8f2);border-radius:10px;padding:14px 16px;margin:0 0 18px;font-size:14px}
.fm-status h4{margin:0 0 8px;font-size:14px}
.fm-status-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px dashed #e5e7eb}
.fm-status-row:last-child{border-bottom:0}
.fm-status-bar{height:8px;border-radius:4px;background:#e5e7eb;overflow:hidden;margin:6px 0 2px}
.fm-status-bar i{display:block;height:100%;background:var(--fp-primary,#9c2b2b)}
.fm-status-free{background:#fff3f3;border-color:#fecaca}
@media (max-width:760px){.ff-single{grid-template-columns:1fr}.ff-single-media{max-width:320px}.ff-meta{grid-template-columns:110px 1fr}.ff-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}
.ff-cat-media.is-logo{width:140px;height:72px;border-radius:10px;background:#fff;border:1px solid #eef2f7}.ff-cat-media.is-logo img{width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box}
