/* Puzzle Services — self-contained front-end styles (portable to any theme) */
.pzsvc-grid, .pzsvc-detail-list {
	--pzsvc-pink: #EA267A;
	--pzsvc-purple: #692D8D;
	--pzsvc-mustard: #d6a337;
	--pzsvc-lavender: #e9c0e9;
	--pzsvc-forest: #254f1a;
	--pzsvc-maroon: #780016;
	--pzsvc-cobalt: #061492;
	--pzsvc-white: #ffffff;
	--pzsvc-ink: #000000;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Plus Jakarta Sans", Roboto, sans-serif;
	box-sizing: border-box;
}
.pzsvc-grid *, .pzsvc-detail-list * { box-sizing: border-box; }

.pzsvc-empty { color: #666; font-style: italic; }

/* Compact grid */
.pzsvc-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	margin: 0;
}
@media (min-width: 640px) { .pzsvc-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .pzsvc-grid { grid-template-columns: repeat(3, 1fr); } }

.pzsvc-card {
	border: 2.5px solid var(--pzsvc-ink);
	border-radius: 32px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-height: 190px;
	transition: transform .18s ease;
}
.pzsvc-card:hover { transform: translateY(-4px); }
.pzsvc-card h3 { font-size: 1.12rem; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.pzsvc-card p { font-size: .9rem; line-height: 1.5; opacity: .9; margin: 0; }
.pzsvc-icon svg { width: 34px; height: 34px; display: block; }

.pzsvc-fill-pink     { background: var(--pzsvc-pink); color: #000; }
.pzsvc-fill-purple   { background: var(--pzsvc-purple); color: #fff; }
.pzsvc-fill-white    { background: var(--pzsvc-white); color: #000; }
.pzsvc-fill-mustard  { background: var(--pzsvc-mustard); color: #000; }
.pzsvc-fill-lavender { background: var(--pzsvc-lavender); color: #000; }
.pzsvc-fill-forest   { background: var(--pzsvc-forest); color: #fff; }
.pzsvc-fill-maroon   { background: var(--pzsvc-maroon); color: #fff; }
.pzsvc-fill-cobalt   { background: var(--pzsvc-cobalt); color: #fff; }
.pzsvc-fill-pink p, .pzsvc-fill-white p, .pzsvc-fill-mustard p, .pzsvc-fill-lavender p { color: #2c2830; }
.pzsvc-fill-purple p, .pzsvc-fill-forest p, .pzsvc-fill-maroon p, .pzsvc-fill-cobalt p { color: #f2f2f2; }

/* Detailed list */
.pzsvc-detail-list { display: flex; flex-direction: column; gap: 26px; }
.pzsvc-detail-card { border: 2.5px solid var(--pzsvc-ink); border-radius: 56px; overflow: hidden; background: #fff; }
.pzsvc-detail-band { padding: 28px 30px; }
.pzsvc-detail-band h3 { font-size: 1.4rem; font-weight: 800; margin: 0; }
.pzsvc-detail-body { padding: 26px 30px; }
.pzsvc-detail-copy { max-width: 70ch; font-size: .98rem; line-height: 1.6; color: #2c2830; margin-bottom: 16px; }
.pzsvc-detail-copy p { margin: 0 0 12px; }
.pzsvc-tagrow { display: flex; flex-wrap: wrap; gap: 7px; }
.pzsvc-tag {
	font-family: ui-monospace, "JetBrains Mono", SFMono-Regular, monospace;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .02em;
	border: 1.5px solid var(--pzsvc-ink);
	border-radius: 99px;
	padding: 4px 10px;
	color: #000;
}
