/*
 * single-composition.css
 * Composition Single — uses theme.json CSS custom properties
 * from the Riverbank (or any ti-* palette) theme.
 * ------------------------------------------------------------------ */

/* --- Title banner: break out of is-layout-constrained wrapper --- */
.jr-composition-main .wp-block-template-part {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
}

/* The Riverbank theme adds padding-left/right to .wp-block-group.has-background
   and .alignfull, then negates with .wp-site-blocks .alignfull margins.
   Inside our nested template-part, that cycle would push the group wider
   than the viewport. Zero the padding here since our breakout handles it. */
.jr-composition-main .wp-block-template-part .wp-block-group.alignfull {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* --- Title & meta badges --- */
.jr-title-meta {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 1rem;
	margin-bottom: 0;
}

.jr-meta-badge {
	display: inline-block;
	padding: 6px 18px;
	font-size: var(--wp--preset--font-size--small, 16px);
	font-weight: 600;
	background: var(--wp--preset--color--ti-bg-inv, #1F2125);
	color: var(--wp--preset--color--ti-fg-alt, #FFFFFF);
	border-radius: 999px;
}

/* --- Media buttons --- */
.composition-media-banner {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 32px;
	padding-bottom: 32px;
}

.jr-media-buttons {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
}

/* --- Two-column layout --- */
.wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
}
.wp-block-column {
	flex-grow: 1;
	min-width: 0;
	word-break: normal;
	overflow-wrap: normal;
}
.composition-adaptive-columns {
	gap: 12px;
	flex-wrap: nowrap;
}

/* --- Featured image --- */
.composition-featured-image {
	margin: 0 0 12px 0;
}

.composition-featured-image-img {
	width: 100%;
	height: auto;
}

/* --- Taxonomy term blocks (left column) --- */
.jr-term-block {
	margin-bottom: 12px;
}

/* Style <a> tags inside wp:post-terms blocks as badges.
   The Riverbank theme only styles taxonomy-category, so we need
   explicit rules for our custom taxonomies. */
.jr-term-block a {
	display: inline-block;
	padding: 4px 14px;
	font-size: var(--wp--preset--font-size--small, 16px);
	background: var(--wp--preset--color--ti-bg-inv, #1F2125);
	color: var(--wp--preset--color--ti-fg-alt, #FFFFFF);
	border-radius: 999px;
	transition: opacity 0.2s;
	text-decoration: none;
}

.jr-term-block a:hover {
	opacity: 0.8;
}

/* Hide the separator that wp:post-terms adds between terms,
   since we use badge styling with inline-block spacing. */
.jr-term-block .wp-block-post-terms__separator {
	display: none;
}

/* --- Catalog note (left column) --- */
.jr-catalog-note {
	margin-top: 24px;
	padding: 16px;
	background: var(--wp--preset--color--ti-bg-alt, rgba(245,245,242,0.7));
	border-left: 3px solid var(--wp--preset--color--ti-accent, #1D1F25);
	font-style: italic;
	font-size: var(--wp--preset--font-size--small, 16px);
	opacity: 0.85;
}

/* --- Metadata list (right column) --- */
.jr-metadata-list {
	width: 100%;
}

.jr-field {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 16px;
	padding: 10px 12px;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--ti-fg, #1F2127) 15%, transparent);
}

.jr-field:last-child {
	border-bottom: none;
}

.jr-field-label {
	font-weight: 600;
	opacity: 0.8;
	font-size: var(--wp--preset--font-size--normal, 16px);
	vertical-align: top;
	word-break: normal;
}

.jr-field-value {
	font-size: var(--wp--preset--font-size--normal, 16px);
	word-break: break-word;
}

/* --- Program notes --- */
.jr-program-notes {
	margin-top: 32px;
	padding: 24px;
	background: var(--wp--preset--color--ti-bg-alt, rgba(245,245,242,0.7));
	border-left: 4px solid var(--wp--preset--color--ti-accent, #1D1F25);
}

.jr-program-notes h2 {
	margin-top: 0;
	font-size: var(--wp--preset--font-size--medium, 16px);
}

/* --- Purchase section --- */
.composition-purchase {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 40px;
	padding-bottom: 48px;
	border-top-width: 2px;
	border-top-style: solid;
	border-color: color-mix(in srgb, var(--wp--preset--color--ti-fg, #1F2127) 15%, transparent);
}

.composition-purchase h2 {
	font-size: var(--wp--preset--font-size--large, 32px);
	margin-bottom: 24px;
}

.jr-purchase-buttons {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
}

.jr-btn-price {
	opacity: 0.85;
}

/* --- Responsive: stack columns --- */
@media screen and (max-width: 1140px) {
	.composition-adaptive-columns {
		flex-direction: column !important;
	}
/*
.composition-left,
	.composition-right {
		flex-basis: 100% !important;
	}*/
    .composition-purchase {
        padding-top: 32px;
        padding-bottom: 32px;
	}
	.jr-field {
		padding-top: 32px;
		padding-bottom: 32px;
	}
	
}	
@media screen and (max-width: 768px) {
    .jr-field {
        grid-template-columns: 1fr;
        gap: 2px;
    }
        .jr-program-notes {
        padding: 16px;
        font-size: clamp(12px, 4.5vw, 18px);
    }
}

/* --- Print --- */
@media print {
	.composition-media-banner,
	.composition-purchase {
		display: none;
	}
}
