.tsrc {
	box-sizing: border-box;
	margin: 2rem 0;
	padding: 1.1rem;
	background: var(--tsrc-background, #f7f8f9);
	border: 1px solid var(--tsrc-border, #d9e4e4);
	border-radius: 8px;
	color: inherit;
	font: inherit;
}

.tsrc *,
.tsrc *::before,
.tsrc *::after { box-sizing: border-box; }

.tsrc__heading {
	margin: 0 0 1rem;
	padding: 0;
	font-size: 1.15em;
	line-height: 1.3;
	color: inherit;
}

.tsrc__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--tsrc-gap, 14px);
}

.tsrc--reading .tsrc__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.tsrc--reading .tsrc__grid--count-1 { width: min(100%, 400px); margin-inline: auto; }
.tsrc--reading .tsrc__link { display: flex; flex-direction: column; }
.tsrc--reading .tsrc__title { min-height: calc(3 * 1.4em + 1.5rem); text-align: left; }
.tsrc--reading .tsrc__title-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; }
.tsrc--sidebar .tsrc__grid { grid-template-columns: minmax(0, 1fr); }
.tsrc__card { min-width: 0; margin: 0; background: #fff; border: 1px solid var(--tsrc-border, #d9e4e4); border-radius: 6px; overflow: hidden; }
.tsrc__card--no-image { min-height: 120px; }
.tsrc--reading .tsrc__card--no-image .tsrc__link { justify-content: center; }
.tsrc__link { display: block; height: 100%; color: inherit; text-decoration: none; }
.tsrc__link:hover .tsrc__title { color: var(--tsrc-accent, #275b79); text-decoration: underline; }
.tsrc__link:focus-visible,
.tsrc__button:focus-visible { outline: 3px solid var(--tsrc-accent, #275b79); outline-offset: 2px; }
.tsrc__image { display: block; width: 100%; height: auto; aspect-ratio: var(--tsrc-ratio, 3 / 2); object-fit: cover; }
.tsrc__title { display: block; padding: .75rem .85rem; font-weight: 600; font-size: .94em; line-height: 1.4; overflow-wrap: anywhere; }
.tsrc--sidebar .tsrc__card { display: block; }
.tsrc--sidebar .tsrc__image { max-height: 145px; }
.tsrc--owner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.tsrc__button { display: inline-block; padding: .6rem .9rem; border-radius: 4px; background: var(--tsrc-button-bg, #275b79); color: var(--tsrc-button-color, #fff) !important; text-decoration: none; font-weight: 600; line-height: 1.3; }
.tsrc__button:hover { filter: brightness(.9); }

.tsrc--products,
.tsrc--latest { margin: 1rem 0; padding: .9rem; }
.tsrc__product-list { display: grid; gap: .7rem; }
.tsrc__product { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: .7rem; min-height: 76px; color: inherit; text-decoration: none; font-weight: 600; line-height: 1.35; }
.tsrc__product-image { display: block; width: 96px; height: 72px; object-fit: cover; border-radius: 4px; }
.tsrc__latest-list { list-style: none; margin: 0; padding: 0; }
.tsrc__latest-list li + li { margin-top: .7rem; }
.tsrc__latest-link { display: grid; grid-template-columns: 80px minmax(0, 1fr); align-items: center; gap: .7rem; min-height: 64px; color: inherit; text-decoration: none; line-height: 1.35; }
.tsrc__latest-image { display: block; width: 80px; height: 64px; object-fit: cover; border-radius: 4px; }
.tsrc__latest-copy { min-width: 0; }
.tsrc__latest-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-weight: 600; overflow-wrap: anywhere; }
.tsrc__product:hover,
.tsrc__latest-link:hover { color: var(--tsrc-accent, #275b79); text-decoration: underline; }
.tsrc__product:focus-visible,
.tsrc__latest-link:focus-visible { outline: 3px solid var(--tsrc-accent, #275b79); outline-offset: 2px; }

@media (max-width: 768px) {
	.tsrc--sidebar { display: none !important; }
	.tsrc--reading .tsrc__card { display: grid; }
	.tsrc { margin: 1.5rem 0; padding: .85rem; }
	.tsrc--products,
	.tsrc--latest { margin: 1rem 0; }
}

@media (min-width: 601px) and (max-width: 900px) {
	.tsrc--event.tsrc--reading .tsrc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tsrc--event.tsrc--reading .tsrc__grid--count-1 { grid-template-columns: minmax(0, 1fr); }
	.tsrc--products,
	.tsrc--latest { padding: .7rem; }
	.tsrc__product { grid-template-columns: 64px minmax(0, 1fr); gap: .45rem; min-height: 56px; font-size: .84em; }
	.tsrc__product-image { width: 64px; height: 54px; }
	.tsrc__latest-link { grid-template-columns: 58px minmax(0, 1fr); gap: .45rem; min-height: 54px; font-size: .82em; }
	.tsrc__latest-image { width: 58px; height: 54px; }
	.tsrc__latest-list li + li { margin-top: .55rem; }
}

@media (max-width: 600px) {
	.tsrc--event.tsrc--reading .tsrc__grid { grid-template-columns: minmax(0, 1fr); }
}
