/*
 * Home page (inc/home.php). Figma "Sharp / Approved" 2148:28064: hero slideshow 28129, category
 * explorer "D2 Manifesto" 28335, testimonials "D8 Testimonial" 28533.
 */

/* ── Hero slideshow (1280 × 518) ─────────────────────────────────────────── */
.tmh-slides {
	position: relative;
	width: 100%;
	height: 518px;
	overflow: hidden;
	background: #2A2622;
}
.tmh-track {
	position: absolute;
	inset: 0;
}
.tmh-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 900ms var(--m-ease, cubic-bezier(.2, .7, .2, 1));
}
.tmh-slide.is-on {
	opacity: 1;
}
body .tmh-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.04);
	transition: transform 6600ms linear;
}
.tmh-slide.is-on img {
	transform: scale(1);
}
/* A soft shade under the label and line so they read on any photo. */
.tmh-slides::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 140px;
	background: linear-gradient(to top, rgba(0, 0, 0, .38), transparent);
	pointer-events: none;
}
.tmh-bar {
	position: absolute;
	right: 24px;
	bottom: 24px;
	left: 24px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 24px;
	pointer-events: none;
}
.tmh-label {
	align-self: flex-end;
	margin: 0;
	color: var(--cream, #F2EDE1);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.tmh-progress,
.tmt-progress {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #D9D9D9;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	letter-spacing: .18em;
	font-variant-numeric: tabular-nums;
}
.tmh-total,
.tmt-total {
	color: #A59A87;
}
.tmh-line,
.tmt-line {
	position: relative;
	flex: 1;
	height: 1px;
	background: rgba(255, 255, 255, .2);
}
.tmh-line span,
.tmt-line span {
	position: absolute;
	top: -.5px;
	left: 0;
	width: 0;
	height: 2px;
	background: #D9D9D9;
}
.tmt-line span {
	transition: width var(--m-dur-m, 400ms) var(--m-ease, ease);
}
body .tmh-slides button.tmh-pause {
	position: absolute;
	top: 20px;
	right: 20px;
	z-index: 2;
	width: 36px;
	height: 36px;
	padding: 0;
	background: rgba(23, 23, 25, .35);
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 50%;
	cursor: pointer;
	opacity: 0;
	transition: opacity var(--m-dur-s, 200ms);
}
.tmh-slides:hover .tmh-pause,
.tmh-pause:focus-visible,
.tmh-slides.is-paused .tmh-pause {
	opacity: 1;
}
/* Two bars for pause, a triangle for play. */
.tmh-pause span {
	display: block;
	width: 10px;
	height: 12px;
	margin: auto;
	border-right: 3px solid #FFFFFF;
	border-left: 3px solid #FFFFFF;
}
.is-paused .tmh-pause span {
	width: 0;
	height: 0;
	margin-left: 13px;
	border-top: 7px solid transparent;
	border-right: 0;
	border-bottom: 7px solid transparent;
	border-left: 11px solid #FFFFFF;
}

/* ── Category explorer ───────────────────────────────────────────────────── */
.tmx {
	display: flex;
	width: 100%;
	min-height: 653px;
}
.tmx-nav {
	display: flex;
	flex: none;
	flex-direction: column;
	justify-content: space-between;
	width: 163px;
	padding: 19px 0 35px;
}
.tmx-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body .tmx-list a {
	color: var(--tan, #6F6556);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -.006em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color var(--m-dur-s, 200ms);
}
body .tmx-list a:hover {
	color: var(--ink, #171719);
}
body .tmx-list a.is-on {
	color: #007AFF;
	font-size: 16px;
	letter-spacing: 1px;
}
.tmx-count {
	margin: 0;
	color: var(--tan, #6F6556);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.tmx-panel {
	display: flex;
	flex: 1;
	gap: 63px;
	min-width: 0;
	margin-left: 96px;
}
.tmx-panel[hidden] {
	display: none;
}
.tmx-panel.is-on .tmx-copy,
.tmx-panel.is-on .tmx-img {
	animation: tmx-in 500ms var(--m-ease, ease) both;
}
.tmx-panel.is-on .tmx-img {
	animation-delay: 60ms;
}
@keyframes tmx-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
}
.tmx-copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	max-width: 417px;
	padding-top: 19px;
}
.tmx-copy .tmx-n {
	margin: 0 0 120px;
	color: var(--tan, #6F6556);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
}
body .tmx-copy h2 {
	margin: 0;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(44, 34, 33, .13);
	color: var(--ink, #171719);
	font-size: 40px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -1px;
}
.tmx-copy .tmx-text {
	margin: 32px 0 40px;
	color: var(--body, #656569);
	font-size: 16px;
	line-height: 1.7;
}
body .tmx-copy a.tmx-btn {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 12px;
	margin-top: auto;
	padding: 16px 30px;
	background: var(--ink, #171719);
	border: 1px solid var(--ink, #171719);
	color: var(--white, #FFFFFF);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}
body .tmx-copy a.tmx-btn:hover {
	background: var(--white, #FFFFFF);
	color: var(--ink, #171719);
}
.tmx-btn-icon {
	width: 24px;
	height: 24px;
}
.tmx-img {
	flex: none;
	width: 541px;
	height: 653px;
	overflow: hidden;
	background: #736B61;
}
body .tmx-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ── Testimonials (top of the dark band; the figures below are Elementor) ── */
.tmt {
	display: flex;
	width: 100%;
	min-height: 514px;
	color: var(--cream, #F2EDE1);
}
.tmt-main {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-width: 0;
	padding: 64px 91px 0 80px;
}
.tmt-eyebrow {
	margin: 0 0 40px;
	color: #A59A87;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
}
.tmt-quote {
	margin: 0;
}
.tmt-quote.is-on {
	animation: tmx-in 500ms var(--m-ease, ease) both;
}
.tmt-quote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
}
.tmt-quote blockquote p {
	max-width: 857px;
	margin: 0;
	color: var(--cream, #F2EDE1);
	font-size: 40px;
	font-weight: 300;
	font-style: italic;
	line-height: 1.28;
	letter-spacing: -.01em;
}
.tmt-quote figcaption {
	margin-top: 48px;
	color: #A59A87;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .16em;
}
.tmt .tmt-progress {
	margin-top: 32px;
}
.tmt .tmt-line {
	background: #736D65;
}
.tmt-side {
	display: flex;
	flex: none;
	flex-direction: column;
	width: 400px;
	border-left: 1px solid #1F1F1F;
}
.tmt-side-top {
	display: flex;
	justify-content: flex-end;
	height: 350px;
	padding: 54px 79px 0 33px;
	border-bottom: 1px solid #1F1F1F;
}
.tmt-rating {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 5px;
	color: inherit;
	text-align: right;
	text-decoration: none;
}
.tmt-score {
	color: #F3EDE1;
	font-size: 70px;
	font-weight: 500;
	line-height: 1.2;
}
.tmt-stars {
	color: #FFC004;
	font-size: 15px;
	letter-spacing: 2px;
}
.tmt-by {
	color: #A59A87;
	font-size: 12px;
	line-height: 1.58;
}
.tmt-side-bottom {
	position: relative;
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: flex-end;
	padding: 0 79px 0 0;
}
.tmt-spark {
	position: absolute;
	top: -11px;
	left: -11px;
	color: #736D65;
	font-size: 21px;
	line-height: 1;
}
.tmt-arrows {
	display: flex;
	gap: 8px;
}
body .tmt-arrows button {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--cream, #F2EDE1);
	border-radius: 50%;
	color: var(--cream, #F2EDE1);
	cursor: pointer;
	transition: background-color var(--m-dur-s, 200ms), color var(--m-dur-s, 200ms);
}
body .tmt-arrows button:hover {
	background: var(--cream, #F2EDE1);
	color: var(--ink, #171719);
}
.tmt-arrow {
	width: 20px;
	height: 20px;
}

/* ── Smaller screens ─────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
	.tmh-slides {
		height: 420px;
	}
	.tmx {
		flex-direction: column;
		gap: 32px;
		min-height: 0;
	}
	.tmx-nav {
		width: 100%;
		padding: 0;
	}
	.tmx-list {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 10px 18px;
	}
	.tmx-count {
		display: none;
	}
	.tmx-panel {
		flex-direction: column;
		gap: 32px;
		margin-left: 0;
	}
	.tmx-copy {
		max-width: none;
		padding-top: 0;
	}
	.tmx-copy .tmx-n {
		margin-bottom: 16px;
	}
	.tmx-img {
		width: 100%;
		height: 420px;
	}
	.tmt {
		flex-direction: column;
		min-height: 0;
	}
	.tmt-main {
		padding: 56px 32px 32px;
	}
	.tmt-side {
		flex-direction: row;
		width: 100%;
		border-top: 1px solid #1F1F1F;
		border-left: 0;
	}
	.tmt-side-top {
		flex: 1;
		justify-content: flex-start;
		height: auto;
		padding: 24px 32px;
		border-bottom: 0;
	}
	.tmt-rating {
		align-items: flex-start;
		text-align: left;
	}
	.tmt-side-bottom {
		padding: 24px 32px;
	}
	.tmt-spark {
		display: none;
	}
	.tmt-quote blockquote p {
		font-size: 32px;
	}
}
@media (max-width: 767px) {
	.tmh-slides {
		height: 300px;
	}
	.tmh-bar {
		right: 16px;
		bottom: 16px;
		left: 16px;
		gap: 14px;
	}
	.tmx-list {
		flex-wrap: nowrap;
		margin-inline: -20px;
		padding: 0 20px 6px;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.tmx-list::-webkit-scrollbar {
		display: none;
	}
	.tmx-list li {
		flex: none;
	}
	body .tmx-list a.is-on {
		font-size: 14px;
	}
	body .tmx-copy h2 {
		font-size: 30px;
	}
	.tmx-copy .tmx-text {
		margin: 20px 0 28px;
	}
	.tmx-img {
		height: 280px;
	}
	.tmt-main {
		padding: 48px 20px 24px;
	}
	.tmt-eyebrow {
		margin-bottom: 24px;
	}
	.tmt-quote blockquote p {
		font-size: 24px;
	}
	.tmt-quote figcaption {
		margin-top: 0;
	}
	.tmt-side {
		flex-direction: column;
	}
	.tmt-side-top,
	.tmt-side-bottom {
		justify-content: flex-start;
		padding: 20px;
	}
	.tmt-score {
		font-size: 52px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.tmh-slide,
	body .tmh-slide img,
	.tmt-line span {
		transition: none;
	}
	.tmx-panel.is-on .tmx-copy,
	.tmx-panel.is-on .tmx-img,
	.tmt-quote.is-on {
		animation: none;
	}
}

/* Mobile testimonial (Figma 4054:1454): eyebrow, quote, rating, hairline, place, progress; swipe. */
.tmt-rating-m {
	display: none;
}
@media (max-width: 767px) {
	.tmt-main {
		display: flex;
		flex-direction: column;
		gap: 28px;
		padding: 44px 20px 36px;
	}
	.tmt-main .tmt-eyebrow {
		order: 1;
		margin: 0;
		color: #A59A87;
		font-size: 11px;
	}
	.tmt-quote:not([hidden]) {
		display: contents;
	}
	.tmt-quote blockquote {
		order: 2;
		margin: 0;
	}
	body .tmt-quote blockquote p {
		color: #F2EDE1;
		font-size: 24px;
		font-style: italic;
		font-weight: 300;
		line-height: 1.42;
		letter-spacing: -.2px;
	}
	.tmt-rating-m {
		order: 3;
		display: flex;
		align-items: center;
		gap: 16px;
		padding-bottom: 28px;
		border-bottom: 1px solid #1F1F1F;
	}
	.tmt-rating-m .tmt-score {
		color: #F2EDE1;
		font-size: 48px;
		font-weight: 500;
		line-height: 1.08;
	}
	.tmt-rating-t {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}
	.tmt-rating-m .tmt-stars {
		color: #FFC004;
		font-size: 13px;
		letter-spacing: 3px;
		line-height: 1;
	}
	.tmt-rating-m .tmt-by {
		color: #A59A87;
		font-size: 11px;
		line-height: 1.5;
	}
	.tmt-quote figcaption {
		order: 4;
		margin: -14px 0 0;
		color: #A59A87;
		font-size: 11px;
		font-style: normal;
		font-weight: 500;
		letter-spacing: 1.6px;
	}
	.tmt-main .tmt-progress {
		order: 5;
		margin: -14px 0 0;
		font-size: 11px;
	}
	.tmt-side {
		display: none;
	}
}

/*
 * Mobile, as Figma "Homepage · Mobile · 393" (4054:1020): the slideshow label and line sit under
 * the photo; the explorer has chip tabs over a full-width photo, then the copy and a full-width
 * button.
 */
@media (max-width: 767px) {
	.tmh-slides {
		height: auto;
		overflow: visible;
		background: transparent;
	}
	.tmh-slides::after {
		display: none;
	}
	.tmh-track {
		position: relative;
		inset: auto;
		height: 300px;
		overflow: hidden;
		background: #2A2622;
	}
	.tmh-bar {
		position: static;
		gap: 12px;
		padding-top: 16px;
	}
	.tmh-label {
		align-self: flex-start;
		color: var(--ink, #171719);
		font-size: 11px;
		font-weight: 600;
		letter-spacing: .02em;
		text-transform: none;
	}
	.tmh-progress {
		gap: 6px;
		color: var(--ink, #171719);
		font-size: 11px;
		letter-spacing: .04em;
	}
	.tmh-progress .tmh-line {
		order: 1;
		height: 2px;
		background: #E4E4E7;
	}
	.tmh-progress .tmh-line span {
		top: 0;
		background: var(--ink, #171719);
	}
	.tmh-progress .tmh-now {
		order: 2;
		margin-left: 4px;
	}
	.tmh-progress .tmh-total {
		order: 3;
		color: #96969A;
	}
	.tmh-pause {
		top: 12px;
		bottom: auto;
	}

	/* Explorer */
	.tmx {
		flex-direction: column;
		gap: 0;
		min-height: 0;
	}
	.tmx-nav {
		display: flex;
		flex-direction: column;
		gap: 24px;
		width: auto;
		padding: 0;
	}
	.tmx-count {
		display: block;
		order: -1;
		margin: 0;
		color: #96969A;
		font-size: 10px;
		font-weight: 500;
		letter-spacing: 1.5px;
		text-transform: uppercase;
	}
	.tmx-list {
		gap: 8px;
		padding-bottom: 0;
	}
	body .tmx-list a,
	body .tmx-list a.is-on {
		display: inline-flex;
		padding: 10px 16px;
		border: 1px solid #D4D4D8;
		background: #FFFFFF;
		color: var(--ink, #171719);
		font-size: 14px;
		font-weight: 400;
		line-height: 1.45;
		letter-spacing: 0;
		text-transform: none;
		white-space: nowrap;
	}
	body .tmx-list a.is-on {
		border-color: var(--ink, #171719);
		background: var(--ink, #171719);
		color: #FFFFFF;
		font-weight: 500;
	}
	.tmx-panel {
		flex-direction: column;
		gap: 0;
		margin: 24px 0 0;
	}
	.tmx-panel .tmx-img {
		order: -1;
		width: auto;
		height: 300px;
		margin-inline: -20px;
	}
	.tmx-copy {
		padding: 24px 0 0;
	}
	.tmx-copy .tmx-n {
		display: none;
	}
	body .tmx-copy h2 {
		padding-bottom: 16px;
		border-bottom: 1px solid #E4E4E7;
		font-size: 28px;
		letter-spacing: -.6px;
	}
	.tmx-copy .tmx-text {
		margin: 16px 0 24px;
		font-size: 15px;
		line-height: 1.68;
	}
	body .tmx-copy a.tmx-btn {
		justify-content: center;
		width: 100%;
	}
	.tmx-copy .tmx-btn-icon {
		display: none;
	}
}

/* ── Hero: "Browse the catalogue" opens a menu of the two catalogues (inc/home.php, scripts/seed-home-hero.php) ──
   The elements are found by their Elementor ids: c0de0000 wrapper, 79b717e3 button, c0de0001 chevron,
   c0de0002 menu, c0de0010 / c0de0020 the two options. */
/* The text block of the hero (4a17d334) must sit above the slideshow below it, or the open menu would be covered by it. */
body .elementor [data-id="4a17d334"] {
	position: relative;
	z-index: 5;
}
body .elementor [data-id="c0de0000"] {
	position: relative;
}
body .elementor [data-id="c0de0001"] {
	background: currentColor;
	-webkit-mask: url(/wp-content/themes/hello-theme-child/assets/icons/chevron-down.svg) center / 18px no-repeat;
	mask: url(/wp-content/themes/hello-theme-child/assets/icons/chevron-down.svg) center / 18px no-repeat;
	transition: transform 200ms var(--m-ease, ease);
}
body .elementor [data-id="c0de0000"].is-open [data-id="c0de0001"] {
	transform: rotate(180deg);
}
body .elementor [data-id="c0de0002"] {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 30;
	display: none;
	max-width: calc(100vw - 40px);
}
body .elementor [data-id="c0de0000"].is-open [data-id="c0de0002"] {
	display: flex;
}
body .elementor [data-id="c0de0010"],
body .elementor [data-id="c0de0020"] {
	border-top: 1px solid #E4E4E7;
	text-decoration: none;
	transition: background-color 150ms var(--m-ease, ease);
}
body .elementor [data-id="c0de0010"]:hover,
body .elementor [data-id="c0de0020"]:hover,
body .elementor [data-id="c0de0010"]:focus-visible,
body .elementor [data-id="c0de0020"]:focus-visible {
	background-color: #FBFBFA;
}
body .elementor [data-id="c0de0010"]:focus-visible,
body .elementor [data-id="c0de0020"]:focus-visible {
	outline: 2px solid var(--ink, #171719);
	outline-offset: -2px;
}
/* Without JavaScript the button still goes to Flooring, and the menu is simply listed under it. */
@media (scripting: none) {
	body .elementor [data-id="c0de0002"] {
		position: static;
		display: flex;
		margin-top: 8px;
	}
	body .elementor [data-id="c0de0001"] {
		display: none;
	}
}
@media (max-width: 767px) {
	body .elementor [data-id="c0de0002"] {
		left: 0;
		right: 0;
		width: auto;
		max-width: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	body .elementor [data-id="c0de0001"],
	body .elementor [data-id="c0de0010"],
	body .elementor [data-id="c0de0020"] {
		transition: none;
	}
}
