/* Freemius Reviews Display
 * Change the look by overriding these variables in your theme, e.g.
 * .fsrd { --fsrd-primary: #0068b3; }
 */
.fsrd {
	--fsrd-primary: #0084ff;
	--fsrd-primary-hover: #006ad4;
	--fsrd-star: #ff7f22;
	--fsrd-star-off: #e2e8f0;
	--fsrd-track: #e5edf6;
	--fsrd-text: #020f19;
	--fsrd-muted: #515F7C;
	--fsrd-placeholder: #a0aec0;
	--fsrd-verified: #0BA449;
	--fsrd-bg: #ffffff;
	--fsrd-card: #ffffff;
	--fsrd-form-bg: #f8fafc;
	--fsrd-border: #dde4eb;
	--fsrd-divider: #d9e2ed;
	--fsrd-input-border: #dbe2ea;
	--fsrd-shadow: 0 14px 14px rgba(9, 26, 54, .05);
	--fsrd-radius: 22px;
	color: var(--fsrd-text);
	background: var(--fsrd-bg);
	font-family: inherit;
	line-height: 1.6;
	padding: 60px 0;
}
.fsrd *, .fsrd *::before, .fsrd *::after { box-sizing: border-box; }
.fsrd .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.fsrd-container { max-width: 1188px; margin: 0 auto; padding: 0 12px; }

/* Section header */
.fsrd-header { text-align: center; max-width: 860px; margin: 0 auto 30px; }
.fsrd .fsrd-heading { margin: 0 0 12px; font-size: 34px; font-weight: 700; line-height: 1.25; color: var(--fsrd-text); }
.fsrd-intro { margin: 0; font-size: 16px; line-height: 1.8; color: var(--fsrd-text); }

/* Stars */
.fsrd-stars { display: inline-flex; gap: 2px; vertical-align: middle; line-height: 0; }
/* Empty stars are the same shape outlined; "is-on" fills them. */
.fsrd-star svg { display: block; width: 24px; height: 23px; overflow: visible; fill: none; stroke: var(--fsrd-star); stroke-width: 1.3; }
.fsrd-star.is-on svg { fill: var(--fsrd-star); }

/* Buttons. The theme styles every <button>, so each property is set here. */
.fsrd .fsrd-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: inherit; font-weight: 600; font-size: 14px; line-height: 18px;
	letter-spacing: .1em; text-transform: uppercase;
	padding: 12px 29px;
	border: 1px solid var(--fsrd-primary);
	border-radius: 999px;
	background: var(--fsrd-primary); color: #fff;
	box-shadow: 0 6px 6px rgba(0, 132, 255, .12);
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.fsrd .fsrd-btn:hover { background: var(--fsrd-primary-hover); border-color: var(--fsrd-primary-hover); color: #fff; }
.fsrd .fsrd-btn-outline { background: transparent; color: var(--fsrd-primary); box-shadow: none; }
.fsrd .fsrd-btn-outline:hover { background: var(--fsrd-primary); border-color: var(--fsrd-primary); color: #fff; }
.fsrd .fsrd-btn[disabled] { opacity: .6; cursor: wait; }
.fsrd .fsrd-btn[hidden] { display: none; }
.fsrd-arrow { width: 14px; height: 14px; flex-shrink: 0; transition: transform .2s; }
.fsrd .fsrd-btn:hover .fsrd-arrow { transform: translateX(3px); }
.fsrd .fsrd-btn:focus-visible,
.fsrd-popup .fsrd-popup-close:focus-visible,
.fsrd-popup .fsrd-page:focus-visible,
.fsrd-rate input:focus-visible + label,
.fsrd-consent input:focus-visible {
	outline: 3px solid rgba(0, 128, 255, .45); outline-offset: 2px;
}

/* Summary card */
.fsrd-summary {
	display: grid;
	align-items: center;
	background: var(--fsrd-card);
	border: 1px solid var(--fsrd-border);
	border-radius: var(--fsrd-radius);
	box-shadow: var(--fsrd-shadow);
	padding: 29px 49px;
	margin-bottom: 30px;
}
.fsrd-average { margin: 0 0 12px; line-height: 1; }
.fsrd-average-num { font-size: 34px; font-weight: 600; }
.fsrd-average-of { font-size: 20px; font-weight: 500; margin-left: 2px; }
.fsrd-total { margin: 10px 0 0; font-size: 16px; line-height: 20px; color: var(--fsrd-muted); }
.fsrd-empty { margin: 0; font-size: 18px; color: var(--fsrd-muted); }
.fsrd-cta-text { margin: 0; font-size: 20px; font-weight: 500; line-height: 25px; color: #000; }

/* 10+ reviews: score | bars | call to action */
.fsrd-summary-full { grid-template-columns: 128px minmax(0, 338px) 1fr; gap: 63px; }
.fsrd-summary-full .fsrd-cta {
	align-self: stretch;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px;
	text-align: center;
	border-left: 1px solid var(--fsrd-divider);
	padding-left: 59px;
	justify-self: end;
}

/* Fewer reviews: [illustration] | score, call to action, button */
.fsrd-summary-compact { grid-template-columns: auto 1fr; gap: 52px; }
.fsrd-summary-compact.has-image { grid-template-columns: 300px auto 1fr; gap: 40px; padding-left: 40px; }
.fsrd-summary-media { padding-right: 40px; border-right: 1px solid var(--fsrd-border); align-self: stretch; display: flex; align-items: center; justify-content: center; }
.fsrd-summary-media img { display: block; max-width: 100%; max-height: 150px; width: auto; height: auto; }
.fsrd-summary-compact .fsrd-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fsrd .fsrd-btn { white-space: nowrap; }

/* Rating bars */
.fsrd-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.fsrd-bar-row { display: grid; grid-template-columns: 8px 1fr minmax(21px, auto); align-items: center; gap: 12px; margin: 0; font-size: 12px; line-height: 15px; }
.fsrd-bar { display: block; height: 8px; border-radius: 99px; background: var(--fsrd-track); overflow: hidden; }
.fsrd-bar-fill { display: block; height: 100%; border-radius: 99px; background: var(--fsrd-star); }
.fsrd-bar-count { font-variant-numeric: tabular-nums; }

/* Review form */
.fsrd-form-wrap {
	background: var(--fsrd-form-bg);
	border: 1px solid var(--fsrd-border);
	border-radius: var(--fsrd-radius);
	padding: 52px 52px 48px;
	margin-bottom: 30px;
	scroll-margin-top: 120px;
}
.fsrd-form-wrap[hidden] { display: none; }
.fsrd-form-head { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.fsrd-form-title { margin: 0 0 12px; }
.fsrd-form-note { margin: 0; font-size: 18px; }
.fsrd-field { margin: 0 0 24px; border: 0; padding: 0; min-width: 0; }
.fsrd-field legend, .fsrd-field label { display: block; font-size: 16px; font-weight: 500; margin-bottom: 10px; padding: 0; }
.fsrd-rating-field { margin: 0; }
.fsrd-rating-field legend { font-size: 18px; }
.fsrd-field input, .fsrd-field textarea {
	display: block; width: 100%;
	font: inherit; font-size: 16px;
	padding: 16px 20px;
	border: 1px solid var(--fsrd-input-border); border-radius: 4px;
	background: #fff; color: var(--fsrd-text);
	box-shadow: none;
}
.fsrd-field textarea { min-height: 148px; resize: vertical; }
.fsrd-field input::placeholder, .fsrd-field textarea::placeholder { color: var(--fsrd-placeholder); opacity: 1; }
.fsrd-field input:focus, .fsrd-field textarea:focus { outline: none; border-color: var(--fsrd-primary); box-shadow: 0 0 0 3px rgba(0, 128, 255, .15); }
.fsrd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 30px; margin-bottom: 24px; }
.fsrd .fsrd-row .fsrd-field { margin-bottom: 0; }
.fsrd-consent { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0 24px; font-size: 16px; }
.fsrd-consent input { flex-shrink: 0; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--fsrd-primary); cursor: pointer; }
.fsrd-consent label { cursor: pointer; }
.fsrd-consent a { color: var(--fsrd-primary); text-decoration: none; }
.fsrd-consent a:hover { text-decoration: underline; }
.fsrd-hp { position: absolute; left: -9999px; }
.fsrd-status { margin: 0 0 16px; font-size: 15px; }
.fsrd-status:empty { display: none; }
.fsrd-status.is-error { color: #b3261e; }
.fsrd-status.is-success { color: var(--fsrd-verified); font-weight: 600; }
.fsrd-actions { display: flex; flex-wrap: wrap; gap: 24px; }

/* AJAX loader: same ring as the theme's other AJAX loaders (blog / product list). */
.fsrd-form { position: relative; }
.fsrd-loader {
	position: absolute; inset: -1px;
	display: flex; align-items: center; justify-content: center;
	background: rgba(248, 250, 252, .75);
	border-radius: inherit;
	z-index: 5;
	opacity: 0; visibility: hidden;
	transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
}
.fsrd-form.is-loading .fsrd-loader { opacity: 1; visibility: visible; }
/* Popup: overlay the (scrolling) body while a page of reviews loads. */
.fsrd-popup-body { position: relative; }
.fsrd-popup-loader { inset: 0; align-items: flex-start; padding-top: 120px; background: rgba(255, 255, 255, .7); border-radius: 0; }
.fsrd-popup.is-loading .fsrd-popup-loader { opacity: 1; visibility: visible; }
.fsrd-spinner {
	display: block; width: 60px; height: 60px;
	border: 5px solid #ededed; border-top-color: #0068b3; border-radius: 100%;
	animation: fsrd-spin 1s linear infinite;
}
@keyframes fsrd-spin { to { transform: rotate(360deg); } }

/* Star picker: inputs are in 5→1 order and shown reversed so ~ selectors fill to the left */
.fsrd-rate { display: inline-flex; flex-direction: row-reverse; gap: 14px; }
.fsrd-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fsrd-rate label { cursor: pointer; margin: 0; border-radius: 4px; }
.fsrd-rate svg { width: 44px; height: 42px; overflow: visible; fill: none; stroke: var(--fsrd-star); stroke-width: 1.2; display: block; transition: fill .1s; }
.fsrd-rate input:checked ~ label svg,
.fsrd-rate label:hover svg,
.fsrd-rate label:hover ~ label svg { fill: var(--fsrd-star); }

/* "Verified Buyer" badge (page cards and popup) */
.fsrd-verified { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; line-height: 18px; color: var(--fsrd-muted); white-space: nowrap; }
.fsrd-verified svg { display: block; width: 16px; height: 16px; flex-shrink: 0; }

/* Page review cards: masonry, 3 columns. fsrd.js adds .is-masonry and gives
   each card a row span equal to its height, so no column is left short.
   Without JS the cards sit in plain grid rows. */
.fsrd-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.fsrd-grid.is-masonry { grid-auto-rows: 1px; row-gap: 0; margin-bottom: -24px; } /* last span includes the gap */
.fsrd-grid.is-masonry .fsrd-card { margin: 0; }
/* Fewer than three: centred in one row. */
.fsrd-grid.is-few { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; }
.fsrd-grid.is-few .fsrd-card { width: calc((100% - 48px) / 3); }
.fsrd-card {
	margin: 0;
	padding: 29px 23px;
	border: 1px solid var(--fsrd-border);
	border-radius: 16px;
	background: var(--fsrd-card);
	box-shadow: var(--fsrd-shadow);
}
.fsrd-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.fsrd-card-who { min-width: 0; }
.fsrd .fsrd-card-name { margin: 0; font-size: 20px; font-weight: 500; line-height: 25px; color: #000; text-transform: capitalize; overflow-wrap: anywhere; }
.fsrd-card-date { display: block; margin-top: 4px; font-size: 14px; line-height: 18px; color: var(--fsrd-muted); }
.fsrd-card-head .fsrd-verified { margin-top: 4px; }
.fsrd-card-rating {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	margin-top: 14px; padding-top: 14px;
	border-top: 1px solid #e9eff5;
}
.fsrd-quote { display: block; width: 25px; height: 18px; margin-right: -4px; fill: #e2eaf2; flex-shrink: 0; }
.fsrd .fsrd-card-title { margin: 14px 0 0; font-size: 16px; font-weight: 500; line-height: 20px; color: var(--fsrd-text); }
.fsrd .fsrd-card-text {
	margin: 14px 0 0;
	font-size: 16px; line-height: 1.8; color: var(--fsrd-muted);
	overflow-wrap: anywhere;
	display: -webkit-box; -webkit-line-clamp: 10; -webkit-box-orient: vertical; overflow: hidden;
}
.fsrd .fsrd-card-title + .fsrd-card-text { margin-top: 8px; }
.fsrd-more-wrap { text-align: center; margin-top: 30px; }

/* Popup review cards */
.fsrd-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.fsrd-review {
	margin: 0;
	padding: 29px;
	border: 1px solid var(--fsrd-divider);
	border-radius: var(--fsrd-radius);
	background: var(--fsrd-card);
	box-shadow: var(--fsrd-shadow);
}
.fsrd-review[hidden] { display: none; }
.fsrd-review-top {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
	padding-bottom: 18px; margin-bottom: 20px;
	border-bottom: 1px solid var(--fsrd-divider);
}
.fsrd-review-byline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; margin: 0 0 10px; line-height: 25px; }
.fsrd-review-name { font-size: 20px; font-weight: 500; color: #000; }
.fsrd-review-date { font-size: 16px; color: var(--fsrd-muted); }
.fsrd .fsrd-review-title { margin: 0 0 12px; font-size: 18px; font-weight: 500; line-height: 23px; color: #2f4858; }
.fsrd-review-text { font-size: 16px; line-height: 1.8; color: var(--fsrd-muted); }
.fsrd-review-text p { margin: 0 0 10px; }
.fsrd-review-text p:last-child { margin-bottom: 0; }

/* "View All" popup */
.fsrd-popup {
	width: min(1124px, calc(100vw - 32px));
	max-height: calc(100vh - 64px);
	border: 0; border-radius: 28px;
	padding: 0;
	color: var(--fsrd-text);
	background: #fff;
	box-shadow: 0 24px 80px rgba(0, 0, 0, .25);
	overflow: hidden;
}
.fsrd-popup[open] { display: flex; flex-direction: column; }
.fsrd-popup::backdrop { background: rgba(15, 23, 42, .45); }
.fsrd-popup-head {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 25px 30px 25px 40px;
	border-bottom: 1px solid #d8e0ea;
	box-shadow: 0 2px 2px rgba(0, 0, 0, .04);
	flex-shrink: 0;
}
.fsrd-popup .fsrd-popup-title { margin: 0; font-size: 24px; font-weight: 600; line-height: 30px; color: #000; }
.fsrd-popup .fsrd-popup-close {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; padding: 0;
	background: transparent; border: 0; border-radius: 50%; box-shadow: none;
	color: #93a8be; cursor: pointer;
}
.fsrd-popup .fsrd-popup-close:hover { background: #f1f5f9; color: var(--fsrd-text); }
.fsrd-popup-close svg { width: 18px; height: 18px; }
.fsrd-popup-body { overflow-y: auto; padding: 30px; flex: 1 1 auto; outline: none; }
.fsrd-popup-summary { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 32px; width: 90%; }
.fsrd-popup-summary .fsrd-bars { width: min(400px, 100%); }
.fsrd-popup-rated { margin: 0; font-size: 16px; line-height: 1.6; color: #000; }
.fsrd-pager {
	display: flex; justify-content: flex-end; align-items: center; gap: 8px;
	padding: 20px 30px;
	border-top: 1px solid #d8e0ea;
	box-shadow: 0 -2px 2px rgba(0, 0, 0, .04);
	flex-shrink: 0;
}
.fsrd-pager[hidden] { display: none; }
.fsrd-popup .fsrd-page {
	display: inline-flex; align-items: center; justify-content: center;
	width: auto; min-width: 38px; height: 38px; padding: 0 6px;
	font: inherit; font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1;
	background: #fff; color: #5a7ba6;
	border: 1px solid #e5eff5; border-radius: 99px; box-shadow: none;
	cursor: pointer;
}
.fsrd-popup .fsrd-page:hover { background: #f1f5f9; color: var(--fsrd-text); }
.fsrd-popup .fsrd-page-prev, .fsrd-popup .fsrd-page-next { color: #040f1e; }
.fsrd-popup .fsrd-page[aria-current="page"] { background: var(--fsrd-primary); border-color: var(--fsrd-primary); color: #fff; }
.fsrd-popup .fsrd-page[disabled] { opacity: .35; cursor: default; background: #fff; }
.fsrd-page svg { width: 14px; height: 14px; }
.fsrd-page-prev svg { transform: rotate(180deg); }
.fsrd-page-gap { min-width: 20px; text-align: center; color: var(--fsrd-muted); }
html.fsrd-lock { overflow: hidden; }

.fsrd-admin-msg { padding: .75rem 1rem; border-left: 4px solid #d63638; background: #fcf0f1; }

/* Tablet */
@media (max-width: 1199px) {
	.fsrd-summary { padding: 32px; }
	.fsrd-summary-full { grid-template-columns: 180px minmax(0, 1fr); gap: 32px; }
	.fsrd-summary-full .fsrd-cta { grid-column: 1 / -1; justify-self: stretch; min-width: 0; border-left: 0; border-top: 1px solid var(--fsrd-border); padding: 28px 0 0; }
	.fsrd-summary-compact.has-image { grid-template-columns: 220px auto 1fr; gap: 32px; padding-left: 32px; }
	.fsrd-summary-media { padding-right: 32px; }
	.fsrd-summary-compact { gap: 32px; }
	.fsrd-cta-text { font-size: 20px; }
}
@media (max-width: 991px) {
	.fsrd-summary-compact, .fsrd-summary-compact.has-image { grid-template-columns: 1fr; text-align: center; }
	.fsrd-summary-media { border-right: 0; padding: 0; justify-content: center; }
	.fsrd-summary-media img { max-width: 280px; }
	.fsrd-summary-compact.has-image { padding-left: 20px; }
	.fsrd-summary-compact .fsrd-cta { flex-direction: column; justify-content: center; }
	.fsrd-form-head { grid-template-columns: 1fr; }
	.fsrd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fsrd-grid.is-few .fsrd-card { width: calc((100% - 24px) / 2); }
	.fsrd-popup-summary {width: 100%;}
}
/* Phone */
@media (max-width: 767px) {
	.fsrd { padding: 40px 0; }
	.fsrd .fsrd-heading { font-size: 28px; }
	.fsrd-header { margin-bottom: 24px; }
	.fsrd-summary { padding: 24px 20px; margin-bottom: 24px; }
	.fsrd-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.fsrd-grid.is-few .fsrd-card { width: 100%; }
	.fsrd-card { padding: 23px 19px; }
	.fsrd-more-wrap { margin-top: 24px; }
	.fsrd-summary-full { grid-template-columns: 1fr; gap: 24px; text-align: center; }
	.fsrd-summary-full .fsrd-bars { text-align: left; }
	.fsrd-form-wrap { padding: 28px 20px; margin-bottom: 32px; }
	.fsrd-row { grid-template-columns: 1fr; }
	.fsrd-rate { gap: 8px; }
	.fsrd-rate svg { width: 36px; height: 34px; }
	.fsrd-actions { gap: 12px; }
	.fsrd-review { padding: 24px 20px; }
	.fsrd-review-top { flex-direction: column-reverse; gap: 10px; padding-bottom: 18px; margin-bottom: 18px; }
	.fsrd-review-name { font-size: 18px; }
	.fsrd-review-date { font-size: 14px; }
	.fsrd-review-text { font-size: 15px; line-height: 1.75; }
	.fsrd-popup { width: calc(100vw - 16px); max-height: calc(100vh - 32px); }
	.fsrd-popup-head { padding: 18px 20px; }
	.fsrd-popup-title { font-size: 20px; }
	.fsrd-popup-body { padding: 20px 16px; }
	.fsrd-popup-summary { flex-direction: column; align-items: stretch; gap: 20px; }
	.fsrd-popup-summary .fsrd-bars { width: 100%; }
	.fsrd-popup-rated { font-size: 16px; }
	.fsrd-pager { justify-content: center; padding: 14px 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.fsrd *, .fsrd *::before, .fsrd *::after { transition: none !important; }
	.fsrd-spinner { animation-duration: 2.5s; }
}
