/* Author portfolio — public + compact card */

.ri-portfolio {
	max-width: none;
	width: 100%;
	margin: 0 0 2.5rem;
	color: #1a2a1a;
}

/* Portfolio page — full content width (override TT5 constrained layout) */
body.ri-portfolio-full main.has-global-padding,
body.ri-portfolio-full main {
	padding-left: clamp(1.5rem, 5vw, 3.5rem) !important;
	padding-right: clamp(1.5rem, 5vw, 3.5rem) !important;
	box-sizing: border-box !important;
	max-width: none !important;
	width: 100% !important;
}

body.ri-portfolio-full main .has-global-padding {
	padding-left: clamp(1.5rem, 5vw, 3.5rem) !important;
	padding-right: clamp(1.5rem, 5vw, 3.5rem) !important;
}

body.ri-portfolio-full main .is-layout-constrained,
body.ri-portfolio-full .wp-block-post-content,
body.ri-portfolio-full .entry-content,
body.ri-portfolio-full .wp-block-group {
	max-width: none !important;
	width: 100% !important;
}

body.ri-portfolio-full main .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
body.ri-portfolio-full main .is-layout-constrained > .alignwide {
	max-width: none !important;
	width: 100% !important;
}

body.ri-portfolio-full .ri-portfolio {
	padding-left: 0.25rem;
	box-sizing: border-box;
}

.ri-portfolio__back {
	margin: 0 0 0.85rem;
}

.ri-portfolio__back a {
	color: #073507;
	font-weight: 700;
	text-decoration: none;
	font-size: 0.95rem;
}

.ri-portfolio__back a:hover,
.ri-portfolio__back a:focus {
	text-decoration: underline;
}

.ri-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
}

.ri-portfolio--error {
	padding: 1rem;
	background: #fdecea;
	border-radius: 8px;
	color: #7f1d1d;
}

.ri-portfolio__eyebrow {
	margin: 0 0 0.25rem;
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #567;
}

.ri-portfolio__name {
	margin: 0 0 0.25rem;
	color: #073507;
	font-size: clamp(1.75rem, 4vw, 2.35rem);
	font-weight: 400;
	line-height: 1.15;
}

.ri-portfolio__id {
	margin: 0 0 1.25rem;
	color: #678;
	font-size: 0.9rem;
}

.ri-portfolio__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

.ri-portfolio__stats li {
	padding: 0.85rem 1rem;
	background: #f4f7f4;
	border: 1px solid #d7e0d7;
	border-radius: 8px;
}

.ri-portfolio__stat-label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.82rem;
	color: #567;
}

.ri-portfolio__stats strong {
	font-size: 1.35rem;
	color: #073507;
}

.ri-portfolio__section {
	margin: 0 0 2rem;
}

.ri-portfolio__h {
	margin: 0 0 0.75rem;
	color: #073507;
	font-size: 1.25rem;
	font-weight: 800;
}

.ri-portfolio__empty {
	margin: 0;
	color: #678;
}

.ri-portfolio__card a {
	display: block;
	text-decoration: none;
	color: inherit;
}

.ri-portfolio__card {
	position: relative;
}

.ri-portfolio__edit {
	position: absolute;
	top: 0.35rem;
	right: 2.2rem;
	z-index: 2;
	width: 1.65rem;
	height: 1.65rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(20, 40, 20, 0.78);
	color: #fff;
	font-size: 0.85rem;
	line-height: 1;
	cursor: pointer;
}

.ri-portfolio__edit:hover,
.ri-portfolio__edit:focus {
	background: #155328;
}

.ri-portfolio__remove {
	position: absolute;
	top: 0.35rem;
	right: 0.35rem;
	z-index: 2;
	width: 1.65rem;
	height: 1.65rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(20, 40, 20, 0.78);
	color: #fff;
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
}

.ri-portfolio__remove:hover,
.ri-portfolio__remove:focus {
	background: #8b1a1a;
}

.ri-portfolio-remove {
	width: min(28rem, calc(100vw - 2rem));
	padding: 0;
	border: 1px solid #c5d5c5;
	border-radius: 10px;
	background: #fff;
	color: #1a2a1a;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
}

.ri-portfolio-remove::backdrop {
	background: rgba(10, 20, 10, 0.45);
}

.ri-portfolio-remove__form {
	padding: 1.15rem 1.25rem 1.25rem;
}

.ri-portfolio-remove__title {
	margin: 0 0 0.65rem;
	color: #073507;
	font-size: 1.15rem;
}

.ri-portfolio-remove__warn {
	margin: 0 0 0.75rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: #3a4a3a;
}

.ri-portfolio-remove__work {
	margin: 0 0 1rem;
	font-size: 1rem;
	color: #073507;
}

.ri-portfolio-remove__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: flex-end;
	margin: 0;
}

.ri-portfolio-remove__cancel,
.ri-portfolio-remove__submit {
	padding: 0.5rem 0.9rem;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
}

.ri-portfolio-remove__cancel {
	border: 1px solid #c5d5c5;
	background: #fff;
	color: #234;
}

.ri-portfolio-remove__submit {
	border: 0;
	background: #8b1a1a;
	color: #fff;
}

.ri-portfolio-prices {
	width: min(32rem, calc(100vw - 2rem));
	max-height: min(90vh, 40rem);
	padding: 0;
	border: 1px solid #c5d5c5;
	border-radius: 10px;
	background: #fff;
	color: #1a2a1a;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
	overflow: auto;
}

.ri-portfolio-prices::backdrop {
	background: rgba(10, 20, 10, 0.45);
}

.ri-portfolio-prices__form {
	padding: 1.15rem 1.25rem 1.25rem;
}

.ri-portfolio-prices__title {
	margin: 0 0 0.5rem;
	color: #073507;
	font-size: 1.15rem;
}

.ri-portfolio-prices__work {
	margin: 0 0 0.5rem;
	color: #073507;
}

.ri-portfolio-prices__hint {
	margin: 0 0 0.85rem;
	font-size: 0.88rem;
	color: #456;
	line-height: 1.4;
}

.ri-portfolio-prices__rows {
	display: grid;
	gap: 0.65rem;
	margin: 0 0 1rem;
}

.ri-portfolio-prices__rows[hidden],
.ri-portfolio-prices__rows.ri-is-hidden {
	display: none !important;
}

.ri-portfolio-prices__row {
	display: grid;
	grid-template-columns: 1fr minmax(5.5rem, 7rem);
	gap: 0.5rem 0.75rem;
	align-items: center;
}

.ri-portfolio-prices__row label,
.ri-portfolio-prices__lic {
	font-size: 0.9rem;
	color: #234;
}

.ri-portfolio-prices__row--music {
	grid-template-columns: 1fr;
	padding: 0.55rem 0.65rem;
	border: 1px solid #d7e0d7;
	border-radius: 8px;
	background: #f7faf7;
}

.ri-portfolio-prices__row--music .ri-portfolio-prices__lic {
	font-weight: 600;
	color: #073507;
}

.ri-portfolio-prices__row--music label {
	display: grid;
	grid-template-columns: 5rem 1fr;
	gap: 0.5rem;
	align-items: center;
}

.ri-portfolio-prices__input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.45rem 0.55rem;
	border: 1px solid #b8c8b8;
	border-radius: 6px;
	font-size: 0.95rem;
}

.ri-portfolio-prices__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: flex-end;
	margin: 0;
}

.ri-portfolio-prices__cancel,
.ri-portfolio-prices__submit {
	padding: 0.5rem 0.9rem;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
}

.ri-portfolio-prices__cancel {
	border: 1px solid #c5d5c5;
	background: #fff;
	color: #234;
}

.ri-portfolio-prices__submit {
	border: 0;
	background: #155328;
	color: #fff;
}

.ri-portfolio__card img,
.ri-portfolio__ph {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: #e4ebe4;
	border-radius: 6px;
}

.ri-portfolio__card-title {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.3;
	color: #073507;
}

.ri-portfolio__reviews {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ri-portfolio__review {
	margin: 0 0 0.85rem;
	padding: 0.85rem 1rem;
	background: #f7faf7;
	border-radius: 8px;
	border: 1px solid #e2ebe2;
}

.ri-portfolio__review-meta {
	margin: 0 0 0.35rem;
	font-size: 0.88rem;
	color: #456;
}

.ri-portfolio__review-text {
	margin: 0;
	line-height: 1.45;
}

.ri-portfolio__form .ri-portfolio__field {
	margin: 0 0 0.85rem;
}

.ri-portfolio__form label {
	display: block;
	margin-bottom: 0.3rem;
	color: #073507;
}

.ri-portfolio__form select,
.ri-portfolio__form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.55rem 0.7rem;
	border: 1px solid #c5d0c5;
	border-radius: 6px;
	font: inherit;
	background: #fff;
}

.ri-portfolio__submit {
	appearance: none;
	border: 0;
	border-radius: 8px;
	padding: 0.65rem 1.25rem;
	background: #073507;
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.ri-portfolio__notice {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-radius: 8px;
}

.ri-portfolio__notice--ok {
	background: #e8f5e9;
	border: 1px solid #a5d6a7;
	color: #1b5e20;
}

.ri-portfolio__notice--err {
	background: #fdecea;
	border: 1px solid #f5c2c0;
	color: #7f1d1d;
}

.ri-portfolio-card {
	max-width: 520px;
	margin: 0 0 1.5rem;
	padding: 1rem 1.15rem;
	background: #f4f7f4;
	border: 1px solid #d7e0d7;
	border-radius: 10px;
}

.ri-portfolio-card__title {
	margin: 0 0 0.35rem;
	color: #073507;
	font-size: 1.15rem;
	font-weight: 800;
}

.ri-portfolio-card__name {
	margin: 0 0 0.75rem;
	font-weight: 600;
}

.ri-portfolio-card__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	margin: 0 0 0.85rem;
	padding: 0;
	list-style: none;
}

.ri-portfolio-card__stats li span {
	display: block;
	font-size: 0.8rem;
	color: #567;
}

.ri-portfolio-card__stats strong {
	color: #073507;
	font-size: 1.1rem;
}

.ri-portfolio-card__link {
	color: #0a7a2f;
	font-weight: 700;
	text-decoration: underline;
}

.ri-portfolio-product-link {
	margin: 0 0 0.75rem;
	font-size: 0.95rem;
}

.ri-portfolio-product-link a {
	color: #0a7a2f;
	font-weight: 700;
}

/* Author centrum — work protection timestamps */
.ri-author-stamps {
	max-width: 920px;
	margin: 0 0 1.75rem;
	padding: 1.1rem 1.2rem 1.2rem;
	border: 1px solid #c5d5c5;
	border-radius: 10px;
	background: linear-gradient(180deg, #f4faf4 0%, #eef5ee 100%);
	color: #1a2a1a;
}

.ri-author-stamps__back {
	margin: 0 0 0.85rem;
}

.ri-author-stamps__back a {
	color: #073507;
	font-weight: 700;
	text-decoration: none;
	font-size: 0.95rem;
}

.ri-author-stamps__back a:hover,
.ri-author-stamps__back a:focus {
	text-decoration: underline;
}

.ri-author-stamps__title {
	margin: 0 0 0.4rem;
	color: #073507;
	font-size: 1.25rem;
	font-weight: 800;
}

.ri-author-stamps__intro {
	margin: 0 0 1rem;
	color: #456;
	font-size: 0.95rem;
	line-height: 1.45;
}

.ri-author-stamps__empty {
	margin: 0;
	color: #567;
}

.ri-author-stamps__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.85rem;
}

.ri-author-stamps__item {
	padding: 0.85rem 1rem;
	border: 1px solid #cfdccf;
	border-radius: 8px;
	background: #fff;
}

.ri-author-stamps__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1rem;
	margin: 0 0 0.45rem;
	font-size: 0.9rem;
	color: #345;
}

.ri-author-stamps__id {
	margin-left: auto;
	color: #789;
	font-size: 0.82rem;
}

.ri-author-stamps__work {
	margin: 0 0 0.55rem;
	font-size: 0.95rem;
}

.ri-author-stamps__text {
	margin: 0;
	padding: 0.65rem 0.75rem;
	border-left: 3px solid #1f6b35;
	background: #f7fbf7;
	font-size: 0.92rem;
	line-height: 1.45;
	color: #1a2a1a;
}

.ri-author-stamps__text-label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #567;
}

.ri-author-stamps__actions {
	margin: 0.75rem 0 0;
}

.ri-author-stamps__download {
	display: inline-block;
	padding: 0.45rem 0.85rem;
	border-radius: 6px;
	background: #1f6b35;
	color: #fff !important;
	font-weight: 700;
	font-size: 0.9rem;
	text-decoration: none;
}

.ri-author-stamps__download:hover,
.ri-author-stamps__download:focus {
	background: #155328;
	color: #fff !important;
}

/* Single product: hide main price under title; price sits next to Add to cart */
body.single-product .wp-block-woocommerce-product-price {
	display: none !important;
}

/* Related (block) products still need their loop prices visible */
body.single-product .wp-block-woocommerce-related-products .wp-block-woocommerce-product-price,
body.single-product .wc-block-product-template .wp-block-woocommerce-product-price,
body.single-product .related.products .wp-block-woocommerce-product-price,
body.single-product .upsells.products .wp-block-woocommerce-product-price {
	display: block !important;
}

body.single-product .woocommerce-variation-price {
	/* Native WC slot stays in DOM for events; visual price is .ri-product-buy-price */
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: 0 !important;
}

body.single-product .ri-product-buy-row,
body.single-product .woocommerce-variation-add-to-cart.ri-product-buy-row,
body.single-product .variations_button.ri-product-buy-row {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem 1.25rem;
	width: 100%;
	max-width: 100%;
}

body.single-product .ri-product-buy-row .single_add_to_cart_button,
body.single-product .wp-block-add-to-cart-form .single_add_to_cart_button {
	margin: 0 !important;
	font-size: 1.05rem;
	padding: 0.75rem 1.4rem;
	line-height: 1.3;
	/* Never animate / scale the buy button (price pulse is separate). */
	transform: none !important;
	animation: none !important;
}

body.single-product .ri-product-buy-price {
	display: inline-flex;
	align-items: baseline;
	justify-content: flex-start;
	margin: 0;
	min-width: 5.25rem;
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: 400;
	line-height: 1.2;
	color: #073507;
	/* Layout size stays stable; only inner text pulses. */
	overflow: visible;
}

body.single-product .ri-product-buy-price[hidden] {
	display: none !important;
}

body.single-product .ri-product-buy-price__inner {
	display: inline-block;
	transform-origin: left center;
}

body.single-product .ri-product-buy-price__inner.ri-price-pulse {
	animation: ri-price-pulse 0.45s ease;
}

@keyframes ri-price-pulse {
	0% {
		transform: scale(1);
		opacity: 0.55;
	}
	35% {
		transform: scale(1.12);
		opacity: 1;
	}
	100% {
		transform: scale(1);
		opacity: 1;
	}
}

body.single-product .ri-product-buy-price .price,
body.single-product .ri-product-buy-price .woocommerce-Price-amount,
body.single-product .ri-product-buy-price bdi {
	font-size: inherit;
	font-weight: 400;
	color: inherit;
	margin: 0;
}

/* Product description (short + Description tab) — all sections */
body.single-product .woocommerce-product-details__short-description,
body.single-product .wp-block-post-excerpt,
body.single-product .wp-block-woocommerce-product-summary,
body.single-product .woocommerce-Tabs-panel--description,
body.single-product #tab-description,
body.single-product .wp-block-woocommerce-product-details .wc-block-components-product-details__description {
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.55;
}

body.single-product .woocommerce-product-details__short-description p,
body.single-product .wp-block-post-excerpt p,
body.single-product .wp-block-woocommerce-product-summary p,
body.single-product .woocommerce-Tabs-panel--description p,
body.single-product #tab-description p {
	font-size: inherit;
	line-height: inherit;
}

/* Category under Add to cart: text only, not a link */
body.single-product .product_meta a,
body.single-product .posted_in a,
body.single-product .wp-block-post-terms a,
body.single-product .wc-block-product-category-list a {
	pointer-events: none !important;
	cursor: default !important;
	text-decoration: none !important;
	color: inherit !important;
}

/* Marketplace products: category lives in facts row, not under price */
body.single-product.ri-marketplace-product .product_meta,
body.single-product.ri-marketplace-product .posted_in,
body.single-product.ri-marketplace-product .wp-block-post-terms,
body.single-product.ri-marketplace-product .wc-block-product-category-list {
	display: none !important;
}

/* Product detail facts (Category / Format / Style / Length) */
.ri-product-detail__facts,
.ri-mm-detail__facts {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	font-size: 0.92rem;
	line-height: 1.35;
	color: #0c1a0c;
}

.ri-product-detail__facts strong,
.ri-mm-detail__facts strong {
	font-weight: 600;
	margin-right: 0.25rem;
}

/* Custom License / Format dropdowns — hide native select (still in DOM for WC) */
body.single-product .ri-var-select {
	position: relative;
	display: block;
	width: 100%;
	max-width: 28rem;
	margin: 0.15rem 0 0.65rem;
}

body.single-product .ri-var-select__native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

body.single-product .ri-var-select__toggle {
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0.55rem 0.85rem;
	border: 0;
	border-radius: 4px;
	background: #155328;
	color: #fff;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
}

body.single-product .ri-var-select__toggle:hover,
body.single-product .ri-var-select__toggle:focus {
	background: #0f3f1e;
	outline: none;
}

body.single-product .ri-var-select__label {
	flex: 1 1 auto;
	min-width: 0;
}

body.single-product .ri-var-select__caret {
	flex: 0 0 auto;
	width: 0;
	height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid #fff;
	opacity: 0.9;
}

body.single-product .ri-var-select.is-open .ri-var-select__caret {
	transform: rotate(180deg);
}

body.single-product .ri-var-select__panel {
	position: absolute;
	z-index: 40;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	margin: 0;
	padding: 0.35rem 0;
	list-style: none;
	border: 1px solid #c5d5c5;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
	max-height: 16rem;
	overflow: auto;
}

body.single-product .ri-var-select__option {
	padding: 0.5rem 0.85rem;
	color: #0c1a0c;
	font-size: 0.92rem;
	cursor: pointer;
}

body.single-product .ri-var-select__option:hover,
body.single-product .ri-var-select__option:focus {
	background: #e8f3e8;
}

body.single-product .ri-var-select__option.is-selected {
	background: #d7ead7;
	font-weight: 600;
}

body.single-product .ri-var-select__option.is-soft-disabled {
	opacity: 0.72;
}

/* Variation description duplicates the license label — hide on RI products */
body.single-product.ri-marketplace-product .woocommerce-variation-description {
	display: none !important;
}

/* Music: Format (Track/Album) is already in the facts row — hide the dropdown */
body.single-product.ri-music-product .variations tr:has(select[name="attribute_format"]),
body.single-product.ri-music-product .variations tr:has(select[name="attribute_pa_format"]),
body.single-product.ri-music-product .ri-var-row--format-hidden {
	display: none !important;
}

/* Product detail — full content width (override TT5 constrained layout) */
body.ri-product-full.single-product main.has-global-padding,
body.ri-product-full.single-product main {
	padding-left: clamp(1.25rem, 4vw, 3rem) !important;
	padding-right: clamp(1.25rem, 4vw, 3rem) !important;
	box-sizing: border-box !important;
	max-width: none !important;
	width: 100% !important;
}

body.ri-product-full.single-product main .has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.ri-product-full.single-product main .is-layout-constrained,
body.ri-product-full.single-product .wp-block-post-content,
body.ri-product-full.single-product .entry-content,
body.ri-product-full.single-product .woocommerce.product,
body.ri-product-full.single-product .wp-block-group.woocommerce.product {
	max-width: none !important;
	width: 100% !important;
}

body.ri-product-full.single-product main .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
body.ri-product-full.single-product main .is-layout-constrained > .alignwide,
body.ri-product-full.single-product .wp-block-columns.alignwide,
body.ri-product-full.single-product .wp-block-woocommerce-product-details,
body.ri-product-full.single-product .wp-block-woocommerce-related-products,
body.ri-product-full.single-product .wp-block-woocommerce-product-collection {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

body.ri-product-full.single-product .wp-block-columns {
	gap: 2rem !important;
	align-items: flex-start !important;
}

/* Larger product photo (left column was capped at ~512px) */
body.ri-product-full.single-product .wp-block-columns.alignwide > .wp-block-column:first-child {
	flex-basis: min(720px, 48%) !important;
	flex-grow: 0 !important;
	flex-shrink: 0 !important;
	width: min(720px, 48%) !important;
	max-width: min(720px, 48%) !important;
}

body.ri-product-full.single-product .wp-block-woocommerce-product-image-gallery,
body.ri-product-full.single-product .woocommerce-product-gallery,
body.ri-product-full.single-product .woocommerce-product-gallery__wrapper,
body.ri-product-full.single-product .woocommerce-product-gallery__image {
	width: 100% !important;
	max-width: 100% !important;
}

body.ri-product-full.single-product .wp-block-woocommerce-product-image-gallery img,
body.ri-product-full.single-product .woocommerce-product-gallery img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}

/* More Products / related — fill to right edge (≈10+ thumbs on wide screens) */
body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products,
body.single-product .woocommerce-tabs .panel ul.products,
body.single-product .related.products ul.products,
body.single-product .upsells.products ul.products,
body.single-product ul.products.columns-4,
body.single-product ul.products.columns-5 {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
	justify-content: stretch !important;
	gap: 0.75rem 1rem !important;
	margin: 0.75rem 0 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

/* WC clearfix become ghost grid items — remove them */
body.single-product ul.products::before,
body.single-product ul.products::after,
body.single-product .related.products ul.products::before,
body.single-product .related.products ul.products::after {
	content: none !important;
	display: none !important;
}

body.single-product ul.products li.product,
body.single-product .related.products li.product,
body.single-product .upsells.products li.product {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	height: auto !important;
	min-width: 0 !important;
}

body.single-product.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
body.single-product.woocommerce .related.products li.product a.woocommerce-LoopProduct-link,
body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	width: 100% !important;
	max-width: 100% !important;
	text-decoration: none !important;
}

body.single-product.woocommerce ul.products li.product a img,
body.single-product.woocommerce ul.products li.product img,
body.single-product.woocommerce .related.products li.product img,
body.single-product.woocommerce .upsells.products li.product img,
body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products li.product a img,
body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products li.product img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-width: 0 !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
	margin: 0 !important;
}

body.single-product ul.products li.product .woocommerce-loop-product__title,
body.single-product .related.products li.product .woocommerce-loop-product__title,
body.single-product .upsells.products li.product .woocommerce-loop-product__title {
	font-size: 0.78rem !important;
	line-height: 1.25 !important;
	margin: 0.35rem 0 0.15rem !important;
}

body.single-product ul.products li.product .price,
body.single-product .related.products li.product .price,
body.single-product .upsells.products li.product .price,
body.single-product .wp-block-woocommerce-related-products .wp-block-woocommerce-product-price,
body.single-product .wp-block-woocommerce-related-products .price,
body.single-product .wc-block-product-template .wp-block-woocommerce-product-price,
body.single-product .wc-block-product-template .price {
	font-size: 0.78rem !important;
	margin: 0.15rem 0 0 !important;
}

/* No Add to cart / Select options under related & More Products */
body.single-product ul.products li.product .button,
body.single-product ul.products li.product a.button,
body.single-product ul.products li.product .add_to_cart_button,
body.single-product .related.products li.product .button,
body.single-product .upsells.products li.product .button,
body.single-product .woocommerce-Tabs-panel--more_seller_product .button,
body.single-product .woocommerce-Tabs-panel--more_seller_product a.button,
body.single-product .wp-block-woocommerce-related-products .wp-block-button,
body.single-product .wp-block-woocommerce-related-products .wc-block-components-product-button,
body.single-product .wp-block-woocommerce-related-products .wc-block-components-product-button__button,
body.single-product .wc-block-product-template .wp-block-button,
body.single-product .wc-block-product-template .wc-block-components-product-button,
body.single-product .wc-block-product-template .add_to_cart_button {
	display: none !important;
}

body.single-product .wc-block-product-template .wc-block-product,
body.single-product .wp-block-woocommerce-related-products .wc-block-product {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	height: auto !important;
	max-width: none !important;
	width: 100% !important;
	min-width: 0 !important;
}

body.single-product .wp-block-woocommerce-related-products .wc-block-product-template,
body.single-product .wc-block-product-template.is-flex-container {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important;
	justify-content: stretch !important;
	gap: 0.75rem 1rem !important;
	align-items: start !important;
	width: 100% !important;
}

body.single-product .wp-block-woocommerce-related-products img,
body.single-product .wc-block-product-template img {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: cover !important;
}

body.single-product .wp-block-woocommerce-related-products .wp-block-post-title,
body.single-product .wc-block-product-template .wp-block-post-title {
	font-size: 0.78rem !important;
	line-height: 1.25 !important;
}

@media (max-width: 900px) {
	body.ri-product-full.single-product .wp-block-columns.alignwide > .wp-block-column:first-child {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products,
	body.single-product .woocommerce-tabs .panel ul.products,
	body.single-product .related.products ul.products,
	body.single-product ul.products.columns-4,
	body.single-product .wp-block-woocommerce-related-products .wc-block-product-template,
	body.single-product .wc-block-product-template.is-flex-container {
		grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)) !important;
		gap: 0.65rem 0.75rem !important;
	}
}

@media (max-width: 560px) {
	.ri-portfolio__stats {
		grid-template-columns: 1fr;
	}

	.ri-author-stamps__id {
		margin-left: 0;
	}

	body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products,
	body.single-product .woocommerce-tabs .panel ul.products,
	body.single-product .related.products ul.products,
	body.single-product ul.products.columns-4,
	body.single-product .wp-block-woocommerce-related-products .wc-block-product-template,
	body.single-product .wc-block-product-template.is-flex-container {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.65rem !important;
		width: 100% !important;
	}

	body.single-product.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
	body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products li.product a.woocommerce-LoopProduct-link {
		width: 100% !important;
		max-width: 100% !important;
	}

	body.single-product.woocommerce ul.products li.product a img,
	body.single-product .woocommerce-Tabs-panel--more_seller_product ul.products li.product img {
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
	}
}

/* Author Center — Change price tool */
.ri-author-prices {
	margin: 1.25rem 0 2rem;
	max-width: 42rem;
}

.ri-author-prices__intro {
	margin: 0 0 1rem;
	color: #3a4a3a;
	line-height: 1.45;
}

.ri-author-prices__flash {
	margin: 0 0 1rem;
	padding: 0.65rem 0.85rem;
	border-radius: 4px;
	font-weight: 600;
}

.ri-author-prices__flash--ok {
	background: #e8f3e8;
	color: #073507;
}

.ri-author-prices__flash--err {
	background: #f8e8e8;
	color: #6a1a1a;
}

.ri-author-prices__empty {
	color: #5a6b5a;
}

.ri-author-prices__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.ri-author-prices__item {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 0.75rem 0.9rem;
	align-items: center;
	padding: 0.65rem 0.75rem;
	border: 1px solid #d5e0d5;
	border-radius: 6px;
	background: #fff;
}

.ri-author-prices__thumb {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 4px;
	background: #e4ebe4;
	display: block;
}

.ri-author-prices__thumb--ph {
	display: block;
}

.ri-author-prices__meta {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.ri-author-prices__sec {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #5a6b5a;
}

.ri-author-prices__title {
	font-weight: 700;
	color: #073507;
	text-decoration: none;
	line-height: 1.3;
}

.ri-author-prices__title:hover {
	text-decoration: underline;
}

.ri-author-prices__current {
	font-size: 0.88rem;
	color: #234;
}

.ri-author-prices__btn {
	appearance: none;
	border: 0;
	border-radius: 4px;
	padding: 0.45rem 0.75rem;
	background: #155328;
	color: #fff;
	font: inherit;
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}

.ri-author-prices__btn:hover,
.ri-author-prices__btn:focus {
	background: #0f3f1e;
}

.ri-author-prices .ri-sm__pager {
	margin-top: 1.15rem;
}

@media (max-width: 560px) {
	.ri-author-prices__item {
		grid-template-columns: 56px 1fr;
	}

	.ri-author-prices__thumb {
		width: 56px;
		height: 56px;
	}

	.ri-author-prices__btn {
		grid-column: 1 / -1;
		justify-self: stretch;
	}
}

/* Product detail — global section technical info (below price / add to cart) */
.ri-product-section-info {
	margin: 2.75rem 0 1.25rem;
	padding: 0.85rem 1rem;
	border: 1px solid #d5e0d5;
	border-radius: 6px;
	background: #f6f9f6;
	color: #1a2a1a;
	clear: both;
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.ri-product-section-info__label {
	margin: 0 0 0.35rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #5a6b5a;
}

.ri-product-section-info__text {
	font-size: 0.95rem;
	line-height: 1.45;
}

.ri-product-section-info__text p {
	margin: 0 0 0.5rem;
}

.ri-product-section-info__text p:last-child {
	margin-bottom: 0;
}

