/* VSFinder Engine styles — modern, mobile-first, works on any theme */

:root{
	--vsf-bg:#ffffff;
	--vsf-surface:#ffffff;
	--vsf-surface-alt:#f6f8fc;
	--vsf-border:#e5e9f2;
	--vsf-text:#0f172a;
	--vsf-text-dim:#64748b;
	--vsf-primary:#1d4ed8;
	--vsf-primary-hover:#1e3a8a;
	--vsf-accent:#f59e0b;
	--vsf-success:#10b981;
	--vsf-danger:#ef4444;
	--vsf-radius:14px;
	--vsf-radius-lg:20px;
	--vsf-shadow:0 1px 2px rgba(15,23,42,.05), 0 4px 12px rgba(15,23,42,.06);
	--vsf-shadow-lg:0 8px 30px rgba(15,23,42,.12);
	--vsf-font-size:18px;
}

@media (prefers-color-scheme: dark){
	:root{
		--vsf-bg:#0b1120;
		--vsf-surface:#111827;
		--vsf-surface-alt:#0f172a;
		--vsf-border:#1f2a40;
		--vsf-text:#f1f5f9;
		--vsf-text-dim:#94a3b8;
		--vsf-primary:#60a5fa;
		--vsf-primary-hover:#93c5fd;
		--vsf-shadow:0 1px 2px rgba(0,0,0,.35), 0 4px 12px rgba(0,0,0,.4);
	}
}

.vsf-container{max-width:1200px;margin:0 auto;padding:24px 20px}
@media (min-width:768px){.vsf-container{padding:40px 28px}}

.vsf-breadcrumb{font-size:15px;color:var(--vsf-text-dim);margin-bottom:20px}
.vsf-breadcrumb a{color:var(--vsf-text-dim);text-decoration:none}
.vsf-breadcrumb a:hover{color:var(--vsf-primary)}
.vsf-breadcrumb span{margin:0 6px;opacity:.6}

/* Titles */
.vsf-vs-title{
	font-size:clamp(26px,4.5vw,46px);
	font-weight:800;
	line-height:1.1;
	letter-spacing:-.02em;
	text-align:center;
	margin:10px 0 32px;
	color:var(--vsf-text);
}
.vsf-vs-title .vsf-vs-label{
	display:inline-block;
	margin:0 .5em;
	font-size:.5em;
	vertical-align:middle;
	padding:.2em .6em;
	border-radius:999px;
	background:var(--vsf-primary);
	color:#fff;
	font-weight:700;
	letter-spacing:.12em;
}
.vsf-section-title{
	font-size:clamp(22px,3vw,30px);
	font-weight:700;
	margin:48px 0 20px;
	color:var(--vsf-text);
	letter-spacing:-.01em;
}

/* Comparison hero: side-by-side cards */
.vsf-vs-hero{
	display:grid;
	grid-template-columns:1fr;
	gap:20px;
	align-items:stretch;
}
@media (min-width:820px){
	.vsf-vs-hero{
		grid-template-columns:1fr 80px 1fr;
		gap:28px;
	}
}
.vsf-vs-card{
	position:relative;
	background:var(--vsf-surface);
	border:1px solid var(--vsf-border);
	border-radius:var(--vsf-radius-lg);
	padding:28px 24px 32px;
	box-shadow:var(--vsf-shadow);
	display:flex;flex-direction:column;align-items:center;text-align:center;
	transition:transform .2s, box-shadow .2s, border-color .2s;
}
.vsf-vs-card.is-winner{
	border-color:var(--vsf-accent);
	box-shadow:0 0 0 3px rgba(245,158,11,.12), var(--vsf-shadow-lg);
}
.vsf-winner-badge{
	position:absolute;top:-14px;left:50%;transform:translateX(-50%);
	background:var(--vsf-accent);color:#fff;font-weight:700;font-size:13px;
	padding:6px 14px;border-radius:999px;letter-spacing:.03em;
	box-shadow:0 4px 12px rgba(245,158,11,.35);
}
.vsf-vs-img-wrap{
	width:100%;aspect-ratio:1/1;max-width:280px;
	background:var(--vsf-surface-alt);border-radius:var(--vsf-radius);
	display:flex;align-items:center;justify-content:center;
	padding:20px;margin-bottom:22px;overflow:hidden;
}
.vsf-vs-img-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.vsf-vs-card h2{
	font-size:20px;font-weight:700;margin:0 0 14px;
	color:var(--vsf-text);line-height:1.3;
	min-height:2.6em;display:flex;align-items:center;
}
.vsf-meta{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-bottom:16px;font-size:16px}
.vsf-rating{color:var(--vsf-accent);font-weight:600}
.vsf-price{color:var(--vsf-text);font-weight:700}
.vsf-score-bar{width:100%;height:10px;border-radius:999px;background:var(--vsf-surface-alt);overflow:hidden;margin-top:8px}
.vsf-score-fill{height:100%;background:linear-gradient(90deg,var(--vsf-primary),var(--vsf-accent));border-radius:999px;transition:width .8s ease}
.vsf-score-num{font-size:14px;color:var(--vsf-text-dim);margin-top:6px;margin-bottom:18px;font-variant-numeric:tabular-nums}

/* Center "VS" divider */
.vsf-vs-divider{
	display:none;
	align-items:center;justify-content:center;
}
@media (min-width:820px){
	.vsf-vs-divider{display:flex;position:relative}
	.vsf-vs-divider span{
		background:var(--vsf-text);color:var(--vsf-bg);
		width:64px;height:64px;border-radius:50%;
		display:flex;align-items:center;justify-content:center;
		font-weight:800;letter-spacing:.08em;
		box-shadow:var(--vsf-shadow-lg);
	}
}

/* CTA buttons */
.vsf-cta{
	display:inline-flex;align-items:center;gap:8px;
	background:var(--vsf-primary);color:#fff;
	padding:14px 24px;border-radius:12px;
	font-weight:700;font-size:16px;text-decoration:none;
	transition:transform .1s, background .2s;
	box-shadow:0 4px 12px rgba(29,78,216,.25);
	width:100%;justify-content:center;
}
.vsf-cta:hover{background:var(--vsf-primary-hover);transform:translateY(-1px);color:#fff}
.vsf-cta-ext{opacity:.8;font-size:.85em}
.vsf-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	padding:12px 22px;border-radius:12px;font-weight:600;font-size:16px;
	text-decoration:none;cursor:pointer;border:1px solid transparent;
	transition:transform .1s, background .2s, border-color .2s;
}
.vsf-btn-primary{background:var(--vsf-primary);color:#fff}
.vsf-btn-primary:hover{background:var(--vsf-primary-hover);color:#fff}
.vsf-btn-primary[disabled]{opacity:.4;cursor:not-allowed}
.vsf-btn-ghost{background:transparent;color:var(--vsf-text);border-color:var(--vsf-border)}
.vsf-btn-ghost:hover{border-color:var(--vsf-primary);color:var(--vsf-primary)}

.vsf-disclosure{font-size:13px;color:var(--vsf-text-dim);margin-top:18px;text-align:center}

/* Spec tables */
.vsf-specs-section{margin-top:30px}
.vsf-spec-group{margin-bottom:32px}
.vsf-spec-group h3{
	font-size:18px;font-weight:700;margin:0 0 14px;
	color:var(--vsf-text);padding-bottom:8px;
	border-bottom:2px solid var(--vsf-border);
	display:inline-block;
}
.vsf-spec-table{
	width:100%;border-collapse:separate;border-spacing:0;
	background:var(--vsf-surface);border:1px solid var(--vsf-border);
	border-radius:var(--vsf-radius);overflow:hidden;
	box-shadow:var(--vsf-shadow);
}
.vsf-spec-table th, .vsf-spec-table td{
	padding:16px 18px;text-align:left;font-size:16px;
	border-bottom:1px solid var(--vsf-border);line-height:1.5;
	vertical-align:top;
}
.vsf-spec-table thead th{
	background:var(--vsf-surface-alt);font-weight:700;font-size:15px;
	color:var(--vsf-text);letter-spacing:.01em;
}
.vsf-spec-table tbody tr:last-child td{border-bottom:none}
.vsf-spec-table .vsf-key{font-weight:600;color:var(--vsf-text-dim);width:26%}
.vsf-spec-table .vsf-val{color:var(--vsf-text)}
.vsf-spec-table .vsf-win{background:rgba(16,185,129,.08);font-weight:700;color:var(--vsf-text)}
.vsf-spec-table .vsf-tick{color:var(--vsf-success);font-weight:800;margin-left:4px}
@media (max-width:720px){
	.vsf-spec-table thead{display:none}
	.vsf-spec-table, .vsf-spec-table tbody, .vsf-spec-table tr, .vsf-spec-table td{display:block;width:100%}
	.vsf-spec-table tr{padding:8px 0;border-bottom:1px solid var(--vsf-border)}
	.vsf-spec-table tr:last-child{border-bottom:none}
	.vsf-spec-table td{padding:10px 18px;border:none;display:flex;justify-content:space-between;gap:16px}
	.vsf-spec-table td:before{content:attr(data-label);font-weight:600;color:var(--vsf-text-dim);font-size:14px;flex:0 0 40%}
	.vsf-spec-table .vsf-key{display:none}
}

/* Verdict */
.vsf-verdict{
	background:var(--vsf-surface);border:1px solid var(--vsf-border);
	border-radius:var(--vsf-radius-lg);padding:28px;margin-top:30px;
	box-shadow:var(--vsf-shadow);
}
.vsf-verdict p{font-size:18px;line-height:1.7;color:var(--vsf-text);margin:0 0 18px}
.vsf-verdict-ctas{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}
@media (min-width:640px){.vsf-verdict-ctas{grid-template-columns:1fr 1fr}}

.vsf-related{margin-top:32px;text-align:center;display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* Compare tool */
.vsf-hero-title{font-size:clamp(28px,5vw,48px);font-weight:800;letter-spacing:-.02em;margin:0 0 10px;text-align:center;color:var(--vsf-text)}
.vsf-hero-sub{text-align:center;font-size:18px;color:var(--vsf-text-dim);margin:0 0 36px}
.vsf-compare-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media (min-width:780px){.vsf-compare-grid{grid-template-columns:1fr 1fr;gap:32px}}
.vsf-compare-col{background:var(--vsf-surface);border:1px solid var(--vsf-border);border-radius:var(--vsf-radius-lg);padding:24px;box-shadow:var(--vsf-shadow)}
.vsf-slot-label{font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--vsf-text-dim);margin-bottom:12px}
.vsf-search-wrap{position:relative}
.vsf-search-input{width:100%;padding:14px 18px;font-size:17px;border:1px solid var(--vsf-border);border-radius:12px;background:var(--vsf-surface-alt);color:var(--vsf-text);outline:none;transition:border-color .2s, box-shadow .2s}
.vsf-search-input:focus{border-color:var(--vsf-primary);box-shadow:0 0 0 3px rgba(29,78,216,.15)}
.vsf-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--vsf-surface);border:1px solid var(--vsf-border);border-radius:12px;box-shadow:var(--vsf-shadow-lg);max-height:340px;overflow:auto;z-index:50;display:none}
.vsf-search-results.is-open{display:block}
.vsf-search-result{display:flex;align-items:center;gap:14px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--vsf-border)}
.vsf-search-result:last-child{border-bottom:none}
.vsf-search-result:hover{background:var(--vsf-surface-alt)}
.vsf-search-result img{width:48px;height:48px;object-fit:contain;background:var(--vsf-surface-alt);border-radius:8px;padding:4px}
.vsf-search-result-text{flex:1;min-width:0}
.vsf-search-result-title{font-weight:600;font-size:15px;color:var(--vsf-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vsf-search-result-meta{font-size:13px;color:var(--vsf-text-dim)}
.vsf-slot-card{margin-top:16px;min-height:120px}
.vsf-slot-card.has-pick{background:var(--vsf-surface-alt);border-radius:12px;padding:16px;display:flex;align-items:center;gap:14px}
.vsf-slot-card img{width:72px;height:72px;object-fit:contain;background:var(--vsf-surface);border-radius:8px;padding:6px}
.vsf-slot-card .vsf-slot-title{font-weight:700;color:var(--vsf-text);font-size:16px;line-height:1.3}
.vsf-compare-actions{margin-top:28px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

/* Browse / category */
.vsf-cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.vsf-cat-card{background:var(--vsf-surface);border:1px solid var(--vsf-border);border-radius:var(--vsf-radius);padding:22px;box-shadow:var(--vsf-shadow)}
.vsf-cat-card h2{font-size:20px;margin:0 0 12px}
.vsf-cat-card h2 a{color:var(--vsf-text);text-decoration:none}
.vsf-cat-card h2 a:hover{color:var(--vsf-primary)}
.vsf-cat-sub{list-style:none;padding:0;margin:0}
.vsf-cat-sub li{padding:8px 0;border-top:1px solid var(--vsf-border);font-size:15px}
.vsf-cat-sub li:first-child{border-top:none}
.vsf-cat-sub a{color:var(--vsf-text);text-decoration:none}
.vsf-cat-sub a:hover{color:var(--vsf-primary)}
.vsf-cat-sub small{color:var(--vsf-text-dim);margin-left:6px}

/* 404 */
.vsf-center{text-align:center}
.vsf-404 h1{font-size:clamp(28px,5vw,46px);margin:40px 0 14px}
