/* ===== Variables ===== */
.wsr-reviews-wrap, .wsr-modal {
	--wsr-accent: #f7931e;
	--wsr-accent-dark: #e07c00;
	--wsr-text: #2b2b2b;
	--wsr-muted: #7a7a7a;
	--wsr-border: #ececec;
	--wsr-star: #f2b400;
	font-family: inherit;
	color: var(--wsr-text);
}

/* ===== List ===== */
.wsr-reviews-title {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 20px;
}

.wsr-review-item {
	padding: 20px 0;
	border-bottom: 1px solid var(--wsr-border);
}
.wsr-review-item:first-child { border-top: 1px solid var(--wsr-border); }

.wsr-review-meta {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin-bottom: 6px;
}
.wsr-review-name { font-weight: 700; }
.wsr-review-date { color: var(--wsr-muted); font-size: 13px; }

.wsr-stars { display: inline-flex; margin: 4px 0; letter-spacing: 1px; }
.wsr-star { color: #d9d9d9; font-size: 15px; }
.wsr-star-filled { color: var(--wsr-star); }

.wsr-review-product {
	font-weight: 600;
	margin-top: 6px;
}

.wsr-review-text {
	margin-top: 6px;
	color: #4a4a4a;
	line-height: 1.5;
}
.wsr-review-text p { margin: 0 0 8px; }

.wsr-no-reviews { color: var(--wsr-muted); }

/* Pagination */
.wsr-pagination {
	display: flex;
	gap: 8px;
	margin-top: 24px;
}
.wsr-page-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 4px;
	border: 1px solid var(--wsr-border);
	color: var(--wsr-text);
	text-decoration: none;
	font-size: 14px;
}
.wsr-page-link.is-active,
.wsr-page-link:hover {
	background: var(--wsr-accent);
	border-color: var(--wsr-accent);
	color: #fff;
}

/* ===== Button ===== */
.wsr-btn {
	display: inline-block;
	background: var(--wsr-accent);
	color: #fff;
	border: none;
	padding: 12px 22px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	border-radius: 4px;
	cursor: pointer;
	transition: background .15s ease;
}
.wsr-btn:hover { background: var(--wsr-accent-dark); }

/* ===== Modal ===== */
.wsr-modal-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(20, 20, 20, .55);
	z-index: 100000;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.wsr-modal-overlay.is-open { display: flex; }

.wsr-modal {
	background: #fff;
	width: 100%;
	max-width: 420px;
	max-height: 92vh;
	overflow-y: auto;
	border-radius: 6px;
	padding: 28px 26px 24px;
	position: relative;
	box-shadow: 0 10px 40px rgba(0,0,0,.25);
}

.wsr-modal-close {
	position: absolute;
	top: 12px;
	right: 14px;
	background: none;
	border: none;
	font-size: 26px;
	line-height: 1;
	color: var(--wsr-muted);
	cursor: pointer;
}
.wsr-modal-close:hover { color: var(--wsr-text); }

.wsr-modal-title {
	text-align: center;
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 20px;
}

.wsr-field { margin-bottom: 14px; }
.wsr-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	color: var(--wsr-muted);
	margin-bottom: 6px;
}

.wsr-form input[type="text"],
.wsr-form input[type="tel"],
.wsr-form input[type="email"],
.wsr-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 14px;
	font-family: inherit;
}
.wsr-form input:focus,
.wsr-form textarea:focus {
	outline: none;
	border-color: var(--wsr-accent);
}

.wsr-rating-input { font-size: 26px; letter-spacing: 4px; cursor: pointer; }
.wsr-rate-star { color: #d9d9d9; transition: color .1s ease; }
.wsr-rate-star.is-active { color: var(--wsr-star); }

.wsr-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 13px;
	color: var(--wsr-muted);
	margin: 6px 0 4px;
	cursor: pointer;
}
.wsr-consent input { margin-top: 3px; }

.wsr-error {
	color: #d0322d;
	font-size: 12px;
	margin-top: 4px;
	min-height: 14px;
}

.wsr-form-message {
	font-size: 14px;
	margin: 10px 0;
}
.wsr-form-message.is-success { color: #1c8a3d; }
.wsr-form-message.is-error { color: #d0322d; }

.wsr-submit-btn { width: 100%; margin-top: 6px; }
.wsr-submit-btn:disabled { opacity: .6; cursor: default; }

.wsr-hp-field { position: absolute; left: -9999px; top: -9999px; }

@media (max-width: 480px) {
	.wsr-modal { padding: 22px 18px 18px; }
}
