/* ---------- Wingfest voting widget ---------- */

.wingfest-voting {
	margin: 2em 0;
	padding: 1.5em;
	border: 1px solid #dde4ea;
	border-radius: 10px;
	background: #f8fafc;
	max-width: 560px;
}

.wingfest-tabs {
	display: flex;
	gap: 0.5em;
	margin-bottom: 1.25em;
	flex-wrap: wrap;
}

.wingfest-tab-btn {
	background: #edf2f7;
	border: none;
	border-radius: 25px;
	padding: 12px 22px;
	font-size: 16px;
	color: #2d3748;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
}

.wingfest-tab-btn:hover {
	background: #0d6e8c;
	color: #fff;
}

.wingfest-tab-btn.is-active {
	background: #0d6e8c;
	color: #fff;
}

.wingfest-tab-panel {
	display: none;
}

.wingfest-tab-panel.is-active {
	display: block;
	border-top: 3px solid #0d6e8c;
	padding-top: 25px;
}

.wingfest-current-score {
	margin-bottom: 0.75em;
	color: #4a5568;
	font-size: 0.95em;
}

/* Star rating: radios reversed + CSS-only hover/select highlight */
.wingfest-stars {
	display: inline-flex;
	flex-direction: row-reverse;
	border: none;
	padding: 0;
	margin: 0 0 1em;
}

.wingfest-stars input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.wingfest-stars label {
	font-size: 2em;
	line-height: 1;
	color: #cbd5e0;
	cursor: pointer;
	padding: 0 0.05em;
	transition: color 0.1s ease;
}

.wingfest-stars input:checked ~ label,
.wingfest-stars label:hover,
.wingfest-stars label:hover ~ label {
	color: #0d6e8c;
}

.wingfest-submit-vote {
	display: block;
	padding: 0.6em 1.4em;
	background: #0d6e8c;
	color: #fff;
	border: none;
	border-radius: 25px;
	font-weight: 600;
	font-size: 16px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.wingfest-submit-vote:hover {
	background: #0a5570;
}

.wingfest-submit-vote:disabled {
	background: #cbd5e0;
	cursor: not-allowed;
}

.wingfest-vote-message {
	margin-top: 0.75em;
	font-size: 0.95em;
}

.wingfest-vote-message.success {
	color: #1a7f4e;
}

.wingfest-vote-message.error {
	color: #c0392b;
}

/* ---------- Leaderboard ---------- */

.wingfest-leaderboard-wrap {
	margin: 1.5em 0;
}

.wingfest-leaderboard-title {
	margin-bottom: 0.5em;
	color: #2d3748;
}

table.wingfest-leaderboard {
	width: 100%;
	border-collapse: collapse;
}

table.wingfest-leaderboard th,
table.wingfest-leaderboard td {
	padding: 0.6em 0.8em;
	text-align: left;
	border-bottom: 1px solid #e2e8f0;
}

table.wingfest-leaderboard th {
	background: #edf2f7;
	color: #2d3748;
	font-weight: 700;
}

table.wingfest-leaderboard .wingfest-rank {
	width: 2.5em;
	text-align: center;
}

/* ---------- Vendor homepage ---------- */

.wingfest-homepage,
.wingfest-leaderboard-page {
	max-width: 1100px;
	margin: 0 auto;
	padding: 2em 1em;
}

.wingfest-homepage-intro {
	text-align: center;
	margin-bottom: 2em;
}

.wingfest-homepage-intro h1 {
	margin-bottom: 0.3em;
}

.wingfest-homepage-content {
	color: #4a5568;
	max-width: 640px;
	margin: 0 auto;
}

.wingfest-search-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5em;
	margin-bottom: 2em;
}

.wingfest-vendor-search {
	width: 100%;
	max-width: 420px;
	padding: 14px 22px;
	border: 1px solid #dde4ea;
	border-radius: 999px;
	font-size: 16px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(20, 40, 60, 0.06);
}

.wingfest-vendor-search:focus {
	outline: none;
	border-color: #0d6e8c;
	box-shadow: 0 0 0 3px rgba(13, 110, 140, 0.15);
}

.wingfest-search-count {
	color: #718096;
	font-size: 0.9em;
	margin: 0;
}

.wingfest-vendor-grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 220px, 1fr ) );
	gap: 1.25em;
}

.wingfest-vendor-card {
	display: block;
	background: #fff;
	border: 1px solid #edf2f7;
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.wingfest-vendor-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(20, 40, 60, 0.1);
	border-color: #0d6e8c;
}

.wingfest-vendor-thumb {
	aspect-ratio: 4 / 3;
	background: #edf2f7;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.wingfest-vendor-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.wingfest-vendor-thumb-placeholder {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #0d6e8c;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6em;
	font-weight: 700;
	text-transform: uppercase;
}

.wingfest-vendor-card-body {
	padding: 14px 16px 18px;
}

.wingfest-vendor-name {
	margin: 0 0 0.35em;
	font-size: 1.05em;
	color: #1a202c;
}

.wingfest-vendor-card-rating {
	font-size: 0.9em;
	color: #0d6e8c;
	font-weight: 600;
}

.wingfest-vendor-card-votes {
	color: #a0aec0;
	font-weight: 400;
}

.wingfest-vendor-card-rating-empty {
	color: #a0aec0;
	font-weight: 400;
}

.wingfest-no-results {
	text-align: center;
	color: #718096;
	margin-top: 2em;
}

/* ---------- Leaderboard page tabs ---------- */

.wingfest-lb-tabs {
	display: flex;
	justify-content: center;
	gap: 0.5em;
	margin-bottom: 1.5em;
	flex-wrap: wrap;
}

.wingfest-lb-tab-btn {
	background: #edf2f7;
	border: none;
	border-radius: 25px;
	padding: 12px 22px;
	font-size: 16px;
	color: #2d3748;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
}

.wingfest-lb-tab-btn:hover {
	background: #0d6e8c;
	color: #fff;
}

.wingfest-lb-tab-btn.is-active {
	background: #0d6e8c;
	color: #fff;
}

.wingfest-lb-panel {
	display: none;
}

.wingfest-lb-panel.is-active {
	display: block;
}

/* ---------- Single vendor page: centered content column ---------- */

.wingfest-vendor-page {
	max-width: 700px;
	margin: 0 auto;
	text-align: left;
}

.wingfest-vendor-page .wingfest-voting {
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Single vendor page: center the theme's title/header ---------- */
/* Covers common theme markup patterns for the page/post title. If your
   theme uses a different class, inspect the title element in your browser
   and add its class to this list. !important is used deliberately here to
   win against theme stylesheets that load after this one. */

body.single-wingfest_vendor .entry-header,
body.single-wingfest_vendor .entry-title,
body.single-wingfest_vendor h1.entry-title,
body.single-wingfest_vendor .page-title,
body.single-wingfest_vendor .post-title,
body.single-wingfest_vendor .wp-block-post-title,
body.single-wingfest_vendor .entry-header .entry-title {
	text-align: center !important;
	width: 100% !important;
	max-width: 700px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}
