@font-face {
	font-family: "NorthwindSlowSerif";
	src: url("../fonts/Literata72pt-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: block;
}

@font-face {
	font-family: "NorthwindSlowSerif";
	src: url("../fonts/FiraSans-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: block;
}

body {
	font-family: "NorthwindSlowSerif", Georgia, serif;
}

.sf-lab-review-soup {
	background: #fff;
	border-bottom: 1px solid #d9dde7;
	padding: 48px 0;
}

.sf-lab-review-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 18px;
}

.sf-lab-review-card {
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 8px;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.10);
	min-height: 150px;
	padding: 16px;
}

.sf-lab-review-card strong,
.sf-lab-review-card span {
	display: block;
}

.sf-lab-review-card span {
	color: #9f1239;
	font-weight: 800;
	margin-bottom: 8px;
}

.sf-lab-review-badges {
	display: grid;
	gap: 6px;
	grid-template-columns: repeat(4, 32px);
	margin-top: 12px;
}

.sf-lab-review-badges img {
	background: #fff;
	border-radius: 6px;
	display: block;
	height: 32px;
	width: 32px;
}

.sf-lab-heavy-gallery {
	background: #f8fafc;
	border-bottom: 1px solid #d9dde7;
	border-top: 1px solid #d9dde7;
	padding: 54px 22px;
}

.sf-lab-heavy-gallery-inner {
	margin: 0 auto;
	max-width: 1180px;
}

.sf-lab-heavy-gallery-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 22px;
}

.sf-lab-heavy-gallery-item {
	background: #fff;
	border: 1px solid #d9dde7;
	border-radius: 8px;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
	margin: 0;
	overflow: hidden;
}

.sf-lab-heavy-gallery-item figcaption {
	color: #5d6475;
	font-size: 14px;
	padding: 12px 14px;
}

.sf-lab-late-banner {
	background: #fff7ed;
	border: 4px solid #b91c1c;
	display: block;
	font-size: 18px;
	line-height: 1.5;
	margin: 0 0 24px;
	padding: 32px 24px;
}

.sf-lab-late-banner strong,
.sf-lab-late-banner span {
	display: block;
}

.sf-lab-late-review-block {
	background: #fffbeb;
	border: 3px solid #f59e0b;
	margin: 24px 0;
	padding: 28px;
}

.sf-lab-review-row {
	display: grid;
	gap: 12px;
}

.sf-noisy-plugin-dom {
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 48px auto;
	max-width: 1120px;
	padding: 28px;
}

.sf-noisy-plugin-dom h2 {
	grid-column: 1 / -1;
}

.sf-noisy-card {
	background: #fff;
	border: 1px solid #e2e8f0;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
	min-height: 190px;
	padding: 18px;
}

.sf-pill {
	background: #fee2e2;
	color: #991b1b;
	display: inline-block;
	font-size: 12px;
	letter-spacing: 0.08em;
	margin-bottom: 12px;
	padding: 4px 8px;
	text-transform: uppercase;
}

.sf-lab-chat {
	bottom: 16px;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	position: fixed;
	right: 16px;
	width: 320px;
	z-index: 99999;
}

.sf-lab-chat-launcher {
	background: #111827;
	border: 0;
	border-radius: 999px;
	bottom: 0;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
	color: #fff;
	cursor: pointer;
	min-height: 52px;
	position: absolute;
	right: 0;
	width: 168px;
}

.sf-lab-chat-dot {
	background: #dc2626;
	border-radius: 999px;
	color: #fff;
	display: grid;
	font-size: 12px;
	font-weight: 700;
	height: 24px;
	place-items: center;
	position: absolute;
	right: 12px;
	top: -8px;
	width: 24px;
}

.sf-lab-chat-icon {
	margin-right: 8px;
}

.sf-lab-chat-panel {
	background: #fff;
	border: 1px solid #d1d5db;
	border-radius: 18px;
	bottom: 70px;
	box-shadow: 0 24px 70px rgba(15, 23, 42, 0.35);
	overflow: hidden;
	position: absolute;
	right: 0;
	width: 320px;
}

.sf-lab-chat-panel.is-closed {
	display: none;
}

.sf-lab-chat-head {
	background: #111827;
	color: #fff;
	padding: 14px 16px;
}

.sf-lab-chat-head strong,
.sf-lab-chat-head span {
	display: block;
}

.sf-lab-chat-head span {
	font-size: 12px;
	margin-top: 2px;
	opacity: 0.75;
}

.sf-lab-chat-body {
	background: #f8fafc;
	display: grid;
	gap: 10px;
	max-height: 280px;
	overflow: auto;
	padding: 14px;
}

.sf-lab-msg {
	border-radius: 14px;
	font-size: 13px;
	line-height: 1.4;
	max-width: 86%;
	padding: 10px 12px;
}

.sf-lab-msg b {
	display: block;
	font-size: 11px;
	letter-spacing: 0.04em;
	margin-bottom: 4px;
	text-transform: uppercase;
}

.sf-lab-msg p {
	margin: 0;
}

.sf-lab-msg-agent {
	background: #fff;
	border: 1px solid #e5e7eb;
	justify-self: start;
}

.sf-lab-msg-user {
	background: #dbeafe;
	border: 1px solid #bfdbfe;
	justify-self: end;
}

.sf-lab-typing {
	align-items: center;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	display: flex;
	gap: 4px;
	padding: 10px;
	width: 52px;
}

.sf-lab-typing span {
	background: #6b7280;
	border-radius: 999px;
	display: block;
	height: 6px;
	width: 6px;
}

.sf-lab-chat-form {
	border-top: 1px solid #e5e7eb;
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr 72px;
	padding: 12px;
}

.sf-lab-chat-form input,
.sf-lab-chat-form button {
	border: 1px solid #d1d5db;
	border-radius: 10px;
	min-height: 38px;
}

.sf-lab-chat-form input {
	background: #f3f4f6;
	padding: 0 10px;
}

.sf-lab-chat-form button {
	background: #9ca3af;
	color: #fff;
}

.sf-lab-chat-note {
	color: #6b7280;
	font-size: 11px;
	margin: 0;
	padding: 0 12px 12px;
}

@media (max-width: 820px) {
	.sf-lab-review-grid,
	.sf-lab-heavy-gallery-grid,
	.sf-noisy-plugin-dom {
		grid-template-columns: 1fr;
	}

	.sf-lab-chat {
		max-width: calc(100vw - 32px);
		width: 300px;
	}
}
