/* Publikationen front-end — mobile-first, breakpoints 600 / 768 / 992 px.
   Bricks global classes pub-* carry the names; the rules live here (versioned, plain CSS). */

/* Grid of cards (list, related, home) */
.pub-grid.brxe-block {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch; /* Bricks blocks default to flex-start */
	width: 100%;
}
.pub-grid > .brxe-block {
	display: flex;
	min-width: 0;
	width: 100%;
}
.pub-grid > .brxe-block > .pub-card.brxe-block { flex: 1 1 auto; } /* equal card heights per row */
@media (min-width: 600px) {
	.pub-grid.brxe-block { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
	.pub-grid.brxe-block { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Card */
.pub-card.brxe-block {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	background: #fff;
	border: 1px solid #ccc;
	border-bottom-right-radius: 30px;
	box-shadow: 2px 2px 8px 0 var(--headings-l-3);
	overflow: hidden;
	transition: box-shadow .3s ease-in-out, border-color .3s ease-in-out;
}
.pub-card.brxe-block:hover,
.pub-card.brxe-block:focus-within {
	box-shadow: 2px 2px 8px 0 var(--highlight-l-3);
	border-color: var(--highlight-l-3);
}
.pub-card .brxe-shortcode { width: 100%; }
.pub-card .op-cover {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	background: #f6f4f1;
}
.pub-card-body.brxe-block {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	flex: 1;
	width: 100%;
	padding: 16px 18px 20px;
}
.pub-card-body > .brxe-shortcode:last-child { margin-top: auto; padding-top: 8px; }
.pub-card-body > .brxe-shortcode:last-child:empty { display: none; }

.pub-card-title {
	margin: 0;
	font-size: 20px;
	line-height: 1.3;
	overflow-wrap: anywhere;
	hyphens: auto;
}
.pub-card-title a { color: var(--headings); text-decoration: none; }
.pub-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pub-card-title a:focus-visible { outline: none; }
.pub-card.brxe-block:has(.pub-card-title a:focus-visible) { outline: 2px solid var(--highlight); outline-offset: 2px; }

.pub-card-meta { font-size: 14px; line-height: 1.4; color: var(--headings-l-2); }
.pub-card-meta:empty { display: none; }

.pub-card .op-pdf-link {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 12px;
	border: 1px solid var(--primary);
	border-radius: 20px;
	font-size: 13px;
	line-height: 1.3;
	color: var(--primary);
	text-decoration: none;
	background: #fff;
}
.pub-card .op-pdf-link:hover,
.pub-card .op-pdf-link:focus-visible { border-color: var(--highlight); color: var(--highlight); }

/* Filter bar */
.pub-filter-bar.brxe-block {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	width: 100%;
	margin: 0 0 28px;
}
.pub-filter-bar > * { min-width: 0; width: 100%; }
.pub-filter-bar input[type="search"],
.pub-filter-bar input[type="text"],
.pub-filter-bar select {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 15px;
	background: #fff;
}
.pub-filter-bar ul { margin: 0; padding: 0; list-style: none; }
.pub-filter-bar label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; white-space: nowrap; }
@media (min-width: 768px) {
	.pub-filter-bar.brxe-block { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
}

/* Detail page */
.pub-detail.brxe-block {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	width: 100%;
	margin-top: 12px;
}
.pub-detail > .brxe-block { min-width: 0; }
.pub-detail .op-cover {
	display: block;
	width: 100%;
	max-width: 260px;
	height: auto;
	border: 1px solid #ccc;
	border-bottom-right-radius: 30px;
	box-shadow: 2px 2px 8px 0 var(--headings-l-3);
}
.pub-detail h1 {
	margin: 0 0 12px;
	font-size: clamp(26px, 3.2vw, 40px);
	line-height: 1.2;
	overflow-wrap: anywhere;
	hyphens: auto;
}
.pub-detail .pub-detail-authors { font-weight: 600; color: var(--primary); }
.pub-detail .pub-detail-meta { font-size: 15px; color: var(--headings-l-2); }
.pub-detail .pub-detail-meta:empty { display: none; }
@media (min-width: 768px) {
	.pub-detail.brxe-block { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); align-items: start; }
	.pub-detail .op-cover { max-width: 100%; }
}
.op-primary { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0 0; }
.op-pdf-info { font-size: 14px; color: var(--headings-l-2); }

/* Citation box */
.pub-cite {
	width: 100%;
	margin-top: 36px;
	background: #fff;
	border: 1px solid #ccc;
	border-bottom-right-radius: 30px;
	padding: 20px 24px;
}
.pub-cite .op-cite-title { margin: 0 0 8px; font-size: 18px; }
.pub-cite .op-cite-text { margin: 0; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.pub-cite .op-cite-links { margin: 10px 0 0; font-size: 14px; }

.op-related-title { margin: 48px 0 20px; }
