/* ==========================================================================
   The Print Republic redesign (2026-10-21)
   Editorial home page, the four "Shop by" hubs, and shared type for collection banners.
   Loaded after the child style.css (inc/tprs-redesign.php). Everything is scoped to .tprs-*
   classes so it does not leak into the rest of the theme.
   ========================================================================== */

:root {
	--tprs-serif: "Instrument Serif", "Iowan Old Style", "Times New Roman", serif;
	--tprs-sans: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--tprs-ink: #1f1b18;
	--tprs-ink-soft: #5b524a;
	--tprs-muted: #6f665e;
	--tprs-line: #e5dfd8;
	--tprs-tile: #f3efea;
	--tprs-band: #f7f4f0;
	--tprs-wrap: 1680px; /* 2026-10-22 trial on staging, was 1320px */
	--tprs-gutter: clamp(20px, 4vw, 48px);
	--tprs-section: clamp(56px, 7vw, 104px);
}

/* Theme header and footer rows (app.css caps .row at 83.125rem = 1330px) widened to line up
   with the page wrap: +10px keeps the same alignment they had against the 1320px wrap. */
.header .header-logo-row > .row,
.footer > .row.footer-row,
.subfooter .row.subfooter-row {
	max-width: calc(var(--tprs-wrap) + 10px);
}

/* ---- Layout primitives ---------------------------------------------------- */
.tprs-page {
	color: var(--tprs-ink);
	font-family: var(--tprs-sans);
}
.tprs-page .tprs-wrap {
	max-width: var(--tprs-wrap);
	margin: 0 auto;
	padding-inline: var(--tprs-gutter);
}
.tprs-page .tprs-section {
	padding-block: var(--tprs-section);
}
.tprs-page .tprs-section--tight {
	padding-block: calc(var(--tprs-section) * .6);
}
.tprs-page .tprs-section--top {
	padding-top: clamp(24px, 3vw, 40px);
}
.tprs-page .tprs-section--band {
	background: var(--tprs-band);
}
.tprs-page .tprs-center {
	margin: 40px 0 0;
	text-align: center;
}

/* ---- Type ----------------------------------------------------------------- */
.tprs-page .tprs-eyebrow {
	margin: 0 0 10px;
	font-family: var(--tprs-sans);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tprs-muted);
}
.tprs-page .tprs-title {
	margin: 0;
	font-family: var(--tprs-serif);
	font-size: clamp(34px, 4.2vw, 56px);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -.005em;
	color: var(--tprs-ink);
	text-wrap: balance;
}
.tprs-page .tprs-title a {
	color: inherit;
}
.tprs-page .tprs-lede {
	margin: 16px 0 0;
	max-width: 46ch;
	font-size: 17px;
	line-height: 1.6;
	color: var(--tprs-ink-soft);
}
.tprs-page .tprs-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 32px;
	margin: 0 0 clamp(24px, 3vw, 40px);
}
.tprs-page .tprs-viewall,
.tprs-page .tprs-textlink {
	flex-shrink: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--tprs-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 5px;
}
.tprs-page .tprs-viewall:hover,
.tprs-page .tprs-textlink:hover {
	color: var(--tprs-ink);
	text-decoration-thickness: 2px;
}
.tprs-page a.tprs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 32px;
	border-radius: 999px;
	background: var(--tprs-ink);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .01em;
	transition: background-color .2s ease;
}
.tprs-page a.tprs-btn:hover {
	background: #000;
	color: #fff;
}
.tprs-page a:focus-visible {
	outline: 2px solid var(--tprs-ink);
	outline-offset: 3px;
}

/* ---- Product card --------------------------------------------------------- */
.tprs-page .tprs-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.tprs-page .tprs-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--tprs-tile);
}
.tprs-page .tprs-card__media img.tprs-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	padding: 9% 7%;
	object-fit: contain;
	transition: opacity .45s ease, transform .6s ease;
}
/* the alt image is a room mockup: full bleed, revealed on hover where hover exists */
.tprs-page .tprs-card__media img.tprs-card__img--alt {
	padding: 0;
	object-fit: cover;
	opacity: 0;
}
@media (hover: hover) {
	.tprs-page .tprs-card:hover .tprs-card__media.has-alt img.tprs-card__img--alt {
		opacity: 1;
	}
	.tprs-page .tprs-card:hover .tprs-card__media.has-alt img.tprs-card__img:not(.tprs-card__img--alt) {
		opacity: 0;
	}
}
.tprs-page .tprs-card__title {
	margin: 14px 0 4px;
	font-family: var(--tprs-sans);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
}
.tprs-page .tprs-card__title a {
	color: var(--tprs-ink);
}
.tprs-page .tprs-card__title a:hover {
	color: var(--tprs-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.tprs-page .tprs-card__price {
	font-size: 14px;
	color: var(--tprs-ink-soft);
}
.tprs-page .tprs-card__price .price-prefix {
	color: var(--tprs-muted);
}

/* ---- Product rail: 4-up grid, swipe row on phones ---------------------------- */
.tprs-page .tprs-rail {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 36px 20px;
}
@media (max-width: 767px) {
	.tprs-page .tprs-rail {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 62%;
		gap: 14px;
		margin-right: calc(var(--tprs-gutter) * -1);
		padding-right: var(--tprs-gutter);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.tprs-page .tprs-rail::-webkit-scrollbar {
		display: none;
	}
	.tprs-page .tprs-rail__item {
		scroll-snap-align: start;
	}
}

/* ==========================================================================
   Home
   ========================================================================== */

/* Hero (cover block from the Home page content) */
.tprs-home .wp-block-cover.tprs-hero {
	margin: 0;
}
.tprs-home .wp-block-cover.tprs-hero .tprs-hero__title {
	font-family: var(--tprs-serif);
	font-size: clamp(44px, 5.6vw, 84px);
	font-weight: 400;
	line-height: .98;
	letter-spacing: -.01em;
}
.tprs-home .wp-block-cover.tprs-hero .tprs-hero__eyebrow {
	font-size: 12px;
}
@media (max-width: 767px) {
	.tprs-home .wp-block-cover.tprs-hero .tprs-hero__title {
		font-size: clamp(38px, 11vw, 48px);
	}
}

/* Trust strip */
.tprs-home .tprs-trust {
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-home .tprs-trust__inner {
	display: flex;
	align-items: center;
	gap: 20px clamp(24px, 4vw, 56px);
	padding-block: 22px;
}
.tprs-home .tprs-trust__label {
	flex-shrink: 0;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tprs-muted);
}
.tprs-home .tprs-trust__logos {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tprs-home .tprs-trust__logos li {
	margin: 0;
}
.tprs-home .tprs-trust__logos img {
	display: block;
	width: auto;
	height: 56px;
	max-width: 150px;
	object-fit: contain;
	filter: grayscale(1);
	mix-blend-mode: multiply;
	opacity: .75;
}
@media (max-width: 767px) {
	.tprs-home .tprs-trust__inner {
		flex-direction: column;
		gap: 12px;
	}
	.tprs-home .tprs-trust__logos {
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px 20px;
	}
	.tprs-home .tprs-trust__logos img {
		height: 42px;
		max-width: 110px;
	}
}

/* Reviews band: the Etsy reviews plugin's carousel sits inside */
.tprs-home .tprs-reviews-band .tprs-reviews {
	margin: 0;
}

/* Collections row: portrait cards cut from each collection's banner photo */
.tprs-home .tprs-section--flush .tprs-head {
	margin-bottom: clamp(24px, 3vw, 40px);
}
.tprs-home .tprs-collrow {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: clamp(220px, 22vw, 290px);
	gap: 20px;
	padding-inline: max(var(--tprs-gutter), calc((100vw - var(--tprs-wrap)) / 2 + var(--tprs-gutter)));
	padding-bottom: 8px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: max(var(--tprs-gutter), calc((100vw - var(--tprs-wrap)) / 2 + var(--tprs-gutter)));
	scrollbar-width: thin;
}
.tprs-home .tprs-coll {
	display: flex;
	flex-direction: column;
	scroll-snap-align: start;
	color: var(--tprs-ink);
}
.tprs-home .tprs-coll__media {
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--tprs-banner-bg, var(--tprs-tile));
}
.tprs-home .tprs-coll__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: var(--tprs-banner-pos, 50% 50%);
	transition: transform .7s ease;
}
.tprs-home .tprs-coll:hover .tprs-coll__media img {
	transform: scale(1.04);
}
.tprs-home .tprs-coll__name {
	margin-top: 14px;
	font-family: var(--tprs-serif);
	font-size: 26px;
	line-height: 1.1;
}
.tprs-home .tprs-coll__count {
	margin-top: 4px;
	font-size: 14px;
	color: var(--tprs-muted);
}
.tprs-home .tprs-coll:hover {
	color: var(--tprs-ink);
}
@media (max-width: 767px) {
	.tprs-home .tprs-collrow {
		grid-auto-columns: 64%;
		gap: 14px;
	}
}

/* Collection of the week: tall photo beside copy and a 2x2 of its prints */
.tprs-home .tprs-cotw2__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
}
.tprs-home .tprs-cotw2__media {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}
.tprs-home .tprs-cotw2__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: 55% 50%;
}
.tprs-home .tprs-cotw2__products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px 18px;
	margin: 32px 0 36px;
}
.tprs-home .tprs-cotw2__products .tprs-card__media {
	background: #fff;
}
@media (max-width: 900px) {
	.tprs-home .tprs-cotw2__grid {
		grid-template-columns: 1fr;
	}
	.tprs-home .tprs-cotw2__media {
		aspect-ratio: 4 / 3;
	}
}

/* Shop by room: three tall scenes with the name set over them */
.tprs-page .tprs-rooms {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.tprs-page .tprs-room {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	color: #fff;
}
.tprs-page .tprs-room img.tprs-room__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform .7s ease;
}
.tprs-page .tprs-room:hover img.tprs-room__img {
	transform: scale(1.04);
}
.tprs-page .tprs-room::after {
	content: "";
	position: absolute;
	inset: 45% 0 0;
	background: linear-gradient(to bottom, rgba(20, 16, 12, 0), rgba(20, 16, 12, .55));
	pointer-events: none;
}
.tprs-page .tprs-room__label {
	position: absolute;
	right: 24px;
	bottom: 22px;
	left: 24px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.tprs-page .tprs-room__name {
	font-family: var(--tprs-serif);
	font-size: clamp(30px, 2.8vw, 40px);
	line-height: 1;
}
.tprs-page .tprs-room__cta {
	font-size: 14px;
	font-weight: 600;
}
.tprs-page .tprs-room:hover {
	color: #fff;
}
.tprs-home .tprs-room--living-room img.tprs-room__img {
	object-position: 72% 50%;
}
@media (max-width: 767px) {
	.tprs-page .tprs-rooms {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.tprs-page .tprs-room {
		aspect-ratio: 4 / 3;
	}
}

/* Shop by colour: swatch row */
.tprs-home .tprs-swatches {
	display: grid;
	grid-template-columns: repeat(9, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.tprs-home .tprs-swatches li {
	margin: 0;
}
.tprs-home .tprs-swatch {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	color: var(--tprs-ink);
	text-align: center;
}
.tprs-home .tprs-swatch__dot {
	display: block;
	width: 100%;
	max-width: 96px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--tprs-sw);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
	transition: transform .25s ease;
}
.tprs-home .tprs-swatch:hover .tprs-swatch__dot {
	transform: scale(1.06);
}
.tprs-home .tprs-swatch__name {
	font-size: 14px;
	font-weight: 500;
}
.tprs-home .tprs-swatch:hover {
	color: var(--tprs-ink);
}
@media (max-width: 900px) {
	.tprs-home .tprs-swatches {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 84px;
		overflow-x: auto;
		padding-bottom: 6px;
	}
}

/* Brand story (media-text block from the Home page content) */
.tprs-home .tprs-story-wrap {
	padding-block: 0;
}
.tprs-home .wp-block-media-text.tprs-story {
	margin: 0;
}
.tprs-home .wp-block-media-text.tprs-story .tprs-story__title {
	font-family: var(--tprs-serif);
	font-size: clamp(34px, 3.6vw, 52px);
	font-weight: 400;
	line-height: 1.02;
}

/* Why us */
.tprs-home .tprs-usps {
	padding-block: clamp(48px, 6vw, 80px);
}
.tprs-home .tprs-usps__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px clamp(24px, 4vw, 64px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.tprs-home .tprs-usp {
	margin: 0;
	padding-top: 24px;
	border-top: 1px solid var(--tprs-ink);
}
.tprs-home .tprs-usp__icon {
	display: block;
	width: 28px;
	height: 28px;
	margin-bottom: 18px;
	background: var(--tprs-ink);
	-webkit-mask: var(--tprs-icon) center / contain no-repeat;
	mask: var(--tprs-icon) center / contain no-repeat;
}
.tprs-home .tprs-usp__icon--paper {
	--tprs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M6 3h9l3 3v15H6z'/%3E%3Cpath d='M15 3v3h3M9 11h6M9 15h6'/%3E%3C/svg%3E");
}
.tprs-home .tprs-usp__icon--leaf {
	--tprs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M5 19c0-8 5-13 15-14-1 10-6 15-14 15'/%3E%3Cpath d='M5 19l8-8'/%3E%3C/svg%3E");
}
.tprs-home .tprs-usp__icon--globe {
	--tprs-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18'/%3E%3C/svg%3E");
}
.tprs-home .tprs-usp__title {
	margin: 0 0 8px;
	font-family: var(--tprs-serif);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--tprs-ink);
}
.tprs-home .tprs-usp__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--tprs-ink-soft);
}
.tprs-home .tprs-usps__more {
	margin: 32px 0 0;
	font-size: 15px;
}
.tprs-home .tprs-usps__more a {
	color: var(--tprs-ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 5px;
}
@media (max-width: 767px) {
	.tprs-home .tprs-usps__list {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Hub pages
   ========================================================================== */

.tprs-hub .tprs-hubhead {
	padding-block: 8px clamp(24px, 3vw, 40px);
}
.tprs-hub .tprs-hubhead__crumbs .woocommerce-breadcrumb {
	padding: 14px 0 clamp(24px, 4vw, 48px);
	font-size: 13px;
	color: var(--tprs-muted);
}
.tprs-hub .tprs-hubhead__crumbs .woocommerce-breadcrumb a {
	color: var(--tprs-ink);
}
.tprs-hub .tprs-hubhead__title {
	margin: 0;
	font-family: var(--tprs-serif);
	font-size: clamp(48px, 7vw, 104px);
	font-weight: 400;
	line-height: .95;
	letter-spacing: -.015em;
	color: var(--tprs-ink);
}
.tprs-hub .tprs-hubhead__intro {
	max-width: 52ch;
	margin: 20px 0 0;
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.6;
	color: var(--tprs-ink-soft);
}
.tprs-hub .tprs-hubfoot {
	border-top: 1px solid var(--tprs-line);
	text-align: center;
}
.tprs-hub .tprs-hubfoot__text {
	margin: 0 0 20px;
	font-family: var(--tprs-serif);
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.1;
}

/* Room hub: one lead scene, two stacked beside it */
.tprs-hub--room .tprs-scenes {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 20px;
	height: clamp(520px, 72vh, 760px);
}
.tprs-hub--room .tprs-scene {
	position: relative;
	display: block;
	overflow: hidden;
	color: #fff;
}
.tprs-hub--room .tprs-scene--lead {
	grid-row: 1 / span 2;
}
.tprs-hub--room .tprs-scene img.tprs-scene__img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform .8s ease;
}
.tprs-hub--room .tprs-scene--lead img.tprs-scene__img {
	object-position: 70% 50%;
}
.tprs-hub--room .tprs-scene:hover img.tprs-scene__img {
	transform: scale(1.03);
}
.tprs-hub--room .tprs-scene::after {
	content: "";
	position: absolute;
	inset: 40% 0 0;
	background: linear-gradient(to bottom, rgba(20, 16, 12, 0), rgba(20, 16, 12, .6));
	pointer-events: none;
}
.tprs-hub--room .tprs-scene__label {
	position: absolute;
	right: clamp(20px, 3vw, 40px);
	bottom: clamp(18px, 3vw, 36px);
	left: clamp(20px, 3vw, 40px);
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.tprs-hub--room .tprs-scene__name {
	font-family: var(--tprs-serif);
	font-size: clamp(34px, 3.4vw, 48px);
	line-height: 1;
}
.tprs-hub--room .tprs-scene--lead .tprs-scene__name {
	font-size: clamp(44px, 5.4vw, 80px);
}
.tprs-hub--room .tprs-scene__meta {
	font-size: 15px;
	font-weight: 600;
}
.tprs-hub--room .tprs-scene:hover {
	color: #fff;
}
@media (max-width: 767px) {
	.tprs-hub--room .tprs-scenes {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		height: auto;
		gap: 14px;
	}
	.tprs-hub--room .tprs-scene,
	.tprs-hub--room .tprs-scene--lead {
		grid-row: auto;
		aspect-ratio: 4 / 3;
	}
}

/* Colour hub: a field of each colour with its prints sitting on it */
.tprs-hub--colour .tprs-fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.tprs-hub--colour .tprs-field {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 32px;
	min-height: clamp(300px, 30vw, 400px);
	padding: clamp(22px, 2.4vw, 32px);
	background: var(--tprs-field-bg);
	color: var(--tprs-field-fg);
	transition: transform .3s ease;
}
.tprs-hub--colour .tprs-field:hover {
	color: var(--tprs-field-fg);
	transform: translateY(-4px);
}
.tprs-hub--colour .tprs-field__text {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.tprs-hub--colour .tprs-field__name {
	font-family: var(--tprs-serif);
	font-size: clamp(36px, 3.6vw, 52px);
	line-height: 1;
}
.tprs-hub--colour .tprs-field__count {
	font-size: 14px;
	font-weight: 600;
	opacity: .8;
	white-space: nowrap;
}
.tprs-hub--colour .tprs-field__prints {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	align-items: end;
}
/* flat artwork on a transparent pad, so the prints read as sheets laid on the colour */
.tprs-hub--colour .tprs-field__prints img {
	width: 100%;
	height: auto;
	filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .18));
}
@media (max-width: 900px) {
	.tprs-hub--colour .tprs-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 560px) {
	.tprs-hub--colour .tprs-fields {
		grid-template-columns: 1fr;
	}
	.tprs-hub--colour .tprs-field {
		min-height: 0;
	}
}

/* Collection hub: magazine rows on each collection's wall colour */
.tprs-hub--collection .tprs-mag {
	padding-block: clamp(40px, 6vw, 88px);
	background: color-mix(in srgb, var(--tprs-banner-bg, #f3efea) 38%, #fff);
}
.tprs-hub--collection .tprs-mag__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
}
.tprs-hub--collection .tprs-mag--flip .tprs-mag__media {
	order: 2;
}
.tprs-hub--collection .tprs-mag__media {
	display: block;
	aspect-ratio: 5 / 4;
	overflow: hidden;
	background: var(--tprs-banner-bg, var(--tprs-tile));
}
.tprs-hub--collection .tprs-mag__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: var(--tprs-banner-pos, 50% 50%);
	transition: transform .8s ease;
}
.tprs-hub--collection .tprs-mag__media:hover img {
	transform: scale(1.03);
}
.tprs-hub--collection .tprs-mag__prints {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	margin: 28px 0;
	padding: 0;
	list-style: none;
}
.tprs-hub--collection .tprs-mag__prints li {
	margin: 0;
}
.tprs-hub--collection .tprs-mag__prints a {
	display: block;
	aspect-ratio: 4 / 5;
	background: #fff;
}
.tprs-hub--collection .tprs-mag__prints img {
	width: 100%;
	height: 100%;
	max-width: none;
	padding: 8%;
	object-fit: contain;
}
@media (max-width: 767px) {
	.tprs-hub--collection .tprs-mag__grid {
		grid-template-columns: 1fr;
	}
	.tprs-hub--collection .tprs-mag--flip .tprs-mag__media {
		order: 0;
	}
	.tprs-hub--collection .tprs-mag__media {
		aspect-ratio: 4 / 3;
	}
}

/* Category hub: typographic index with a preview panel */
.tprs-hub--category .tprs-index {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
}
.tprs-hub--category .tprs-index__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--tprs-line);
}
.tprs-hub--category .tprs-index__list li {
	margin: 0;
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-hub--category .tprs-index__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: baseline;
	gap: 20px;
	padding: clamp(14px, 1.6vw, 22px) 0;
	color: var(--tprs-muted);
	transition: color .2s ease, padding-left .3s ease;
}
.tprs-hub--category .tprs-index__thumb {
	display: none;
}
.tprs-hub--category .tprs-index__name {
	font-family: var(--tprs-serif);
	font-size: clamp(36px, 4.4vw, 64px);
	line-height: 1;
}
.tprs-hub--category .tprs-index__count {
	font-size: 14px;
	font-variant-numeric: tabular-nums;
}
.tprs-hub--category .tprs-index__arrow {
	font-size: 20px;
	opacity: 0;
	transform: translateX(-6px);
	transition: opacity .2s ease, transform .2s ease;
}
.tprs-hub--category .tprs-index__item.is-active,
.tprs-hub--category .tprs-index__item:hover {
	padding-left: 10px;
	color: var(--tprs-ink);
}
.tprs-hub--category .tprs-index__item.is-active .tprs-index__arrow,
.tprs-hub--category .tprs-index__item:hover .tprs-index__arrow {
	opacity: 1;
	transform: none;
}
.tprs-hub--category .tprs-index__preview {
	position: sticky;
	top: 120px;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--tprs-tile);
}
.tprs-hub--category .tprs-index__preview img.tprs-index__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	opacity: 0;
	transition: opacity .4s ease;
}
.tprs-hub--category .tprs-index__preview img.tprs-index__img.is-active {
	opacity: 1;
}
@media (max-width: 900px) {
	.tprs-hub--category .tprs-index {
		grid-template-columns: 1fr;
	}
	.tprs-hub--category .tprs-index__preview {
		display: none;
	}
	.tprs-hub--category .tprs-index__item {
		grid-template-columns: 64px minmax(0, 1fr) auto;
		align-items: center;
		gap: 16px;
		color: var(--tprs-ink);
	}
	.tprs-hub--category .tprs-index__item.is-active,
	.tprs-hub--category .tprs-index__item:hover {
		padding-left: 0;
	}
	.tprs-hub--category .tprs-index__thumb {
		display: block;
		width: 64px;
		aspect-ratio: 4 / 5;
		background: var(--tprs-tile);
	}
	.tprs-hub--category .tprs-index__thumb img {
		width: 100%;
		height: 100%;
		padding: 8%;
		object-fit: contain;
	}
	.tprs-hub--category .tprs-index__name {
		font-size: clamp(30px, 8vw, 40px);
	}
	.tprs-hub--category .tprs-index__arrow {
		display: none;
	}
}

/* ==========================================================================
   Collection pages: banners share the redesign's display type
   ========================================================================== */
.tprs-banner .tprs-banner__title {
	font-family: var(--tprs-serif);
	font-size: clamp(42px, 4.6vw, 68px);
	font-weight: 400;
	line-height: .98;
	letter-spacing: -.01em;
}
@media (max-width: 767px) {
	.tprs-banner .tprs-banner__title {
		font-size: clamp(36px, 10vw, 46px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tprs-page *,
	.tprs-banner * {
		transition: none !important;
	}
}

/* ==========================================================================
   Product page (2026-10-21): tprs/product.php, inc/tprs-pdp.php, js/tprs-pdp.js
   Prefix .tprs-page.tprs-pdp (two classes) so these outrank the theme's
   .thb-product-detail rules regardless of load order.
   ========================================================================== */
.tprs-page.tprs-pdp {
	--tprs-wall: #ebe7e1; /* same tone the frame preview paints its backdrop (tprs-frame-preview.js WALL) */
	padding-bottom: 24px;
}
.tprs-page.tprs-pdp .tprs-pdp__crumbs .woocommerce-breadcrumb {
	padding: 16px 0 20px;
	font-size: 13px;
	color: var(--tprs-muted);
}
.tprs-page.tprs-pdp .tprs-pdp__crumbs .woocommerce-breadcrumb a {
	color: var(--tprs-ink);
}
.tprs-page.tprs-pdp .tprs-pdp__main {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
	padding-bottom: clamp(26px, 3.3vw, 48px); /* ~55% of the original, like the rails below */
}

/* ---- Gallery: stage + thumbnails ------------------------------------------ */
/* Desktop: the gallery fills the window down to just above the fold (height set by
   js/tprs-pdp.js) and sticks below the site header while the summary scrolls past; once the
   summary's end (Shipping) reaches the gallery's bottom, the whole page scrolls on. Thumbnails
   run down the left of the stage and fill its height. Phones: static, see the 900px block. */
.tprs-page.tprs-pdp .tprs-pdp__gallery {
	position: sticky;
	top: var(--tprs-sticky-top, 16px);
}
.tprs-page.tprs-pdp .tprs-gallery {
	--tprs-thumb-w: 86px;
	position: relative;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
}
.tprs-page.tprs-pdp .tprs-gallery--thumbs {
	padding-left: calc(var(--tprs-thumb-w) + 12px);
}
.tprs-page.tprs-pdp .tprs-gallery__stage {
	position: relative;
	background: var(--tprs-wall);
}
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track {
	display: flex;
	margin: 0;
	border-radius: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track::-webkit-scrollbar {
	display: none;
}
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track > .woocommerce-product-gallery__image {
	flex: 0 0 100%;
	width: 100%;
	margin: 0;
	aspect-ratio: 1 / 1;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track > .woocommerce-product-gallery__image > a {
	display: block;
	width: 100%;
	height: 100%;
	cursor: default;
}
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track > .woocommerce-product-gallery__image:first-child:not(.is-framed) img {
	transform: scale(var(--tprs-flat-scale, .81)); /* see js/tprs-pdp.js: matches the framed preview */
}
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	border-radius: 0;
	object-fit: contain;
	transition: opacity .3s ease;
}
/* Phones only (see the max-width: 900px block): arrows on the stage + a position line under it. */
.tprs-page.tprs-pdp .tprs-gallery__arrow,
.tprs-page.tprs-pdp .tprs-gallery__progress {
	display: none;
}
.tprs-page.tprs-pdp .tprs-gallery__thumbs {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: var(--tprs-thumb-w);
	padding: 2px 0; /* room for the active outline at the ends */
	overflow: hidden;
}
@media (min-width: 901px) {
	/* js/tprs-pdp.js sets the stage height from the window height; thumbnails fill it. */
	.tprs-page.tprs-pdp .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image {
		height: var(--tprs-stage-h);
		max-height: none;
		aspect-ratio: auto;
	}
	.tprs-page.tprs-pdp .tprs-gallery.has-stage-h .tprs-gallery__thumb {
		flex: 0 0 auto;
		aspect-ratio: 5 / 7;
	}
	/* Images scale with the box: slide 1 zoomed to fill it (only wall cropped, see
	   js/tprs-pdp.js); the room photos cover it. */
	.tprs-page.tprs-pdp .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image {
		overflow: hidden;
	}
	.tprs-page.tprs-pdp .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image:first-child img {
		transform: scale(var(--tprs-first-zoom, 1));
	}
	.tprs-page.tprs-pdp .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image:first-child:not(.is-framed) img {
		transform: scale(var(--tprs-flat-zoom, .81));
	}
	.tprs-page.tprs-pdp .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image:not(:first-child) img {
		object-fit: cover;
	}
	/* ~206px = header + breadcrumb + bottom breathing room */
	.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__track > .woocommerce-product-gallery__image {
		max-height: max(340px, calc(100vh - 206px));
		max-height: max(340px, calc(100svh - 206px));
	}
}
.tprs-page.tprs-pdp .tprs-gallery__thumb {
	display: block;
	flex: 0 1 calc(var(--tprs-thumb-w) * 16 / 9); /* 9:16, shrinks to fit the column */
	width: 100%;
	min-height: 0;
	padding: 0;
	border: 0;
	background: var(--tprs-wall);
	cursor: pointer;
	outline-offset: 2px;
}
/* .tprs-gallery added to outrank WooCommerce's `.woocommerce div.product div.images img
   { height: auto }`, which left a square image at the top of each thumbnail. */
.tprs-page.tprs-pdp .tprs-gallery .tprs-gallery__thumb img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.tprs-page.tprs-pdp .tprs-gallery__thumb.is-active {
	box-shadow: 0 0 0 1px var(--tprs-ink);
}

/* ---- Summary --------------------------------------------------------------- */
.tprs-page.tprs-pdp .tprs-pdp__info.product-information {
	margin: 0;
}
.tprs-page.tprs-pdp .tprs-pdp__info .summary {
	float: none;
	width: auto;
	margin: 0;
	padding-inline: 0; /* theme gives .entry-summary 10% side padding at >=768px, wrapping titles early */
}
/* Product carousels: ~55% of the standard section spacing, so the gap above each is cut ~45%. */
.tprs-page.tprs-pdp .tprs-section.tprs-pdp__rail {
	padding-block: calc(var(--tprs-section) * .55);
}
.tprs-page.tprs-pdp .tprs-pdp__eyebrow {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.tprs-page.tprs-pdp .tprs-pdp__eyebrow a {
	color: var(--tprs-muted);
}
.tprs-page.tprs-pdp .tprs-pdp__eyebrow a:hover {
	color: var(--tprs-ink);
}
.tprs-page.tprs-pdp .tprs-pdp__info h1.tprs-pdp__title {
	margin: 0;
	font-family: var(--tprs-serif);
	font-size: clamp(20px, 2.02vw, 30px); /* 56% (-30% then -20%) of the original clamp(36px, 3.6vw, 54px) */
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -.01em;
	color: var(--tprs-ink);
	text-wrap: balance;
}
.tprs-page.tprs-pdp .tprs-pdp__info p.price {
	margin: 14px 0 6px;
	font-size: 22px;
	color: var(--tprs-ink);
}
.tprs-page.tprs-pdp .tprs-pdp__info p.price .amount {
	font-size: 22px;
	font-weight: 500;
}
/* Code Snippet #11 prefixes variable prices with "From" (kept on product cards); not wanted in
   the buy box, which shows it until a size is chosen. */
.tprs-page.tprs-pdp .tprs-pdp__info p.price .price-prefix {
	display: none;
}
.tprs-page.tprs-pdp .tprs-pdp__info .wc-stripe-bnpl-product-message,
.tprs-page.tprs-pdp .tprs-pdp__info .afterpay-payment-info {
	margin-bottom: 4px;
	font-size: 13px;
}

/* ---- Picker ------------------------------------------------------------------ */
.tprs-page.tprs-pdp .tprs-picker {
	display: none;
	margin: 28px 0 0;
}
.tprs-page.tprs-pdp .tprs-picker.is-ready {
	display: grid;
	gap: 28px;
}
.tprs-page.tprs-pdp form.variations_form.tprs-picker-ready table.variations,
.tprs-page.tprs-pdp form.variations_form.tprs-picker-ready .reset_variations {
	display: none !important; /* replaced by the picker; still in the form and still submitted */
}
.tprs-page.tprs-pdp .tprs-picker__guide {
	margin-left: auto;
	padding: 0;
	border: 0;
	background: none;
	font: 600 14px/1.2 var(--tprs-sans);
	color: var(--tprs-ink);
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}
/* Size tabs with the size guide link on the same row (no "Size: …" heading above them). */
.tprs-page.tprs-pdp .tprs-picker__bar {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-page.tprs-pdp .tprs-picker__bar .tprs-picker__guide {
	padding-bottom: 10px;
}
.tprs-page.tprs-pdp .tprs-picker__tabs {
	display: flex;
	gap: 22px;
}
.tprs-page.tprs-pdp .tprs-picker__tabs[hidden] {
	display: none;
}
.tprs-page.tprs-pdp .tprs-picker__tab {
	margin-bottom: -1px;
	padding: 8px 0 10px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: none;
	font: 500 14px/1 var(--tprs-sans);
	color: var(--tprs-muted);
	cursor: pointer;
}
.tprs-page.tprs-pdp .tprs-picker__tab.is-active {
	border-bottom-color: var(--tprs-ink);
	color: var(--tprs-ink);
}
.tprs-page.tprs-pdp .tprs-picker__sizes select.tprs-size-select {
	display: block;
	width: 100%;
	height: 52px;
	margin: 0;
	padding: 0 40px 0 14px;
	border: 1px solid var(--tprs-line);
	border-radius: 4px;
	background-color: #fff;
	background-position: calc(100% - 16px) 50%; /* the theme's own select arrow */
	font: 500 15px/1.2 var(--tprs-sans);
	color: var(--tprs-ink);
	cursor: pointer;
}
.tprs-page.tprs-pdp .tprs-picker__sizes select.tprs-size-select:hover {
	border-color: var(--tprs-ink-soft);
}
.tprs-page.tprs-pdp .tprs-picker__note {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--tprs-ink-soft);
}
.tprs-page.tprs-pdp .tprs-picker__frames {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}
.tprs-page.tprs-pdp .tprs-frame {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 8px 8px 12px;
	border: 1px solid var(--tprs-line);
	border-radius: 4px;
	background: #fff;
	text-align: left;
	color: var(--tprs-ink);
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.tprs-page.tprs-pdp .tprs-frame:hover {
	border-color: var(--tprs-ink-soft);
}
.tprs-page.tprs-pdp .tprs-frame.is-selected {
	border-color: var(--tprs-ink);
	box-shadow: inset 0 0 0 1px var(--tprs-ink);
}
.tprs-page.tprs-pdp .tprs-frame:disabled {
	cursor: not-allowed;
	opacity: .45;
}
.tprs-page.tprs-pdp .tprs-frame__swatch {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	margin-bottom: 6px;
	background: var(--tprs-wall) center / cover no-repeat;
}
/* "Unframed": a bare sheet on the wall instead of a moulding photo */
.tprs-page.tprs-pdp .tprs-frame__swatch.is-none {
	background-image: linear-gradient(#fff, #fff);
	background-size: 52% 64%;
	background-position: center;
	box-shadow: inset 0 0 0 1px var(--tprs-line);
}
.tprs-page.tprs-pdp .tprs-frame__name {
	font-size: 14px;
	font-weight: 600;
}
.tprs-page.tprs-pdp .tprs-frame__price {
	font-size: 13px;
	color: var(--tprs-ink-soft);
}

/* ---- Add to cart --------------------------------------------------------------- */
.tprs-page.tprs-pdp form.cart {
	margin: 28px 0 0;
}
.tprs-page.tprs-pdp .woocommerce-variation-add-to-cart,
.tprs-page.tprs-pdp form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
}
.tprs-page.tprs-pdp form.cart .single_add_to_cart_button {
	flex: 1 1 100%;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 0 24px;
	border: 0;
	border-radius: 999px;
	background: var(--tprs-ink);
	font: 600 16px/1 var(--tprs-sans);
	letter-spacing: .01em;
	color: #fff;
	text-transform: none;
	transition: background-color .2s ease;
}
.tprs-page.tprs-pdp form.cart .single_add_to_cart_button:hover {
	background: #000;
	color: #fff;
}
.tprs-page.tprs-pdp form.cart .single_add_to_cart_button.disabled {
	opacity: .45;
}
.tprs-page.tprs-pdp .single_variation_wrap .woocommerce-variation-availability {
	margin-bottom: 8px;
	font-size: 14px;
}
.tprs-page.tprs-pdp .tprs-set-crosslink {
	margin: 18px 0 0;
	padding: 14px 16px;
	background: var(--tprs-band);
	font-size: 14px;
}
.tprs-page.tprs-pdp .tprs-set-crosslink a {
	color: var(--tprs-ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---- Trust + details ----------------------------------------------------------- */
.tprs-page.tprs-pdp .tprs-pdp__trust {
	display: grid;
	gap: 8px;
	margin: 24px 0 0;
	padding: 18px 0 0;
	border-top: 1px solid var(--tprs-line);
	list-style: none;
}
.tprs-page.tprs-pdp .tprs-pdp__trust li {
	position: relative;
	margin: 0;
	padding-left: 26px;
	font-size: 14px;
	color: var(--tprs-ink-soft);
}
.tprs-page.tprs-pdp .tprs-pdp__trust li::before {
	content: "";
	position: absolute;
	top: 5px;
	left: 2px;
	width: 12px;
	height: 7px;
	border-bottom: 1.5px solid var(--tprs-ink);
	border-left: 1.5px solid var(--tprs-ink);
	transform: rotate(-45deg);
}
.tprs-page.tprs-pdp .tprs-pdp__details {
	margin-top: 24px;
	border-top: 1px solid var(--tprs-line);
}
.tprs-page.tprs-pdp .tprs-acc {
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-page.tprs-pdp .tprs-acc__head {
	position: relative;
	padding: 18px 32px 18px 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--tprs-ink);
	list-style: none;
	cursor: pointer;
}
.tprs-page.tprs-pdp .tprs-acc__head::-webkit-details-marker {
	display: none;
}
.tprs-page.tprs-pdp .tprs-acc__head::before,
.tprs-page.tprs-pdp .tprs-acc__head::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4px;
	width: 12px;
	height: 1.5px;
	background: var(--tprs-ink);
	transition: transform .2s ease;
}
.tprs-page.tprs-pdp .tprs-acc__head::after {
	transform: rotate(90deg);
}
.tprs-page.tprs-pdp .tprs-acc[open] .tprs-acc__head::after {
	transform: rotate(0deg);
}
.tprs-page.tprs-pdp .tprs-acc__body {
	padding: 0 0 18px;
	font-size: 15px;
	line-height: 1.65;
	color: var(--tprs-ink-soft);
}
.tprs-page.tprs-pdp .tprs-acc__body p,
.tprs-page.tprs-pdp .tprs-acc__body ul {
	margin: 0 0 10px;
}
.tprs-page.tprs-pdp .tprs-acc__body ul {
	padding-left: 18px;
}
.tprs-page.tprs-pdp .tprs-acc__body a {
	color: var(--tprs-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ---- Below the fold ----------------------------------------------------------- */
.tprs-page.tprs-pdp .tprs-reviews-section {
	max-width: var(--tprs-wrap);
	margin: 0 auto;
	padding: var(--tprs-section) var(--tprs-gutter) 0;
	border-top: 1px solid var(--tprs-line);
}
.tprs-page.tprs-pdp .tprs-reviews-section h2.products-title {
	margin: 0 0 28px;
	/* .products-title also gets a top rule + 32px padding (theme app.css, Simple CSS), which drew a
	   second line under the section's own, with an empty band between them. */
	padding-top: 0;
	border-top: 0;
	font-family: var(--tprs-serif);
	font-size: clamp(34px, 4.2vw, 56px);
	font-weight: 400;
	line-height: 1.02;
	text-align: left;
	text-transform: none;
	letter-spacing: 0;
}

/* ---- Sticky add to cart (phones) ---------------------------------------------- */
.tprs-stickybar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--tprs-line);
	background: #fff;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, .06);
}
.tprs-stickybar[hidden] {
	display: none;
}
.tprs-stickybar__text {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
}
.tprs-stickybar__price {
	font-size: 16px;
	font-weight: 600;
	color: var(--tprs-ink);
}
.tprs-stickybar__choice {
	overflow: hidden;
	font-size: 12px;
	color: var(--tprs-muted);
	white-space: nowrap;
	text-overflow: ellipsis;
}
.tprs-stickybar__btn {
	flex-shrink: 0;
	min-height: 48px;
	padding: 0 22px;
	border: 0;
	border-radius: 999px;
	background: var(--tprs-ink);
	font: 600 15px/1 var(--tprs-sans);
	color: #fff;
	cursor: pointer;
}
@media (min-width: 901px) {
	.tprs-stickybar {
		display: none !important; /* desktop keeps the summary column in view instead */
	}
}

/* ---- Size guide ---------------------------------------------------------------- */
.tprs-guide {
	width: min(760px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	padding: 0;
	border: 0;
	background: #fff;
	color: var(--tprs-ink);
}
.tprs-guide::backdrop {
	background: rgba(20, 16, 12, .55);
}
.tprs-guide__inner {
	padding: clamp(20px, 3vw, 32px);
}
.tprs-guide__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.tprs-guide__title {
	margin: 0;
	font-family: var(--tprs-serif);
	font-size: 36px;
	font-weight: 400;
}
.tprs-guide__close {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tprs-band);
	font-size: 24px;
	line-height: 1;
	color: var(--tprs-ink);
	cursor: pointer;
}
.tprs-guide__intro {
	margin: 6px 0 16px;
	font-size: 14px;
	color: var(--tprs-ink-soft);
}
.tprs-guide__stage svg {
	display: block;
	width: 100%;
	height: auto;
}
.tprs-guide .g-wall { fill: #ebe7e1; }
.tprs-guide .g-floor { stroke: #b9b1a8; stroke-width: .8; }
.tprs-guide .g-sofa { fill: #d8d1c8; stroke: #8f867c; stroke-width: .6; }
.tprs-guide .g-seat { stroke: #8f867c; stroke-width: .5; }
.tprs-guide .g-leg { fill: #8f867c; }
.tprs-guide .g-art { fill: #fff; stroke: #b9b1a8; stroke-width: .6; }
.tprs-guide .g-art--framed { stroke: #1f1b18; stroke-width: 1.6; }
.tprs-guide .g-label { font: 600 5px var(--tprs-sans); fill: #1f1b18; }
.tprs-guide .g-label--muted { font-weight: 400; fill: #6f665e; }
.tprs-guide__sizes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 16px;
}
.tprs-guide__size {
	min-height: 34px;
	padding: 0 12px;
	border: 1px solid var(--tprs-line);
	border-radius: 999px;
	background: #fff;
	font: 500 13px/1 var(--tprs-sans);
	color: var(--tprs-ink);
	cursor: pointer;
}
.tprs-guide__size.is-active {
	border-color: var(--tprs-ink);
	background: var(--tprs-ink);
	color: #fff;
}

/* ---- Product page on smaller screens -------------------------------------------- */
@media (max-width: 900px) {
	.tprs-page.tprs-pdp .tprs-pdp__main {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.tprs-page.tprs-pdp .tprs-pdp__gallery {
		position: static;
		margin-inline: calc(var(--tprs-gutter) * -1); /* stage runs edge to edge on phones */
	}
	.tprs-page.tprs-pdp .tprs-gallery__thumbs {
		display: none; /* swipe instead */
	}
	.tprs-page.tprs-pdp .tprs-gallery--thumbs {
		padding-left: 0;
	}
	.tprs-page.tprs-pdp .tprs-gallery__arrow {
		position: absolute;
		top: 50%;
		z-index: 2;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		margin-top: -18px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: rgba(255, 255, 255, .85);
		box-shadow: 0 1px 3px rgba(0, 0, 0, .12);
		cursor: pointer;
		transition: opacity .2s ease;
	}
	.tprs-page.tprs-pdp .tprs-gallery__arrow--prev {
		left: 12px;
	}
	.tprs-page.tprs-pdp .tprs-gallery__arrow--next {
		right: 12px;
	}
	.tprs-page.tprs-pdp .tprs-gallery__arrow::before { /* chevron */
		content: "";
		width: 8px;
		height: 8px;
		border-top: 1.5px solid var(--tprs-ink);
		border-right: 1.5px solid var(--tprs-ink);
		transform: translateX(-2px) rotate(45deg);
	}
	.tprs-page.tprs-pdp .tprs-gallery__arrow--prev::before {
		transform: translateX(2px) rotate(-135deg);
	}
	.tprs-page.tprs-pdp .tprs-gallery__progress {
		position: relative;
		display: block;
		height: 3px;
		margin: 14px var(--tprs-gutter) 0;
		overflow: hidden;
	}
	.tprs-page.tprs-pdp .tprs-gallery__progress::before { /* the thin line */
		content: "";
		position: absolute;
		top: 1px;
		right: 0;
		left: 0;
		height: 1px;
		background: var(--tprs-line);
	}
	.tprs-page.tprs-pdp .tprs-gallery__progress > span { /* the thicker segment, one image wide */
		position: absolute;
		top: 0;
		left: 0;
		height: 3px;
		background: var(--tprs-ink);
		will-change: transform;
	}
	/* Frame options: one row of swatches across the full width, name and price underneath. */
	.tprs-page.tprs-pdp .tprs-picker__frames {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 12px;
	}
	.tprs-page.tprs-pdp .tprs-frame {
		gap: 2px;
		padding: 0;
		border: 0;
		background: none;
		box-shadow: none;
	}
	.tprs-page.tprs-pdp .tprs-frame.is-selected {
		box-shadow: none;
	}
	.tprs-page.tprs-pdp .tprs-frame__swatch {
		margin-bottom: 4px;
		border-radius: 2px;
		outline: 1px solid var(--tprs-line);
	}
	.tprs-page.tprs-pdp .tprs-frame.is-selected .tprs-frame__swatch {
		outline: 2px solid var(--tprs-ink);
		outline-offset: 2px;
	}
	.tprs-page.tprs-pdp .tprs-frame__name {
		font-size: 12px;
	}
	.tprs-page.tprs-pdp .tprs-frame__price {
		font-size: 11px;
	}
	.tprs-page.tprs-pdp {
		padding-bottom: 80px; /* room for the sticky bar */
	}
}
@media (prefers-reduced-motion: reduce) {
	.tprs-page.tprs-pdp * {
		transition: none !important;
	}
}

/* The theme prints `h1,h2,h3,h4,h5,h6 { font-family: Open Sans !important }` (and the same for
   .products-title) inline, which beat every serif heading above. These headings are meant to be
   Instrument Serif, so they need !important too. */
.tprs-page .tprs-title,
.tprs-hub .tprs-hubhead__title,
.tprs-banner .tprs-banner__title,
.tprs-page.tprs-pdp .tprs-pdp__info h1.tprs-pdp__title,
.tprs-home .wp-block-cover.tprs-hero .tprs-hero__title,
.tprs-home .wp-block-media-text.tprs-story .tprs-story__title,
.tprs-home .tprs-usp__title,
.tprs-guide .tprs-guide__title,
.tprs-page.tprs-pdp .tprs-reviews-section h2.products-title {
	font-family: var(--tprs-serif) !important;
}

/* ==========================================================================
   Bestsellers / New Arrivals (tprs/hub-list.php)
   ========================================================================== */
.tprs-hub--list .tprs-listbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 32px;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-hub--list .tprs-listbar__count {
	font-size: 14px;
	color: var(--tprs-muted);
}
.tprs-hub--list .woocommerce-ordering {
	margin: 0;
}
.tprs-hub--list .woocommerce-ordering select.orderby {
	min-height: 40px;
	margin: 0;
	padding: 0 34px 0 16px;
	border: 1px solid #d9d4ce;
	border-radius: 999px;
	font-size: 14px;
	background-color: #fff;
}
.tprs-page .tprs-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 44px 20px;
}
@media (max-width: 1067px) {
	.tprs-page .tprs-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.tprs-page .tprs-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 12px;
	}
}
.tprs-page .woocommerce-pagination {
	margin-top: 56px;
	text-align: center;
}
.tprs-page .woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	gap: 6px;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.tprs-page .woocommerce-pagination ul.page-numbers li {
	margin: 0;
	border: 0;
}
.tprs-page .woocommerce-pagination .page-numbers a,
.tprs-page .woocommerce-pagination .page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border: 1px solid var(--tprs-line);
	border-radius: 999px;
	font-size: 14px;
	color: var(--tprs-ink);
	background: #fff;
}
.tprs-page .woocommerce-pagination .page-numbers span.current {
	border-color: var(--tprs-ink);
	background: var(--tprs-ink);
	color: #fff;
}

/* ==========================================================================
   Cart & checkout (WooCommerce blocks) — VISUAL ONLY.
   Colours, type, borders, radii and spacing between sections. Nothing here hides, moves or
   re-lays-out a field, and input padding is left alone (the floating labels depend on it).
   Scoped to body.woocommerce-cart / body.woocommerce-checkout.
   ========================================================================== */
body.woocommerce-cart,
body.woocommerce-checkout {
	--tprs-ink: #1f1b18;
	--tprs-ink-soft: #5b524a;
	--tprs-muted: #6f665e;
	--tprs-line: #e5dfd8;
	--tprs-band: #f7f4f0;
	--tprs-serif: "Instrument Serif", "Iowan Old Style", "Times New Roman", serif;
}
body.woocommerce-cart .tprs-cohead,
body.woocommerce-checkout .tprs-cohead {
	padding: clamp(24px, 4vw, 48px) 0 clamp(20px, 3vw, 32px);
}
body.woocommerce-cart .tprs-cohead .tprs-eyebrow,
body.woocommerce-checkout .tprs-cohead .tprs-eyebrow {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--tprs-muted);
}
body.woocommerce-cart .tprs-cohead h1.tprs-cohead__title,
body.woocommerce-checkout .tprs-cohead h1.tprs-cohead__title {
	margin: 0;
	font-family: var(--tprs-serif) !important; /* theme forces Open Sans on headings with !important */
	font-size: clamp(44px, 5.5vw, 76px);
	font-weight: 400;
	line-height: .98;
	letter-spacing: -.01em;
	color: var(--tprs-ink);
}

/* Shared: text colour, links, section headings */
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
	color: var(--tprs-ink);
}
body.woocommerce-cart .wp-block-woocommerce-cart a,
body.woocommerce-checkout .wp-block-woocommerce-checkout a {
	color: var(--tprs-ink);
	text-underline-offset: 3px;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block h2,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--tprs-serif) !important;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tprs-ink);
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__totals-title {
	font-size: 28px;
	line-height: 1.1;
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block h2,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2 {
	font-size: clamp(32px, 3.6vw, 48px);
	line-height: 1.05;
}

/* Cart items */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items__header th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	color: var(--tprs-muted);
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items td,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-items th {
	border-color: var(--tprs-line);
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__image img {
	background: #ebe7e1;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-name {
	font-size: 16px;
	font-weight: 600;
	color: var(--tprs-ink);
	text-decoration: none;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-product-metadata {
	font-size: 13px;
	color: var(--tprs-ink-soft);
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector {
	border-color: var(--tprs-line);
	border-radius: 999px;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-quantity-selector::after {
	border-color: var(--tprs-line);
	border-radius: 999px;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
	font-size: 13px;
	color: var(--tprs-muted);
}

/* Totals and order summary panels */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-sidebar {
	border-radius: 0;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title {
	border-color: var(--tprs-line);
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-totals-item__label {
	color: var(--tprs-ink-soft);
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 18px;
	font-weight: 600;
	color: var(--tprs-ink);
}

/* Buttons: proceed to checkout, place order, return links stay as they are */
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-button__link {
	min-height: 56px;
	border: 0;
	border-radius: 999px;
	background: var(--tprs-ink);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .01em;
	text-transform: none;
	color: #fff;
	transition: background-color .2s ease;
}
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	background: #000;
	color: #fff;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button:disabled {
	opacity: .5;
}

/* Form controls: border, radius and focus only */
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-text-input input {
	border-color: #d9d4ce;
	border-radius: 6px;
	color: var(--tprs-ink);
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-textarea:focus,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-text-input input:focus {
	border-color: var(--tprs-ink);
	box-shadow: 0 0 0 1px var(--tprs-ink);
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-step {
	margin-bottom: 40px;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-step__title {
	font-size: 28px;
	line-height: 1.1;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-step__description {
	color: var(--tprs-ink-soft);
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 1.5px var(--tprs-ink);
	border-radius: 6px;
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked {
	border-color: var(--tprs-ink);
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-radio-control__input:checked::before {
	background: var(--tprs-ink);
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: var(--tprs-ink);
	background: var(--tprs-ink);
}
body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: #fff;
}
@media (prefers-reduced-motion: reduce) {
	body.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit-button,
	body.woocommerce-checkout .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button {
		transition: none;
	}
}

/* ==========================================================================
   Ordinary pages, FAQ, search, 404 (tprs/page.php, tprs/search.php, tprs/404.php)
   ========================================================================== */
.tprs-page.tprs-doc {
	padding-bottom: var(--tprs-section);
}
.tprs-doc .tprs-doc__head {
	padding-top: clamp(32px, 5vw, 64px);
}
.tprs-doc .tprs-hubhead__intro a,
.tprs-hub .tprs-hubhead__intro a,
.tprs-page .tprs-lede a {
	color: var(--tprs-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Readable column for page content; wide/full blocks (About's media-text) can still go wider. */
.tprs-doc .tprs-prose {
	max-width: 760px;
	margin: 0 auto;
	padding-top: clamp(8px, 2vw, 24px);
	font-size: 17px;
	line-height: 1.7;
	color: var(--tprs-ink-soft);
}
.tprs-doc .tprs-prose > .alignwide,
.tprs-doc .tprs-prose > .wp-block-media-text.alignwide {
	width: auto;
	max-width: none;
	margin-inline: calc((min(100vw, var(--tprs-wrap)) - 2 * var(--tprs-gutter) - 760px) / -2);
}
.tprs-doc .tprs-prose > .alignfull {
	width: auto;
	max-width: none;
	margin-inline: calc((100vw - 760px) / -2);
}
@media (max-width: 860px) {
	.tprs-doc .tprs-prose > .alignwide,
	.tprs-doc .tprs-prose > .wp-block-media-text.alignwide,
	.tprs-doc .tprs-prose > .alignfull {
		margin-inline: 0;
	}
}
.tprs-doc .tprs-prose p,
.tprs-doc .tprs-prose ul,
.tprs-doc .tprs-prose ol {
	margin: 0 0 1.1em;
}
.tprs-doc .tprs-prose h1,
.tprs-doc .tprs-prose h2,
.tprs-doc .tprs-prose h3 {
	margin: 1.6em 0 .5em;
	font-family: var(--tprs-serif) !important; /* theme forces Open Sans on headings */
	font-weight: 400;
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tprs-ink);
}
.tprs-doc .tprs-prose h1 { font-size: clamp(40px, 5vw, 64px); }
.tprs-doc .tprs-prose h2 { font-size: clamp(30px, 3.4vw, 44px); }
.tprs-doc .tprs-prose h3 { font-size: 26px; }
.tprs-doc .tprs-prose h4,
.tprs-doc .tprs-prose h5,
.tprs-doc .tprs-prose h6 {
	margin: 1.4em 0 .4em;
	font-size: 17px;
	font-weight: 600;
	color: var(--tprs-ink);
}
.tprs-doc .tprs-prose strong,
.tprs-doc .tprs-prose b {
	color: var(--tprs-ink);
}
.tprs-doc .tprs-prose a {
	color: var(--tprs-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}
/* Several pages wrap their whole text in a white cover block; drop the cover's height and the
   theme's 13% padding so the text sits in the normal column. */
.tprs-doc .tprs-prose .wp-block-cover {
	min-height: 0 !important;
	margin: 0;
	padding: 0 !important;
	overflow: visible;
}
.tprs-doc .tprs-prose .wp-block-cover .wp-block-cover__inner-container {
	width: 100%;
	max-width: none;
	color: inherit;
}
/* Policy pages open with their own title as the first paragraph or heading (possibly in a cover) */
.tprs-doc .tprs-prose--own-title {
	padding-top: clamp(32px, 5vw, 64px);
}
.tprs-doc .tprs-prose--own-title > p:first-child,
.tprs-doc .tprs-prose--own-title > .wp-block-heading:first-child,
.tprs-doc .tprs-prose--own-title > .wp-block-cover:first-child .wp-block-cover__inner-container > :first-child {
	margin: 0 0 .5em;
	font-family: var(--tprs-serif) !important;
	font-size: clamp(48px, 7vw, 96px) !important;
	font-weight: 400 !important;
	line-height: .98;
	letter-spacing: -.015em;
	color: var(--tprs-ink);
}
.tprs-doc .tprs-prose .wp-block-media-text {
	margin: 2.5em 0;
	background-color: var(--tprs-band) !important; /* replaces the old flat grey #f2f2f2 */
}
.tprs-doc .tprs-prose .wp-block-media-text .wp-block-media-text__content {
	padding: clamp(24px, 5%, 56px);
}
.tprs-doc .tprs-prose .wp-block-image img {
	height: auto;
}
.tprs-doc .tprs-prose input[type="text"],
.tprs-doc .tprs-prose input[type="email"],
.tprs-doc .tprs-prose input[type="tel"],
.tprs-doc .tprs-prose textarea,
.tprs-doc .tprs-prose select {
	border: 1px solid #d9d4ce;
	border-radius: 6px;
}
.tprs-doc .tprs-prose input:focus,
.tprs-doc .tprs-prose textarea:focus,
.tprs-doc .tprs-prose select:focus {
	border-color: var(--tprs-ink);
	box-shadow: 0 0 0 1px var(--tprs-ink);
	outline: none;
}
.tprs-doc .tprs-prose button[type="submit"],
.tprs-doc .tprs-prose input[type="submit"] {
	min-height: 52px;
	padding: 0 32px;
	border: 0;
	border-radius: 999px;
	background: var(--tprs-ink);
	font-weight: 600;
	color: #fff;
}

/* FAQ: sections of expandable questions (same accordion as the product page) */
.tprs-doc--faq .tprs-faq {
	display: grid;
	gap: clamp(40px, 5vw, 64px);
	max-width: 860px;
	padding-top: clamp(8px, 2vw, 24px);
}
.tprs-doc--faq .tprs-faq__title {
	margin: 0 0 12px;
	font-family: var(--tprs-serif) !important;
	font-size: clamp(30px, 3.4vw, 44px);
	font-weight: 400;
	line-height: 1.1;
	text-transform: none;
	color: var(--tprs-ink);
}
.tprs-doc--faq .tprs-faq__list {
	border-top: 1px solid var(--tprs-line);
}
.tprs-page .tprs-acc {
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-page .tprs-acc__head {
	position: relative;
	padding: 20px 40px 20px 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--tprs-ink);
	list-style: none;
	cursor: pointer;
}
.tprs-page .tprs-acc__head::-webkit-details-marker {
	display: none;
}
.tprs-page .tprs-acc__head::before,
.tprs-page .tprs-acc__head::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 6px;
	width: 13px;
	height: 1.5px;
	background: var(--tprs-ink);
	transition: transform .2s ease;
}
.tprs-page .tprs-acc__head::after {
	transform: rotate(90deg);
}
.tprs-page .tprs-acc[open] .tprs-acc__head::after {
	transform: rotate(0deg);
}
.tprs-page .tprs-acc__body {
	max-width: 68ch;
	padding: 0 0 22px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--tprs-ink-soft);
}
.tprs-page .tprs-acc__body p {
	margin: 0 0 10px;
}
.tprs-page .tprs-acc__body a {
	color: var(--tprs-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Search form (search results + 404) */
.tprs-page .tprs-searchform {
	display: flex;
	gap: 8px;
	max-width: 560px;
	margin: 28px 0 0;
}
.tprs-page .tprs-searchform input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 52px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid #d9d4ce;
	border-radius: 999px;
	font-size: 16px;
	color: var(--tprs-ink);
	background: #fff;
}
.tprs-page .tprs-searchform input[type="search"]:focus {
	border-color: var(--tprs-ink);
	box-shadow: 0 0 0 1px var(--tprs-ink);
	outline: none;
}
.tprs-page .tprs-searchform button {
	height: 52px;
	padding: 0 26px;
	border: 0;
	border-radius: 999px;
	background: var(--tprs-ink);
	font: 600 15px/1 var(--tprs-sans);
	color: #fff;
	cursor: pointer;
}
.tprs-hub--search .tprs-results {
	margin-top: clamp(48px, 6vw, 80px);
}
.tprs-hub--search .tprs-results__title {
	margin-bottom: 20px;
}
.tprs-hub--search .tprs-results__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--tprs-line);
}
.tprs-hub--search .tprs-results__list li {
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid var(--tprs-line);
}
.tprs-hub--search .tprs-results__list a {
	font-size: 18px;
	font-weight: 600;
	color: var(--tprs-ink);
}
.tprs-hub--search .tprs-results__list p {
	margin: 6px 0 0;
	font-size: 15px;
	color: var(--tprs-ink-soft);
}

/* 404 */
.tprs-hub--404 .tprs-hubhead {
	padding-top: clamp(40px, 6vw, 88px);
}
.tprs-hub--404 .tprs-404__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
}
.tprs-hub--404 a.tprs-chip {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 18px;
	border: 1px solid #d9d4ce;
	border-radius: 999px;
	font-size: 14px;
	color: var(--tprs-ink);
	background: #fff;
}
.tprs-hub--404 a.tprs-chip:hover {
	border-color: var(--tprs-ink);
	color: var(--tprs-ink);
}

/* ==========================================================================
   Room pages (2026-10-31): grid with size contrast. See inc/tprs-room-grid.php.
   Four columns on desktop with a large tile, two wide and two high, every few rows; two columns
   below the theme's 1068px breakpoint, where a large tile takes the full width.
   ========================================================================== */
.tprs-roomgrid .tprs-archive ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
/* the theme's clearfix pseudo-elements would otherwise take up grid cells */
.tprs-roomgrid .tprs-archive ul.products::before,
.tprs-roomgrid .tprs-archive ul.products::after {
	display: none;
}
.tprs-roomgrid .tprs-archive ul.products > li.product.small-12 {
	display: flex;
	flex: none;
	width: auto;
	max-width: none;
}
.tprs-roomgrid .tprs-archive ul.products > li.product > .thb-product-inner-wrapper {
	display: flex;
	flex-direction: column;
	width: 100%;
}
.tprs-roomgrid .tprs-archive ul.products > li.tprs-tile--left {
	grid-column: 1 / span 2;
	grid-row: span 2;
}
.tprs-roomgrid .tprs-archive ul.products > li.tprs-tile--right {
	grid-column: 3 / span 2;
	grid-row: span 2;
}
.tprs-roomgrid .tprs-archive li.tprs-tile figure.product-thumbnail {
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden;
}
.tprs-roomgrid .tprs-archive li.tprs-tile .thb-product-inner-content {
	flex: none;
}
.tprs-roomgrid .tprs-archive li.tprs-tile figure.product-thumbnail > a {
	position: absolute;
	inset: 0;
	display: block;
}
.tprs-roomgrid .tprs-archive li.tprs-tile figure.product-thumbnail img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* many room photos have a white band round the edge in the file: zoom past it on the lead image */
.tprs-roomgrid .tprs-archive li.product figure.product-thumbnail {
	overflow: hidden;
}
.tprs-roomgrid .tprs-archive li.product figure.product-thumbnail img:first-child {
	transform: scale(1.16);
}

/* Closing tile: fills the end of the last row */
.tprs-roomgrid .tprs-archive ul.products > li.tprs-roomend {
	display: none;
	padding: 0 15px;
	margin-bottom: 30px;
	list-style: none;
}
.tprs-roomgrid .tprs-archive ul.products > li.tprs-roomend--d1,
.tprs-roomgrid .tprs-archive ul.products > li.tprs-roomend--d2,
.tprs-roomgrid .tprs-archive ul.products > li.tprs-roomend--d3 {
	display: block;
}
.tprs-roomend--d1 { grid-column: span 1; }
.tprs-roomend--d2 { grid-column: span 2; }
.tprs-roomend--d3 { grid-column: span 3; }
.tprs-roomend a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 10px;
	height: 100%;
	padding: 24px;
	border-radius: 16px;
	background: var(--tprs-band);
	color: var(--tprs-ink);
	text-align: center;
}
.tprs-roomend__text {
	font-family: var(--tprs-serif);
	font-size: clamp(22px, 2.2vw, 30px);
	line-height: 1.15;
}
.tprs-roomend__link {
	font-size: 14px;
	font-weight: 600;
}
.tprs-roomend a:hover .tprs-roomend__link {
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 1067px) {
	.tprs-roomgrid .tprs-archive ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.tprs-roomgrid .tprs-archive ul.products > li.tprs-tile--left,
	.tprs-roomgrid .tprs-archive ul.products > li.tprs-tile--right {
		grid-column: 1 / -1;
		grid-row: auto;
	}
	.tprs-roomgrid .tprs-archive li.tprs-tile figure.product-thumbnail {
		flex: none;
		aspect-ratio: 1;
	}
	.tprs-roomgrid .tprs-archive ul.products > li.tprs-roomend {
		display: none;
	}
	.tprs-roomgrid .tprs-archive ul.products > li.tprs-roomend--m1 {
		display: block;
		grid-column: span 1;
	}
}

/* ==========================================================================
   Site menu (2026-10-31). See inc/tprs-nav.php.
   ========================================================================== */

/* The panel hangs off the full header, not the nav column */
@media (min-width: 1068px) {
	.header-logo-row,
	.header-logo-row > .row,
	.header-logo-row .columns,
	.thb-navbar,
	nav.full-menu {
		position: static;
	}
}

/* ---- Top bar ---------------------------------------------------------------- */
.tprs-nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: clamp(14px, 2.4vw, 34px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.tprs-nav__top {
	position: static;
	margin: 0;
	list-style: none;
}
.tprs-nav__top > a {
	display: block;
	padding: 10px 0;
	color: var(--tprs-ink);
	font-family: var(--tprs-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	box-shadow: inset 0 -2px 0 transparent;
}
.tprs-nav__top:hover > a,
.tprs-nav__top:focus-within > a,
.tprs-nav__top.is-open > a {
	box-shadow: inset 0 -2px 0 var(--tprs-ink);
}

/* ---- Panel ------------------------------------------------------------------ */
.tprs-nav__panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 50;
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr) auto;
	visibility: hidden;
	opacity: 0;
	background: #fff;
	border-top: 1px solid var(--tprs-line);
	color: var(--tprs-ink);
	font-family: var(--tprs-sans);
	transition: opacity .12s ease, visibility 0s linear .12s;
}
.tprs-nav__top:hover > .tprs-nav__panel,
.tprs-nav__top:focus-within > .tprs-nav__panel,
.tprs-nav__top.is-open > .tprs-nav__panel {
	visibility: visible;
	opacity: 1;
	transition: opacity .12s ease;
}
/* keeps the pointer on the menu while moving down from the label to the panel */
.tprs-nav__panel::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 14px;
}
/* dims the page, so the panel reads as a layer rather than more page */
.tprs-nav__panel::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	height: 100vh;
	background: rgba(31, 27, 24, .28);
	pointer-events: none;
}
.tprs-nav__rail {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 32px 24px 36px var(--tprs-gutter);
	background: var(--tprs-band);
}
.tprs-nav__rail a {
	color: var(--tprs-ink);
	font-size: 12px;
	white-space: nowrap;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.tprs-nav__rail a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.tprs-nav__cols {
	display: flex;
	gap: clamp(32px, 4vw, 72px);
	padding: 32px clamp(24px, 3vw, 48px) 36px;
}
.tprs-nav__head {
	display: block;
	margin-bottom: 10px;
	white-space: nowrap;
	color: var(--tprs-ink);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.tprs-nav__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.tprs-nav__list li {
	margin: 0;
	list-style: none;
}
.tprs-nav__list a {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 6px 0;
	color: var(--tprs-ink);
	font-size: 14px;
	line-height: 1.3;
	white-space: nowrap;
}
.tprs-nav__list a:hover,
.tprs-nav__card:hover .tprs-nav__cardname {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.tprs-nav__list--two {
	columns: 2;
	column-gap: 32px;
}
.tprs-nav__list--two li {
	break-inside: avoid;
}
.tprs-nav__dot {
	flex: none;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(31, 27, 24, .12);
}
.tprs-nav__cards {
	display: grid;
	grid-template-columns: repeat(2, clamp(150px, 15vw, 240px));
	gap: 16px;
	padding: 32px var(--tprs-gutter) 36px 0;
}
.tprs-nav__cards--three {
	grid-template-columns: repeat(3, clamp(130px, 13vw, 210px));
}
.tprs-nav__card {
	display: block;
	min-width: 0;
	color: var(--tprs-ink);
}
.tprs-nav__cardimg {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--tprs-tile);
}
.tprs-nav__cardimg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.tprs-nav__cardname {
	display: block;
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.3;
}
/* small laptops: the bar has to clear the search box, and the panel keeps one photo */
@media (max-width: 1280px) {
	.tprs-nav__top > a {
		font-size: 11px;
	}
	.tprs-nav__panel {
		grid-template-columns: 190px minmax(0, 1fr) auto;
	}
	.tprs-nav__rail {
		padding-right: 12px;
	}
	.tprs-nav__cols {
		gap: 28px;
		padding-right: 24px;
		padding-left: 24px;
	}
	.tprs-nav__cards,
	.tprs-nav__cards--three {
		grid-template-columns: clamp(150px, 15vw, 240px);
	}
	.tprs-nav__cards .tprs-nav__card:nth-child(n+2) {
		display: none;
	}
}

/* ---- Phone menu: #mobile-menu to outrank the theme's app.css ------------------- */
#mobile-menu .tprs-mnav {
	color: var(--tprs-ink);
	font-family: var(--tprs-sans);
}
#mobile-menu .tprs-mnav__quick {
	display: flex;
	flex-direction: column;
	padding: 10px 24px;
	background: var(--tprs-band);
}
#mobile-menu .tprs-mnav__quick a {
	padding: 13px 0;
	color: var(--tprs-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.3;
	text-transform: uppercase;
}
#mobile-menu .tprs-mnav__group {
	border-bottom: 1px solid var(--tprs-line);
}
#mobile-menu .tprs-mnav__group summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 60px;
	padding: 0 24px;
	color: var(--tprs-ink);
	font-size: 18px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
#mobile-menu .tprs-mnav__group summary::-webkit-details-marker {
	display: none;
}
#mobile-menu .tprs-mnav__group summary::after {
	content: "";
	width: 8px;
	height: 8px;
	margin: -4px 3px 0 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}
#mobile-menu .tprs-mnav__group[open] summary::after {
	margin-top: 4px;
	transform: rotate(-135deg);
}
#mobile-menu .tprs-mnav__body {
	padding: 0 24px 16px;
}
#mobile-menu .tprs-mnav__all {
	display: block;
	padding: 10px 0;
	color: var(--tprs-ink);
	font-size: 15px;
	font-weight: 700;
}
#mobile-menu .tprs-mnav .tprs-nav__list a {
	min-height: 44px;
	padding: 0;
	color: var(--tprs-ink);
	font-size: 15px;
}
#mobile-menu .tprs-mnav .tprs-nav__list--two {
	column-gap: 16px;
}
#mobile-menu .tprs-mnav__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding: 20px 24px 28px;
}
#mobile-menu .tprs-mnav .tprs-nav__cardname {
	color: var(--tprs-ink);
}

/* ==========================================================================
   Art Sets (2026-10-31). See inc/tprs-sets.php.
   ========================================================================== */

/* Art Sets pages and the Shop by Room page: set photos are square scenes, so they fill a square
   tile. Everywhere else a set is a standard card, like any other product. */
.tprs-hub--sets .tprs-card--set .tprs-card__media,
.tprs-hub--room .tprs-card--set .tprs-card__media {
	aspect-ratio: 1;
}
.tprs-page.tprs-hub--sets .tprs-card--set .tprs-card__media img.tprs-card__img,
.tprs-page.tprs-hub--room .tprs-card--set .tprs-card__media img.tprs-card__img {
	padding: 0;
	object-fit: cover;
}
.tprs-page .tprs-card__save {
	display: block;
	margin-top: 2px;
	color: var(--tprs-muted);
	font-size: 13px;
	font-weight: 400;
}
.tprs-hub--sets .tprs-shopbar {
	margin-bottom: 32px;
}

/* Set pages: set photos are square full scenes, so the gallery is square too and they fill it */
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery {
	--tprs-thumb-w: min(5.7vw, 82px) !important;
}
/* thumbnails share out the height of the square stage at about 5:7, as they do on print pages */
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery:has(.tprs-gallery__thumb:nth-child(6)) {
	--tprs-thumb-w: min(4vw, 58px) !important;
}
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image {
	height: auto;
	aspect-ratio: 1;
}
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery .tprs-gallery__track > .woocommerce-product-gallery__image img,
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery .tprs-gallery__track > .woocommerce-product-gallery__image:first-child:not(.is-framed) img,
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image:first-child:not(.is-framed) img,
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery.has-stage-h .tprs-gallery__track > .woocommerce-product-gallery__image:first-child img {
	transform: none;
	object-fit: cover;
}
.tprs-page.tprs-pdp .product-type-tprs_set .tprs-gallery.has-stage-h .tprs-gallery__thumb {
	flex: 1 1 0;
	min-height: 0;
	aspect-ratio: auto;
}
.tprs-picker__group[hidden] {
	display: none;
}
/* Set frame tiles are labels around a hidden radio; print pages use buttons */
.tprs-page.tprs-pdp label.tprs-frame {
	position: relative;
	margin: 0;
}
.tprs-page.tprs-pdp label.tprs-frame input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.tprs-page.tprs-pdp label.tprs-frame input:focus-visible + .tprs-frame__swatch {
	outline: 2px solid var(--tprs-ink);
	outline-offset: 2px;
}
.tprs-page.tprs-pdp label.tprs-frame.is-disabled {
	cursor: not-allowed;
	opacity: .45;
}
.tprs-page.tprs-pdp form.tprs-set-form {
	display: block !important; /* the theme lays form.cart out as a row */
}
.tprs-page.tprs-pdp .tprs-set-form .tprs-picker {
	margin-bottom: 20px;
}
.tprs-page.tprs-pdp .tprs-set-form .tprs-set-actions {
	display: block;
}

/* Print pages: the set this print belongs to */
.tprs-page.tprs-pdp a.tprs-set-crosslink {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 18px 0 0;
	padding: 10px;
	background: var(--tprs-band);
	color: var(--tprs-ink);
	font-size: 14px;
	line-height: 1.35;
	text-decoration: none;
}
.tprs-page.tprs-pdp a.tprs-set-crosslink img {
	flex: none;
	width: 72px;
	height: 72px;
	object-fit: cover;
}
.tprs-page.tprs-pdp .tprs-set-crosslink__eyebrow {
	display: block;
	color: var(--tprs-muted);
	font-size: 13px;
}
.tprs-page.tprs-pdp .tprs-set-crosslink__name {
	display: block;
	font-weight: 600;
}
.tprs-page.tprs-pdp a.tprs-set-crosslink:hover .tprs-set-crosslink__name {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Menu: the Art Sets panel */
.tprs-nav__note {
	max-width: 240px;
	margin: 0 0 12px;
	color: var(--tprs-ink);
	font-size: 14px;
	line-height: 1.45;
}
.tprs-nav__cards--sets {
	grid-template-columns: repeat(4, clamp(130px, 13vw, 210px));
}
.tprs-nav__cards--sets .tprs-nav__cardimg {
	aspect-ratio: 1;
}
@media (max-width: 1280px) {
	.tprs-nav__cards--sets {
		grid-template-columns: repeat(2, clamp(130px, 14vw, 210px));
	}
	.tprs-nav__cards--sets .tprs-nav__card:nth-child(2) {
		display: block;
	}
}

/* Shop intro under the page title */
.tprs-shop-intro {
	max-width: 34em;
	margin: -12px auto 20px;
	padding: 0 16px;
	text-align: center;
	color: var(--tprs-ink-soft);
	font-size: 16px;
	line-height: 1.5;
}
