/* Description */
.rating_description {
	margin-bottom: 20px;
	line-height: 1.5;
}
.rating_description p {
	margin-bottom: 10px;
}
.rating_disclaimer {
	font-size: 13px;
	color: #999;
	margin-bottom: 0 !important;
}
/* Filters */
.rating_filters {
	background: #f7f8fa;
	border: 1px solid #e3e6ea;
	padding: 15px 20px;
	margin-bottom: 25px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 10px 15px;
}
.rating_filter_item {
	margin-right: 0;
	position: relative;
}
.rating_filter_item label {
	display: block;
	font-size: 13px;
	line-height: 1.15;
	color: #595959;
	margin-bottom: 5px;
}
.rating_filter_item select,
.rating_filter_item input[type="text"] {
	font: 15px/1.15 'PT Sans', sans-serif;
	padding: 7px 12px;
	border: 1px solid #ccc;
	background: #fff;
	color: #222;
	vertical-align: top;
}
.rating_filter_item select {
	min-width: 180px;
}
.rating_filter_item input[type="text"] {
	width: 220px;
}
.rating_filter_submit .rating_search_hint {
	position: relative;
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.3;
	color: #a6233a;
	font-weight: bold;
	background: #fdf1f3;
	border: 1px solid #f2c3cc;
	border-radius: 6px;
	padding: 8px 12px 8px 30px;
	max-width: 220px;
	animation: ratingHintIn .45s ease-out;
}
.rating_search_hint::before {
	content: '↳';
	position: absolute;
	left: 10px;
	top: 5px;
	font-size: 18px;
	color: #c82f47;
}
@keyframes ratingHintIn {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}
.rating_filter_submit {
	align-self: flex-end;
	flex-shrink: 0;
}
.rating_filter_submit .pre_button {
	display: block;
}
.rating_filter_reset {
	align-self: flex-end;
	margin-left: 10px;
}
.rating_filter_reset a {
	font-size: 13px;
	color: #999;
}

/* Rating count */
.rating_count {
	margin-bottom: 15px;
	font-size: 15px;
	color: #595959;
}
.rating_count b {
	color: #222;
}

/* Rating table (desktop) */
.rating_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 30px;
}
.rating_table th {
	text-align: left;
	padding: 10px 12px;
	border-bottom: 2px solid #0864ba;
	font-size: 13px;
	font-weight: 700;
	color: #595959;
	white-space: nowrap;
}
.rating_table td {
	padding: 10px 12px;
	border-bottom: 1px solid #e3e6ea;
	font-size: 15px;
	vertical-align: middle;
}
.rating_table tr:hover td {
	background: #f7f8fa;
}
.rating_table .rating_rank {
	width: 50px;
	text-align: center;
	font-weight: 700;
	color: #595959;
}
.rating_table .rating_rank_top {
	color: #0864ba;
}
.rating_table .rating_name {
	font-weight: 700;
}
.rating_table .rating_region {
	color: #595959;
	font-size: 14px;
}
.rating_table .rating_value {
	white-space: nowrap;
}
.rating_table .rating_reviews_count a {
	color: #0864ba;
}

/* Rating cards (mobile) */
.rating_cards {
	display: none;
}
.rating_card {
	border: 1px solid #e3e6ea;
	padding: 15px;
	margin-bottom: 10px;
	font-size: 15px;
}
.rating_card_rank {
	font-weight: 700;
	color: #0864ba;
	margin-bottom: 5px;
}
.rating_card_name {
	font-weight: 700;
	margin-bottom: 5px;
}
.rating_card_name a {
	color: #222;
}
.rating_card_region {
	color: #595959;
	font-size: 14px;
	margin-bottom: 5px;
}
.rating_card_meta {
	font-size: 14px;
	color: #595959;
}

/* Reviews block */
.rating_reviews_section {
	margin-top: 40px;
	margin-bottom: 30px;
}
.rating_review_item {
	border-bottom: 1px solid #e3e6ea;
	padding: 15px 0;
}
.rating_review_item:last-child {
	border-bottom: none;
}
.rating_review_header {
	margin-bottom: 8px;
}
.rating_review_name {
	font-weight: 700;
}
.rating_review_date {
	color: #999;
	font-size: 13px;
	margin-left: 10px;
}
.rating_review_institution {
	margin-bottom: 5px;
}
.rating_review_institution a {
	font-weight: 700;
}
.rating_review_text {
	margin-bottom: 8px;
	line-height: 1.5;
	color: #333;
}
.rating_review_more {
	font-size: 14px;
}
.rating_reviews_all {
	margin-top: 20px;
}

/* Summary row */
.rating_summary_row {
	display: flex;
	align-items: center;
	gap: 25px;
	margin-bottom: 10px;
}

/* Top actions row */
.rating_top_actions {
	display: flex;
	align-items: stretch;
	gap: 12px;
	margin-bottom: 20px;
}

/* Methodology link */
.rating_methodology_link {
	display: inline-flex;
	align-items: center;
	padding: 6px 16px;
	font-size: 13px;
	font-weight: 700;
	color: #0864ba;
	text-decoration: none;
	border: 1px solid #0864ba;
	border-radius: 3px;
	background: #fff;
	white-space: nowrap;
}
.rating_methodology_link:hover {
	background: #f0f6ff;
}

/* Methodology block (at bottom) */
.rating_methodology_block {
	margin-top: 40px;
	margin-bottom: 30px;
	padding: 20px 25px;
	background: #f7f8fa;
	border: 1px solid #e3e6ea;
}
.rating_methodology_block h2 {
	margin-bottom: 12px;
}
.rating_methodology_block p {
	margin-bottom: 10px;
	line-height: 1.5;
}
.rating_methodology_block p:last-child {
	margin-bottom: 0;
}
.rating_methodology_cta {
	margin-top: 15px;
}
.rating_methodology_cta .rating_auth_hint {
	margin-top: 5px;
}

/* Overall stats */
.rating_overall_stats {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 15px;
}
.rating_overall_number {
	font-size: 40px;
	font-weight: 700;
	color: #0864ba;
	line-height: 1;
}
.rating_overall_stars {
	display: inline-block;
	margin-bottom: 2px;
}
.rating_overall_text {
	font-size: 13px;
	color: #595959;
}
.rating_auth_hint {
	margin-top: 5px;
	font-size: 12px;
	color: #999;
}
.rating_auth_hint a {
	color: #0864ba;
}

/* Final CTA */
.rating_final_cta {
	margin-top: 30px;
	margin-bottom: 20px;
	text-align: center;
	padding: 20px 25px;
	background: #f7f8fa;
	border: 1px solid #e3e6ea;
}
.rating_final_cta p {
	margin-bottom: 15px;
	line-height: 1.5;
}

/* No results */
.rating_no_results {
	padding: 30px 0;
	text-align: center;
}
.rating_no_results p {
	margin-bottom: 15px;
	color: #595959;
}

/* Old/new toggle */
.rating_version_toggle {
	margin-bottom: 20px;
	padding: 10px 15px;
	background: #f0f3f6;
	border-radius: 3px;
	font-size: 14px;
	color: #595959;
}
.rating_version_toggle a {
	font-weight: 700;
}

/* Mobile responsive */
@media screen and (max-width: 900px) {
	.rating_summary_row {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.rating_top_actions {
		flex-wrap: wrap;
	}
	.rating_overall_number {
		font-size: 32px;
	}
	.rating_filters {
		padding: 12px 15px;
	}
	.rating_filter_item {
		display: block;
		width: 100%;
		margin-right: 0;
		margin-bottom: 10px;
	}
	.rating_filter_item select,
	.rating_filter_item input[type="text"] {
		width: 100%;
		box-sizing: border-box;
		min-width: auto;
	}
	.rating_filter_submit .rating_search_hint {
		position: static;
		white-space: normal;
	}
	.rating_filter_submit {
		padding-top: 5px;
	}
	.rating_filter_reset {
		padding-top: 5px;
		margin-left: 0;
		margin-top: 5px;
	}
	.rating_table {
		display: none;
	}
	.rating_cards {
		display: block;
	}
}
