/* fkm-venues — استایل ویجت (بارگذاری فقط هنگام استفاده) */
.yvn-page {
	--_accent: var(--yvn-accent, #293993);
	width: 100%;
	direction: rtl;
	color: #1f2b35;
	font-size: 13px;
}
.yvn-page button,
.yvn-page input { font: inherit; }
.yvn-search-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 38px;
}
.yvn-search {
	width: 100%;
	height: 32px;
	border: 0;
	border-radius: 10px;
	background: #fff;
	color: #293846;
	padding: 0 18px;
	text-align: right;
	outline: none;
	box-shadow: 0 8px 22px rgba(36, 45, 55, 0.12);
	transition: box-shadow 0.2s, transform 0.2s;
}
.yvn-search:focus {
	box-shadow: 0 10px 26px rgba(0, 112, 101, 0.18);
	transform: translateY(-1px);
}
.yvn-search::placeholder { color: #3b4550; }
.yvn-content {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 24px;
	align-items: start;
}
.yvn-filters {
	position: sticky;
	top: 18px;
	padding: 15px 13px 14px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 14px 28px rgba(33, 40, 47, 0.11);
}
.yvn-fgroup {
	padding: 0 0 15px;
	margin-bottom: 15px;
	border-bottom: 1px solid #d7d7d7;
}
.yvn-ftitle {
	margin: 0 0 13px;
	color: var(--_accent);
	font-weight: 800;
	font-size: 12px;
}
.yvn-range-wrap { padding: 6px 2px 0; }
.yvn-range-labels,
.yvn-value-line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #354350;
	font-size: 10px;
	line-height: 1.8;
}
.yvn-value-line {
	justify-content: center;
	margin-top: 6px;
	font-weight: 600;
}
.yvn-page input[type="range"] {
	width: 100%;
	height: 5px;
	margin: 8px 0 4px;
	border-radius: 999px;
	background: #e7e7e7;
	accent-color: var(--_accent);
	cursor: pointer;
}
.yvn-checks {
	display: grid;
	gap: 8px;
	color: #56616c;
	font-size: 11px;
}
.yvn-checks label {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 7px;
	cursor: pointer;
	user-select: none;
}
.yvn-checks input {
	width: 11px;
	height: 11px;
	accent-color: var(--_accent);
}
.yvn-factions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
}
.yvn-apply,
.yvn-reset {
	height: 31px;
	border: 0;
	border-radius: 9px;
	cursor: pointer;
	font-weight: 800;
	font-size: 11px;
	transition: transform 0.2s, box-shadow 0.2s;
}
.yvn-apply {
	background: var(--_accent);
	color: #fff;
}
.yvn-reset {
	background: #f4f4f4;
	color: #56616c;
}
.yvn-apply:hover,
.yvn-reset:hover { transform: translateY(-1px); }
.yvn-results-head {
	min-height: 21px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: -4px 3px 14px;
	color: #64717d;
	font-size: 11px;
	font-weight: 600;
}
.yvn-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px 18px;
}
.yvn-card {
	min-height: 330px;
	display: flex;
	flex-direction: column;
	padding: 13px 13px 14px;
	border-radius: 20px;
	background: #f7f7f7;
	box-shadow: 0 15px 27px rgba(34, 43, 51, 0.09);
	transition: opacity 0.24s ease, transform 0.24s ease;
}
.yvn-card.yvn-hide { display: none; }
.yvn-image {
	width: 100%;
	height: 135px;
	display: block;
	object-fit: cover;
	border-radius: 9px;
	margin-bottom: 11px;
}
.yvn-tag {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 17px;
	padding: 2px 7px;
	border-radius: 7px;
	background: #d9efea;
	color: var(--_accent);
	font-size: 9px;
	font-weight: 800;
	margin: 0 0 10px;
}
.yvn-title {
	min-height: 48px;
	margin: 0 0 9px;
	color: #182735;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.75;
}
.yvn-title a {
	color: inherit;
	text-decoration: none;
}
.yvn-code {
	margin: 0 0 7px;
	color: #60707d;
	font-size: 10px;
	font-weight: 600;
}
.yvn-price {
	margin: 0 0 7px;
	color: #8b008b;
	font-size: 10px;
	font-weight: 900;
}
.yvn-capacity {
	margin: 0 0 12px;
	color: var(--_accent);
	font-size: 10px;
	font-weight: 900;
}
.yvn-view {
	width: 78px;
	height: 25px;
	margin-top: auto;
	margin-right: auto;
	border: 0;
	border-radius: 9px;
	background: #fff;
	color: #4b5864;
	font-size: 9px;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(27, 35, 42, 0.22);
	transition: transform 0.2s, box-shadow 0.2s;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
.yvn-view:hover {
	transform: translateY(-1px);
	box-shadow: 0 7px 14px rgba(27, 35, 42, 0.2);
}
.yvn-empty {
	display: none;
	min-height: 220px;
	align-items: center;
	justify-content: center;
	border-radius: 18px;
	background: #fff;
	color: #6f7d88;
	text-align: center;
	font-weight: 700;
	box-shadow: 0 12px 24px rgba(33, 40, 47, 0.08);
}
.yvn-empty.yvn-show { display: flex; }
@media (max-width: 900px) {
	.yvn-content { grid-template-columns: 1fr; }
	.yvn-filters {
		position: static;
		order: -1;
	}
	.yvn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.yvn-search-row,
	.yvn-grid { grid-template-columns: 1fr; }
	.yvn-card { min-height: auto; }
}

/***********************/
/* =========================================================
   FKM VENUES - LOCATION CARDS
   ========================================================= */

.yvn-page {
	width: 100%;
	direction: rtl;
	font-family: inherit;
}


/* =========================================================
   GRID
   ========================================================= */

.yvn-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	width: 100%;
	align-items: stretch;
}


/* =========================================================
   CARD
   ========================================================= */

.yvn-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;

	width: 100%;
	min-width: 0;

	padding: 12px 12px 18px;

	background: #f4f4f4;

	border: 1px solid rgba(0, 0, 0, 0.025);
	border-radius: 28px;

	box-shadow:
			0 8px 25px rgba(0, 0, 0, 0.035),
			inset 0 1px 0 rgba(255, 255, 255, 0.8);

	overflow: hidden;

	transition:
			transform 0.3s ease,
			box-shadow 0.3s ease;
}


/* Hover */

.yvn-card:hover {
	transform: translateY(-5px);

	box-shadow:
			0 18px 40px rgba(0, 0, 0, 0.08),
			inset 0 1px 0 rgba(255, 255, 255, 0.9);
}


/* =========================================================
   IMAGE
   ========================================================= */

.yvn-card .yvn-image {
	display: block;

	width: 100%;
	height: 184px;

	object-fit: cover;
	object-position: center;

	border-radius: 17px;

	margin: 0 0 10px;

	background: #e9e9e9;

	transition:
			transform 0.45s ease,
			filter 0.45s ease;
}


/* Image hover */

.yvn-card:hover .yvn-image {
	transform: scale(1.015);
}


/* =========================================================
   LABELS
   ========================================================= */

.yvn-labels {
	display: flex;
	flex-wrap: wrap;

	align-items: center;
	justify-content: flex-start;

	gap: 5px;

	min-height: 25px;

	margin: 0 2px 7px;
}


/* Individual label */

.yvn-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	padding: 4px 9px;

	border-radius: 999px;

	background: #293993;
	color: #ffffff;

	font-size: 10px;
	font-weight: 600;

	line-height: 1.5;

	white-space: nowrap;

	transition:
			background 0.25s ease,
			color 0.25s ease,
			transform 0.25s ease;
}


.yvn-label:hover {
	background: #293993;
	color: #ffffff;

	transform: translateY(-1px);
}


/* اگر از yvn-tag قبلی هم استفاده می‌کنی */

.yvn-card .yvn-tag {
	align-self: flex-start;

	display: inline-flex;

	padding: 4px 9px;

	margin: 0 2px 7px;

	border-radius: 999px;

	background: #dcefee;
	color: #293993;

	font-size: 10px;
	font-weight: 600;

	line-height: 1.5;
}


/* =========================================================
   TITLE
   ========================================================= */

.yvn-card .yvn-title {
	margin: 0 5px 8px;

	padding: 0;

	text-align: right;

	font-size: 16px;
	font-weight: 700;

	line-height: 1.8;

	color: #252525;
}


.yvn-card .yvn-title a {
	color: inherit;

	text-decoration: none;

	transition: color 0.25s ease;
}


.yvn-card:hover .yvn-title a {
	color: #293993;
}


/* =========================================================
   LOCATION CODE
   ========================================================= */

.yvn-card .yvn-code {
	margin: 0 5px 7px;

	padding: 0;

	color: #444;

	font-size: 13px;
	font-weight: 500;

	line-height: 1.7;

	text-align: right;
}


/* =========================================================
   PRICE
   ========================================================= */

.yvn-card .yvn-price {
	margin: 0 5px 6px;

	padding: 0;

	color: #990099;

	font-size: 14px;
	font-weight: 800;

	line-height: 1.8;

	text-align: right;
}


.yvn-card .yvn-price::first-letter {
	color: inherit;
}


/* =========================================================
   CAPACITY
   ========================================================= */

.yvn-card .yvn-capacity {
	margin: 0 5px 14px;

	padding: 0;

	color: #008b72;

	font-size: 13px;
	font-weight: 600;

	line-height: 1.8;

	text-align: right;
}


/* =========================================================
   VIEW BUTTON
   ========================================================= */

.yvn-card .yvn-view {
	display: flex;

	align-items: center;
	justify-content: center;

	width: 100%;
	max-width: 100px;

	min-height: 38px;

	margin: auto auto 0;

	padding: 7px 18px;

	background: #f4f4f4;

	color: #444;

	border: 0;

	border-radius: 13px;

	text-decoration: none;

	font-size: 12px;
	font-weight: 600;

	box-shadow:
			5px 5px 12px rgba(0, 0, 0, 0.08),
			-4px -4px 10px rgba(255, 255, 255, 0.95);

	transition:
			transform 0.25s ease,
			box-shadow 0.25s ease,
			background 0.25s ease,
			color 0.25s ease;
}


.yvn-card .yvn-view:hover {
	background: #ffffff;

	color: #293993;

	transform: translateY(-2px);

	box-shadow:
			7px 8px 18px rgba(0, 0, 0, 0.10),
			-4px -4px 10px rgba(255, 255, 255, 1);
}


.yvn-card .yvn-view:active {
	transform: translateY(1px);

	box-shadow:
			inset 3px 3px 7px rgba(0, 0, 0, 0.08),
			inset -3px -3px 7px rgba(255, 255, 255, 0.9);
}


/* =========================================================
   EMPTY
   ========================================================= */

.yvn-empty {
	display: none;

	width: 100%;

	padding: 35px 20px;

	border-radius: 20px;

	background: #f5f5f5;

	color: #666;

	text-align: center;

	font-size: 14px;
}


.yvn-empty.yvn-show {
	display: block;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1024px) {

	.yvn-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.yvn-card {
		padding: 11px 11px 17px;
	}

	.yvn-card .yvn-image {
		height: 175px;
	}

	.yvn-card .yvn-title {
		font-size: 15px;
	}
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

	.yvn-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.yvn-card {
		border-radius: 24px;

		padding: 11px 11px 17px;
	}

	.yvn-card .yvn-image {
		height: 190px;
		border-radius: 16px;
	}

	.yvn-card .yvn-title {
		font-size: 16px;
		line-height: 1.75;
	}

	.yvn-card .yvn-code {
		font-size: 13px;
	}

	.yvn-card .yvn-price {
		font-size: 14px;
	}

	.yvn-card .yvn-capacity {
		font-size: 13px;
	}

	.yvn-card .yvn-view {
		max-width: 105px;
	}
}