/*
Theme Name: Protocol Media
Template: twentytwentyfive
Version: 1.0
*/

:root {
--pm-bg: #0A0A0A;
--pm-surface: #141414;
--pm-text: #E8E8E8;
--pm-muted: #9A9A9A;
--pm-accent: #C0C0C0;
--pm-border: #2A2A2A;
}

.pm-lead-brief {
max-width: 68ch;
margin: 0 auto 4rem;
}

.pm-group {
max-width: 68ch;
margin: 0 auto 3rem;
padding-top: 2rem;
border-top: 1px solid var(--pm-border);
}

.pm-group-title {
font-family: Manrope, sans-serif;
font-weight: 700;
font-size: 0.8rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--pm-muted);
margin: 0 0 1.25rem;
}

.pm-asset-list {
list-style: none;
margin: 0;
padding: 0;
}

.pm-asset {
padding: 0.9rem 0;
border-bottom: 1px solid var(--pm-border);
}

.pm-asset:last-child { border-bottom: none; }

.pm-asset-link {
font-family: Manrope, sans-serif;
font-weight: 700;
color: var(--pm-text);
text-decoration: none;
}

.pm-asset-link:hover { color: var(--pm-accent); }

.pm-asset-meta {
font-size: 0.9rem;
color: var(--pm-muted);
margin: 0.35rem 0 0;
}

.pm-tag {
display: inline-block;
margin-left: 0.6rem;
padding: 0.15rem 0.5rem;
font-family: Manrope, sans-serif;
font-size: 0.65rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--pm-muted);
border: 1px solid var(--pm-border);
border-radius: 2px;
}

.pm-list-gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 1rem;
}

.pm-list-gallery .pm-asset {
padding: 0;
border-bottom: none;
}

.pm-image-link { display: block; text-decoration: none; }
.pm-image-link img { width: 100%; height: auto; display: block; }

.pm-image-caption {
display: block;
margin-top: 0.4rem;
font-family: Manrope, sans-serif;
font-size: 0.8rem;
color: var(--pm-text);
}

.pm-empty {
max-width: 68ch;
margin: 0 auto 3rem;
color: var(--pm-muted);
font-style: italic;
}

/* ===== CONNECTION LAYER ===== */

.pm-related {
max-width: 68ch;
margin: 4rem auto 0;
padding-top: 2rem;
border-top: 1px solid var(--pm-border);
}

.pm-related-lead {
font-family: Manrope, sans-serif;
font-size: 1.0rem;
letter-spacing: 0.10em;
text-transform: uppercase;
color: var(--pm-muted);
margin: 0 0 2.5rem;
}

.pm-related-group { margin-bottom: 2.75rem; }

.pm-cards {
list-style: none;
margin: 0;
padding: 0;
}

.pm-cards .pm-card {
padding: 0.9rem 0;
border-bottom: 1px solid var(--pm-border);
}

.pm-cards .pm-card:last-child { border-bottom: none; }

.pm-cards-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 1.5rem;
}

.pm-cards-grid .pm-card {
padding: 0;
border-bottom: none;
}

.pm-card-thumb { display: block; margin-bottom: 0.6rem; }

.pm-thumb {
width: 100%;
height: auto;
display: block;
border: 1px solid var(--pm-border);
}

.pm-card-title {
font-family: Manrope, sans-serif;
font-weight: 700;
color: var(--pm-text);
text-decoration: none;
display: block;
}

.pm-card-title:hover { color: var(--pm-accent); }

.pm-card-meta {
font-family: Manrope, sans-serif;
font-size: 0.7rem;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--pm-muted);
margin: 0.3rem 0 0;
}

.pm-card-line {
font-size: 0.92rem;
line-height: 1.55;
color: var(--pm-muted);
margin: 0.4rem 0 0;
}

.pm-topic-link {
margin-top: 2rem;
font-family: Manrope, sans-serif;
font-weight: 700;
}

.pm-topic-link a {
color: var(--pm-accent);
text-decoration: none;
}

.pm-topic-link a:hover { text-decoration: underline; }

/* ===== ROOMS ===== */

.pm-room {
max-width: 68ch;
margin: 0 auto;
}

.pm-room .pm-related-group { margin-bottom: 3.5rem; }
/* ---------- Song single ---------- */

.pm-song-wrap {
	max-width: 780px;
	margin: 0 auto;
	padding: 3rem 1.5rem 5rem;
}

.pm-song-header {
	margin: 2rem 0 1.5rem;
}

.pm-song-title {
	margin: 0 0 .5rem;
}

.pm-song-meta {
	color: var(--pm-muted);
	font-size: .95rem;
	margin: 0;
}

.pm-song-summary {
	margin: 0 0 2rem;
	font-size: 1.05rem;
	line-height: 1.7;
}

.pm-song-links {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin: 0 0 2.5rem;
}

.pm-song-links .pm-btn {
	display: inline-block;
	padding: .6rem 1.1rem;
	border: 1px solid var(--pm-border);
	background: var(--pm-surface);
	color: var(--pm-text);
	text-decoration: none;
	font-size: .9rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.pm-song-links .pm-btn:hover {
	border-color: var(--pm-accent);
	color: var(--pm-accent);
}

.pm-lyrics-toggle {
	display: inline-block;
	padding: .6rem 1.1rem;
	border: 1px solid var(--pm-border);
	background: transparent;
	color: var(--pm-accent);
	font-family: inherit;
	font-size: .9rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
}

.pm-lyrics-toggle:hover {
	border-color: var(--pm-accent);
}

.pm-lyrics {
	display: none;
	margin-top: 1.5rem;
	padding: 1.5rem;
	background: var(--pm-surface);
	border: 1px solid var(--pm-border);
	white-space: pre-wrap;
	line-height: 1.8;
}

.pm-lyrics-block.is-open .pm-lyrics {
	display: block;
}

.pm-song-topics {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--pm-border);
	font-size: .9rem;
}

.pm-topics-label {
	color: var(--pm-muted);
	margin-right: .5rem;
}

.pm-topic-tag {
	display: inline-block;
	margin-right: .5rem;
	color: var(--pm-accent);
	text-decoration: none;
}

.pm-topic-tag:hover {
	text-decoration: underline;
}

/* ---------- Classic template pages (single-song.php) ---------- */

body.single-song {
	background-color: var(--pm-bg) !important;
	color: var(--pm-text) !important;
	font-family: "Source Serif 4", Georgia, serif !important;
}

body.single-song .wp-block-site-logo img {
	max-width: 320px;
	height: auto;
}

body.single-song h1,
body.single-song h2,
body.single-song h3 {
	font-family: "Manrope", system-ui, sans-serif !important;
	color: var(--pm-text) !important;
}

body.single-song a {
	color: var(--pm-accent);
}

body.single-song .wp-block-navigation a {
	color: var(--pm-text) !important;
	text-decoration: none;
}

/* ---------- Song single ---------- */

.single-song .wp-block-post-title,
.single-song .wp-block-post-content,
.single-song .pm-song-cover,
.single-song .pm-song-meta,
.single-song .pm-lyrics-block,
.single-song .pm-song-topics {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
}

.single-song .wp-block-post-title {
	padding-top: 3rem;
}

.single-song .pm-song-cover {
	margin-top: 2rem;
	margin-bottom: 2rem;
}

.single-song .wp-block-post-content {
	padding-bottom: 4rem;
}

/* ---------- Song single layout ---------- */

.single-song .wp-block-post-title,
.single-song .pm-song-cover,
.single-song .pm-song-meta,
.single-song .pm-lyrics-block,
.single-song .pm-song-topics,
.single-song .wp-block-post-content {
	max-width: 780px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	box-sizing: border-box;
}

.single-song .wp-block-post-title {
	padding-top: 3rem;
	font-size: 2.5rem !important;
}

.single-song .pm-song-cover {
	margin-top: 2rem !important;
	margin-bottom: 2rem !important;
}

.single-song .pm-song-cover img {
	width: 100%;
	height: auto;
	display: block;
	border: 1px solid var(--pm-border);
}

.single-song .pm-song-meta {
	margin-bottom: 1.5rem !important;
}

.single-song .wp-block-post-content {
	padding-bottom: 4rem;
}
.single-song .wp-block-post-content > p {
	font-size: 1.5rem;
	line-height: 1.65;
}

/* ---------- Topic filter ---------- */

.pm-filter {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin: 2.5rem 0 3.5rem;
}

.pm-filter-label {
	font-family: Manrope, sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pm-muted);
	margin: 0;
}

#pm-topic-select {
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--pm-surface);
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239A9A9A' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	border: 1px solid var(--pm-border);
	color: var(--pm-text);
	font-family: Manrope, sans-serif;
	font-size: 0.9rem;
	padding: 0.7rem 2.75rem 0.7rem 1rem;
	cursor: pointer;
	border-radius: 0;
}

#pm-topic-select:hover,
#pm-topic-select:focus {
	border-color: var(--pm-accent);
	outline: none;
}

#pm-topic-select option {
	background-color: var(--pm-surface);
	color: var(--pm-text);
}

/* ---------- Release tracklist ---------- */

.tax-release .wp-block-post-template {
	counter-reset: pm-track;
	max-width: 780px;
	margin: 0 auto;
	padding: 0 1.5rem;
	list-style: none;
}

.tax-release .wp-block-post-template > li {
	counter-increment: pm-track;
	border-bottom: 1px solid var(--pm-border);
	padding: 1.25rem 0;
}

.tax-release .wp-block-post-template > li::before {
	content: counter(pm-track, decimal-leading-zero);
	color: var(--pm-muted);
	font-family: Manrope, sans-serif;
	font-size: 0.85rem;
	margin-right: 1rem;
}

.tax-release .wp-block-post-title {
	display: inline;
	font-size: 1.15rem !important;
	margin: 0 !important;
}

.tax-release .wp-block-post-title a {
	color: var(--pm-text) !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}

.tax-release .wp-block-post-title a:hover {
	color: var(--pm-accent) !important;
	text-decoration: underline !important;
}

/* ---------- Release archive ---------- */

.pm-release-header {
	max-width: 780px;
	margin: 0 auto;
	padding: 3rem 1.5rem 0;
}

.pm-release-cover img {
	width: 100%;
	height: auto;
	display: block;
	border: 1px solid var(--pm-border);
}

.pm-release-date {
	color: var(--pm-muted);
	font-size: 0.9rem;
	margin: 1.5rem 0 1rem;
}

.pm-release-description p {
	font-size: 1.15rem;
	line-height: 1.7;
	margin: 0 0 1.5rem;
}

.pm-release-links {
	margin: 0 0 2rem;
}

.tax-release .wp-block-post-template > li {
	display: flex;
	align-items: baseline;
	gap: 1rem;
}

.tax-release .wp-block-post-template > li > * {
	margin: 0 !important;
	text-align: left !important;
}

.tax-release .wp-block-post-template > li .wp-block-columns,
.tax-release .wp-block-post-template > li .wp-block-column {
	margin: 0 !important;
	flex-basis: auto !important;
	text-align: left !important;
}

.tax-release .wp-block-post-template > li::before {
	margin-right: 0;
	flex-shrink: 0;
}

.tax-release .wp-block-post-template > li .wp-block-columns {
	display: block !important;
	width: auto !important;
}

.tax-release .wp-block-post-template > li .wp-block-column {
	display: block !important;
	width: auto !important;
	flex: none !important;
	padding: 0 !important;
}

.tax-release .wp-block-post-title {
	white-space: nowrap;
}

.tax-release .wp-block-post-template > li {
	justify-content: flex-start;
}

/* ---------- Release / singles grid ---------- */


.pm-release-card {
	display: block;
	text-decoration: none !important;
	color: var(--pm-text) !important;
}

.pm-release-card-cover {
	overflow: hidden;
	border: 1px solid var(--pm-border);
	transition: border-color 0.15s ease;
}

.pm-release-card-cover img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: transform 0.25s ease;
}

.pm-release-card:hover .pm-release-card-cover {
	border-color: var(--pm-accent);
}

.pm-release-card:hover .pm-release-card-cover img {
	transform: scale(1.03);
}

.pm-release-card-title {
	font-family: Manrope, sans-serif;
	font-size: 1rem !important;
	font-weight: 700;
	margin: 0.85rem 0 0.25rem !important;
	line-height: 1.3;
}

.pm-release-card:hover .pm-release-card-title {
	color: var(--pm-accent);
}

.pm-release-card-date,
.pm-release-card-count {
	font-family: Manrope, sans-serif;
	font-size: 0.8rem;
	color: var(--pm-muted);
	margin: 0 0 0.2rem !important;
	letter-spacing: 0.04em;
}

/* ---------- Topic page book list ---------- */

.tax-topic .pm-cards li,
.pm-room .pm-cards li {
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--pm-border);
}

.tax-topic .pm-cards li img,
.pm-room .pm-cards li img {
	width: 110px;
	flex-shrink: 0;
	height: auto;
	display: block;
	border: 1px solid var(--pm-border);
}

.tax-topic .pm-cards li > div,
.pm-room .pm-cards li > div {
	flex: 1;
	min-width: 0;
}

/* Topic page — book rows: cover left, summary right */
.pm-asset-list.pm-list-books {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

.pm-asset-list.pm-list-books li.pm-asset {
	display: flex;
	flex-direction: row;
	gap: 1.5rem;
	align-items: flex-start;
}

.pm-asset-list.pm-list-books a.pm-book-thumb {
	flex: 0 0 150px;
	max-width: 150px;
	display: block;
	line-height: 0;
}

.pm-asset-list.pm-list-books a.pm-book-thumb img,
.pm-asset-list.pm-list-books a.pm-book-thumb img.pm-thumb {
	width: 150px;
	max-width: 150px;
	height: auto;
	display: block;
	border: 1px solid var(--pm-border);
}

.pm-asset-list.pm-list-books .pm-book-body {
	flex: 1 1 auto;
	min-width: 0;
}

.pm-asset-list.pm-list-books .pm-book-body .pm-asset-link {
	display: block;
}

.pm-asset-list.pm-list-books .pm-asset-meta {
	margin-top: 0.5rem;
}

@media (max-width: 600px) {
	.pm-asset-list.pm-list-books li.pm-asset { gap: 1rem; }
	.pm-asset-list.pm-list-books a.pm-book-thumb { flex: 0 0 80px; max-width: 80px; }
	.pm-asset-list.pm-list-books a.pm-book-thumb img,
	.pm-asset-list.pm-list-books a.pm-book-thumb img.pm-thumb { width: 80px; max-width: 80px; }
}

.pm-asset-list.pm-list-books .pm-book-body p:empty { display: none; }

.pm-asset-list.pm-list-books .pm-book-body p:empty { display: none; }

.pm-group > .pm-group-title,
.pm-related-group > .pm-group-title {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
}

.pm-related-group {
	margin-bottom: 3rem;
}

.pm-empty {
	text-align: center;
	margin-top: 0.75rem !important;
	margin-bottom: 4rem !important;
}

/* Topic page — song rows: cover left, title right */
.pm-asset-list.pm-list-songs {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

.pm-asset-list.pm-list-songs li.pm-asset {
	display: flex;
	flex-direction: row;
	gap: 1.5rem;
	align-items: center;
}

.pm-asset-list.pm-list-songs a.pm-song-thumb {
	flex: 0 0 150px !important;
	max-width: 150px !important;
	display: block;
	line-height: 0;
}

.pm-asset-list.pm-list-songs a.pm-song-thumb img,
.pm-asset-list.pm-list-songs a.pm-song-thumb img.pm-thumb {
	width: 150px !important;
	max-width: 150px !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	border: 1px solid var(--pm-border);
}

.pm-asset-list.pm-list-songs .pm-song-body {
	flex: 1 1 auto;
	min-width: 0;
}

@media (max-width: 600px) {
	.pm-asset-list.pm-list-songs li.pm-asset { gap: 1rem; }
	.pm-asset-list.pm-list-songs a.pm-song-thumb { flex: 0 0 80px !important; max-width: 80px !important; }
	.pm-asset-list.pm-list-songs a.pm-song-thumb img,
	.pm-asset-list.pm-list-songs a.pm-song-thumb img.pm-thumb { width: 80px !important; max-width: 80px !important; }
}

/* Song page — Spotify button */
.pm-song-links {
	margin: 1.5rem 0 !important;
	padding: 0 !important;
	text-align: left;
}

.pm-song-links .pm-btn {
	position: static !important;
	display: inline-block !important;
	background-color: var(--pm-surface) !important;
	color: var(--pm-text) !important;
	border: 1px solid var(--pm-accent) !important;
	padding: 0.75rem 1.5rem !important;
	text-decoration: none !important;
	letter-spacing: 0.08em;
	font-weight: 600;
}

.pm-song-links .pm-btn:hover {
	background-color: var(--pm-accent) !important;
	color: var(--pm-bg) !important;
}

.pm-song-links {
	margin: 1.5rem auto !important;
	padding: 0 !important;
	max-width: 68ch !important;
	width: 100% !important;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-start;
}

/* Discography — project cards */
.pm-project-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
	margin: 3rem 0;
}

.pm-project-card {
	display: block;
	padding: 2rem;
	border: 1px solid var(--pm-border);
	background-color: var(--pm-surface);
	text-decoration: none !important;
	text-align: center;
	transition: border-color 0.2s ease;
}

.pm-project-card:hover {
	border-color: var(--pm-accent);
}

.pm-project-card.is-empty {
	opacity: 0.55;
}

.pm-project-logo {
	margin-bottom: 1.5rem;
	min-height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pm-project-logo img {
	max-width: 100%;
	max-height: 120px;
	width: auto;
	height: auto;
	display: block;
}

.pm-project-name {
	margin: 0 0 0.4rem !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: 1.3rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pm-text);
}

.pm-project-genre {
	margin: 0 0 0.75rem !important;
	font-size: 0.9rem;
	color: var(--pm-muted);
}

.pm-project-counts {
	margin: 0 0 1.25rem !important;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	color: var(--pm-muted);
}

.pm-project-cta {
	display: inline-block;
	padding: 0.6rem 1.25rem;
	border: 1px solid var(--pm-accent);
	color: var(--pm-text);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.pm-project-card:hover .pm-project-cta {
	background-color: var(--pm-accent);
	color: var(--pm-bg);
}

.pm-project-cta.is-muted {
	border-color: var(--pm-border);
	color: var(--pm-muted);
}

.pm-project-card:hover .pm-project-cta.is-muted {
	background-color: transparent;
	color: var(--pm-muted);
}

@media (max-width: 700px) {
	.pm-project-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* Discography — project cards */
.pm-project-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2rem;
	margin: 3rem 0;
}

.pm-project-card {
	display: block;
	padding: 2rem;
	border: 1px solid var(--pm-border);
	background-color: var(--pm-surface);
	text-decoration: none !important;
	text-align: center;
	transition: border-color 0.2s ease;
}

.pm-project-card:hover {
	border-color: var(--pm-accent);
}

.pm-project-card.is-empty {
	opacity: 0.55;
}

.pm-project-logo {
	margin-bottom: 1.5rem;
	min-height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pm-project-logo img {
	max-width: 100%;
	max-height: 120px;
	width: auto;
	height: auto;
	display: block;
}

.pm-project-name {
	margin: 0 0 0.4rem !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: 1.3rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--pm-text);
}

.pm-project-genre {
	margin: 0 0 0.75rem !important;
	font-size: 0.9rem;
	color: var(--pm-muted);
}

.pm-project-counts {
	margin: 0 0 1.25rem !important;
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	color: var(--pm-muted);
}

.pm-project-cta {
	display: inline-block;
	padding: 0.6rem 1.25rem;
	border: 1px solid var(--pm-accent);
	color: var(--pm-text);
	font-size: 0.8rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.pm-project-card:hover .pm-project-cta {
	background-color: var(--pm-accent);
	color: var(--pm-bg);
}

.pm-project-cta.is-muted {
	border-color: var(--pm-border);
	color: var(--pm-muted);
}

.pm-project-card:hover .pm-project-cta.is-muted {
	background-color: transparent;
	color: var(--pm-muted);
}

@media (max-width: 700px) {
	.pm-project-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* Related asset cards — grid */
.pm-cards-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.75rem;
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

.pm-cards-grid .pm-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pm-cards-grid .pm-card-thumb {
	display: block;
	line-height: 0;
	margin-bottom: 0.75rem;
}

.pm-cards-grid .pm-card-thumb img {
	width: 100%;
	height: auto;
	display: block;
	border: 1px solid var(--pm-border);
}

.pm-cards-grid .pm-card-title {
	display: block;
	font-size: 1rem !important;
	line-height: 1.35 !important;
	text-wrap: balance;
	margin-bottom: 0.4rem;
}

.pm-cards-grid .pm-card-meta {
	font-size: 0.72rem !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--pm-muted);
	margin: 0 0 0.4rem !important;
}

.pm-cards-grid .pm-card-line {
	font-size: 0.85rem !important;
	line-height: 1.5 !important;
	color: var(--pm-muted);
	margin: 0 !important;
}

@media (max-width: 900px) {
	.pm-cards-grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
}

@media (max-width: 480px) {
	.pm-cards-grid { grid-template-columns: 1fr; }
}

/* Release tracklist */
.pm-tracklist {
	max-width: 68ch;
	margin: 2.5rem auto !important;
	padding-left: 0;
	list-style: none;
	counter-reset: pm-track;
}

.pm-tracklist .pm-track {
	counter-increment: pm-track;
	display: flex;
	align-items: baseline;
	gap: 1rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--pm-border);
}

.pm-tracklist .pm-track::before {
	content: counter(pm-track, decimal-leading-zero);
	flex: 0 0 2.5rem;
	color: var(--pm-muted);
	font-size: 0.85rem;
	letter-spacing: 0.08em;
}

.pm-tracklist .pm-track-link {
	text-decoration: none !important;
	color: var(--pm-text);
}

.pm-tracklist .pm-track:hover .pm-track-link {
	color: var(--pm-accent);
}

/* Source material — editorially chosen, sits above related groups */
.pm-source-group {
	margin-bottom: 3rem;
}

.pm-source-group .pm-cards-grid {
	grid-template-columns: repeat(auto-fit, minmax(0, 220px));
	justify-content: start;
}

.pm-source-group .pm-card-title {
	font-size: 1.05rem !important;
}

.pm-related > .pm-source-group:first-child {
	margin-top: 0;
}

.pm-source-group > .pm-group-title {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
}

.pm-release-grid {
	width: 100%;
	max-width: 1100px;
	margin: 1.5rem auto 2.5rem !important;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 2rem 1.5rem;
	align-items: start;
}

.pm-release-grid > p,
.pm-release-grid > br {
	display: none;
}
.pm-release-grid > * {
	min-width: 0;
}

.pm-release-card {
	min-width: 0;
}

.pm-release-card {
	display: block;
	text-decoration: none !important;
}

.pm-release-card-cover {
	line-height: 0;
	margin-bottom: 0.75rem;
}

.pm-release-card-cover img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	border: 1px solid var(--pm-border);
}

.pm-release-card-title {
	margin: 0 0 0.25rem !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: 1rem !important;
	line-height: 1.3 !important;
	color: var(--pm-text);
}

.pm-release-card-date,
.pm-release-card-count {
	margin: 0 !important;
	font-size: 0.8rem !important;
	color: var(--pm-muted);
}

.pm-release-card:hover .pm-release-card-title {
	color: var(--pm-accent);
}

@media (max-width: 700px) {
	.pm-release-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem 1rem; }
}

.pm-filter-search {
	background: #111;
	color: #E8E8E8;
	border: 1px solid var(--pm-border);
	padding: 0.75rem 1rem;
	font-size: 1rem;
	font-family: inherit;
	min-width: 260px;
	margin-left: 0.75rem;
}

.pm-filter-search::placeholder {
	color: var(--pm-muted);
}

.pm-filter-search:focus {
	outline: none;
	border-color: var(--pm-accent);
}

.pm-filter {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}

.pm-filter-search {
	margin-left: 0;
}
.pm-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin: 3rem 0 4rem;
}

.pm-page {
	display: inline-block;
	padding: 0.6rem 1rem;
	border: 1px solid var(--pm-border);
	color: var(--pm-muted);
	text-decoration: none;
	font-size: 0.9rem;
}

.pm-page:hover {
	color: #E8E8E8;
	border-color: var(--pm-accent);
}

.pm-page-current {
	color: #0A0A0A;
	background: #C0C0C0;
	border-color: #C0C0C0;
}
.single-book .wp-block-post-title {
	max-width: 900px;
	margin: 3rem auto 2rem;
	padding: 0 1.5rem;
	text-align: center;
	font-size: 2.4rem;
	line-height: 1.2;
}

.single-book .wp-block-post-featured-image {
	max-width: 420px;
	margin: 0 auto 2.5rem;
}

.single-book .wp-block-post-featured-image img {
	width: 100%;
	height: auto;
	display: block;
}

.single-brief .wp-block-post-title {
	max-width: 900px;
	margin: 3rem auto 2rem;
	padding: 0 1.5rem;
	text-align: center;
	font-size: 2.4rem;
	line-height: 1.3;
}

.single-brief .wp-block-post-content {
	max-width: 780px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

.single-brief .wp-block-post-content p {
	font-size: 1.15rem;
	line-height: 1.75;
	margin: 0 0 1.5rem;
}

.single-brief .wp-block-post-content h2 {
	font-size: 1.6rem;
	margin: 3rem 0 1rem;
}

.single-brief .wp-block-post-content blockquote {
	border-left: 3px solid var(--pm-accent);
	padding-left: 1.5rem;
	margin: 2rem 0;
	font-size: 1.25rem;
}

.single-brief .wp-block-post-content hr {
	border: none;
	border-top: 1px solid var(--pm-border);
	margin: 3rem 0;
}

.pm-group-title {
	margin-top: 4rem !important;
	margin-bottom: 1.5rem !important;
}

.pm-lead-brief {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.pm-lead-brief .pm-lead-title {
	margin-top: 0 !important;
	margin-bottom: 1rem !important;
}

.tax-topic .pm-group:first-of-type .pm-group-title {
	margin-top: 1.5rem !important;
}

.tax-topic .wp-block-post-content,
.tax-topic .pm-group:first-of-type {
	margin-top: 5rem !important;
}

.pm-typeswitch {
	display: flex;
	gap: 0.5rem;
	justify-content: center;
	margin: 0 0 3rem;
}

.pm-type {
	padding: 0.6rem 1.4rem;
	border: 1px solid var(--pm-border);
	color: var(--pm-muted);
	text-decoration: none;
	font-size: 0.9rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.pm-type:hover {
	color: #E8E8E8;
	border-color: var(--pm-accent);
}

.pm-type-current {
	color: #0A0A0A;
	background: #C0C0C0;
	border-color: #C0C0C0;
}

.pm-book-cover-single {
	max-width: 420px;
	margin: 0 auto 2.5rem;
}

.pm-book-cover-single img {
	width: 100%;
	height: auto;
	display: block;
}

.single-book .wp-block-post-featured-image {
	display: none;
}

.pm-source-subhead {
	font-size: 1rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pm-muted);
	margin: 2.5rem 0 1rem;
}

/* Header nav fit — keep on one line */
.wp-block-navigation {
	font-size: 0.95rem !important;
}
.wp-block-navigation .wp-block-navigation__container {
	gap: 1.1rem !important;
}

/* Founding Record — override global h2 */
.wp-site-blocks .pm-founding h2.pm-founding-head {
	font-size: 1rem !important;
	font-weight: 600 !important;
	margin-top: 0 !important;
	margin-bottom: 0.75rem !important;
	padding-top: 0 !important;
	border-top: none !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	line-height: 1.3 !important;
}

/* Founding Record */
.pm-founding {
	margin-top: 2rem;
}
.pm-founding-meta {
	font-size: 0.85rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.65;
	margin-bottom: 2.5rem;
}
.pm-founding-section {
	margin-bottom: 2.75rem;
}
.pm-founding-head {
	font-size: 1rem !important;
	line-height: 1.3 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
	opacity: 0.6;
	margin: 0 0 0.75rem 0 !important;
	font-weight: 600 !important;
}
.pm-founding-text {
	border-left: 2px solid currentColor;
	padding-left: 1.25rem;
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.7;
}
.pm-founding-basis {
	font-size: 0.85rem !important;
	opacity: 0.6;
	font-style: italic;
	margin-top: 0.75rem;
}
.pm-founding-archive {
	border-top: 1px solid rgba(255,255,255,0.15);
	padding-top: 1.75rem;
}


/* Acts Record — override global h2 */
.wp-site-blocks .pm-act h2.pm-act-head {
	font-size: 1rem !important;
	font-weight: 600 !important;
	margin-top: 0 !important;
	margin-bottom: 0.75rem !important;
	padding-top: 0 !important;
	border-top: none !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	line-height: 1.3 !important;
}

/* Acts Record */
.pm-act {
	margin-top: 2rem;
}
.pm-act-meta {
	font-size: 0.85rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.65;
	margin-bottom: 2.5rem;
}
.pm-act-section {
	margin-bottom: 2.75rem;
}
.pm-act-head {
	font-size: 1rem !important;
	line-height: 1.3 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase;
	opacity: 0.6;
	margin: 0 0 0.75rem 0 !important;
	font-weight: 600 !important;
}
.pm-act-text {
	border-left: 2px solid currentColor;
	padding-left: 1.25rem;
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.7;
}
.pm-act-shorttitle {
	font-size: 1.15rem;
	margin: 0 0 1rem 0;
}
.pm-act-section-cite {
	font-size: 0.85rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.6;
	margin: 0 0 0.75rem 0;
}
.pm-act-sunset {
	font-size: 0.85rem !important;
	opacity: 0.6;
	font-style: italic;
	margin: 0 0 0.75rem 0;
}
.pm-act-touches {
	margin: 0;
	padding-left: 1.25rem;
}
.pm-act-archive {
	border-top: 1px solid rgba(255,255,255,0.15);
	padding-top: 1.75rem;
}

.pm-act-basis {
	font-size: 0.85rem !important;
	opacity: 0.6;
	font-style: italic;
	margin-top: 0.75rem;
}
.pm-act-verified {
	font-size: 0.85rem !important;
	opacity: 0.5;
	margin-top: 0.75rem;
}