/*
 * TERRENE 1.0.9 — contour portal and immersive grocery art direction.
 * Loaded after the base and responsive styles so this is the cohesive
 * storefront layer, not a pile of small overrides.
 */
:root {
	--terrene-bg: #080b07;
	--terrene-bg-alt: #11170f;
	--terrene-card: #172016;
	--terrene-accent: #c9b47f;
	--terrene-text: #f2eddf;
	--terrene-text-muted: #b3b19f;
	--terrene-border: rgba(227, 218, 190, .18);
	--font-display: 'Cormorant Garamond', Georgia, serif;
	--font-body: 'DM Sans', sans-serif;
	--container: 1480px;
	--section-space: clamp(5rem, 10vw, 10rem);
	--radius: 2px;
}

body {
	background: var(--terrene-bg);
	color: var(--terrene-text);
	font-family: var(--font-body);
}

.site-header {
	background: linear-gradient(180deg, rgba(5, 8, 5, .62), transparent);
	border-bottom-color: transparent;
}
.site-header.is-scrolled {
	background: rgba(8, 11, 7, .9);
	border-bottom-color: var(--terrene-border);
}
.header-inner { padding-block: 1.45rem; }
.site-title {
	font-family: var(--font-display);
	font-size: 1.45rem;
	font-weight: 600;
	letter-spacing: .08em;
}
.main-navigation .menu { gap: clamp(1.25rem, 2.5vw, 2.6rem); }
.main-navigation a {
	font-size: .67rem;
	letter-spacing: .16em;
	color: rgba(242,237,223,.82);
}
.header-actions { gap: 1.3rem; }
.header-icon { color: var(--terrene-text); }
.terrene-cart-count {
	border-radius: 50%;
	min-width: 17px;
	height: 17px;
	background: var(--terrene-accent);
	color: #10140c;
}

/* Immersive grocery portal */
.terrain-entry--grocery {
	position: relative;
	background: #050704;
	color: var(--terrene-text);
	isolation: isolate;
}
.terrain-entry--grocery .terrain-stage {
	position: relative;
	min-height: 100svh;
	height: 100svh;
	overflow: hidden;
	background: #050704;
}
.terrain-entry--grocery .terrain-camera {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	background: #070a06;
}
.terrain-entry--grocery .terrain-cover {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center 53%;
	transform: scale(1.04);
	will-change: transform, filter;
}
.terrain-camera__shade,
.terrain-camera__vignette {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.terrain-camera__shade {
	background: linear-gradient(90deg, rgba(5,8,4,.48), rgba(5,8,4,.06) 50%, rgba(5,8,4,.18)),
	            linear-gradient(0deg, rgba(5,8,4,.38), transparent 42%, rgba(5,8,4,.22));
}
.terrain-camera__vignette {
	background: radial-gradient(ellipse at 50% 52%, transparent 18%, rgba(0,0,0,.2) 58%, rgba(0,0,0,.76) 100%);
}
.terrain-invitation {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 8rem var(--gutter) 5rem;
	text-align: center;
	pointer-events: none;
}
.terrain-eyebrow,
.terrain-invitation .terrain-eyebrow {
	display: block;
	margin: 0 0 1.4rem;
	color: #d8c99f;
	font-size: .68rem;
	font-weight: 500;
	letter-spacing: .34em;
	text-transform: uppercase;
}
.terrain-invitation h1 {
	max-width: 12ch;
	margin: 0 auto 1rem;
	font-family: var(--font-display);
	font-size: clamp(4.25rem, 10.8vw, 10.5rem);
	font-weight: 400;
	line-height: .78;
	letter-spacing: -.055em;
	text-transform: uppercase;
	text-wrap: balance;
	text-shadow: 0 3px 34px rgba(0,0,0,.5);
}
.terrain-invitation h1 em { color: #d5c38d; font-style: normal; }
.terrain-description {
	max-width: 43ch;
	margin: 1.25rem auto 1.8rem;
	color: rgba(242,237,223,.85);
	font-size: clamp(.82rem, 1.1vw, 1rem);
	line-height: 1.7;
	letter-spacing: .035em;
}
.terrain-enter-link {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	color: var(--terrene-text);
	font-size: .62rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	pointer-events: auto;
}
.terrain-enter-arrow {
	display: grid;
	width: 47px;
	height: 47px;
	place-items: center;
	border: 1px solid rgba(242,237,223,.7);
	border-radius: 50%;
	font-size: 1rem;
	transition: background .3s ease, color .3s ease, transform .3s ease;
}
.terrain-enter-link:hover .terrain-enter-arrow {
	background: var(--terrene-text);
	color: #10140c;
	transform: translateY(4px);
}
.terrain-scroll-label {
	position: absolute;
	left: 50%;
	bottom: 2rem;
	transform: translateX(-50%);
	color: rgba(242,237,223,.75);
	font-size: .58rem;
	letter-spacing: .28em;
	text-transform: uppercase;
}
.terrain-scroll-label::after {
	content: '';
	display: block;
	width: 1px;
	height: 34px;
	margin: .8rem auto 0;
	background: linear-gradient(var(--terrene-accent), transparent);
}
.terrain-chapter {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	color: #f4efdf;
	font-family: var(--font-display);
	font-size: clamp(3.25rem, 8vw, 8rem);
	font-weight: 500;
	line-height: .92;
	letter-spacing: -.035em;
	text-align: center;
	text-shadow: 0 4px 35px rgba(0,0,0,.8);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.terrain-chapter span { max-width: 12ch; }
.terrain-chapter--two { color: #dfd0a4; }
.terrain-arrival {
	position: absolute;
	z-index: 4;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 7rem var(--gutter) 4rem;
	text-align: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.terrain-arrival .terrain-eyebrow { margin-bottom: 1rem; }
.terrain-arrival h2 {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(3.4rem, 8vw, 8rem);
	font-weight: 400;
	line-height: .82;
	letter-spacing: -.045em;
}
.terrain-arrival p {
	max-width: 42ch;
	margin: 1.5rem auto 1.6rem;
	color: rgba(242,237,223,.82);
}
.terrain-arrival .btn { pointer-events: auto; }
.terrain-skip {
	position: absolute;
	right: max(1.5rem, 4vw);
	bottom: 2rem;
	z-index: 5;
	color: rgba(242,237,223,.85);
	font-size: .62rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-shadow: 0 2px 15px #000;
}
.terrain-progress {
	position: absolute;
	z-index: 6;
	inset: auto 0 0;
	height: 2px;
	background: rgba(255,255,255,.18);
}
.terrain-progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--terrene-accent);
	transform: scaleX(0);
	transform-origin: left;
}
.terrain-entry--grocery.is-enhanced .terrain-stage { overflow: hidden; }
.terrain-entry--grocery.is-enhanced .terrain-arrival { pointer-events: none; }
.terrain-entry--grocery.is-enhanced .terrain-arrival a { pointer-events: auto; }

/* Editorial chapter / ethos */
.brand-story {
	position: relative;
	padding-block: clamp(6rem, 12vw, 12rem);
	background:
		radial-gradient(ellipse at 82% 20%, rgba(91,105,53,.15), transparent 40%),
		var(--terrene-bg);
}
.brand-story__grid {
	grid-template-columns: minmax(260px,.9fr) minmax(320px,1.1fr);
	align-items: center;
	gap: clamp(3rem,8vw,9rem);
}
.brand-story__copy { max-width: 660px; }
.brand-story .section-h2 {
	max-width: 11ch;
	font-size: clamp(3rem,6.3vw,6.6rem);
	line-height: .83;
	font-weight: 500;
	text-transform: none;
	letter-spacing: -.045em;
}
.brand-story__body {
	max-width: 45ch;
	margin: 1.6rem 0 2rem;
	color: var(--terrene-text-muted);
	font-size: .98rem;
	line-height: 1.85;
}
.brand-story__media {
	grid-template-columns: 1.35fr .9fr;
	align-items: start;
	gap: 1rem;
}
.brand-story__img {
	position: relative;
	background: var(--terrene-card);
	overflow: hidden;
}
.brand-story__img img { display:block; width:100%; height:100%; object-fit:cover; }
.brand-story__img--a { aspect-ratio: 4/5; }
.brand-story__img--b { aspect-ratio: 3/4; margin-top: 4rem; }
.brand-story__img .img-placeholder { min-height: 300px; }

/* The ethos list mirrors the reference's expandable benefit points. */
.benefits {
	padding-block: clamp(5rem, 10vw, 9rem);
	background: var(--terrene-bg-alt);
	border-block: 1px solid var(--terrene-border);
}
.benefits__layout {
	display: grid;
	grid-template-columns: minmax(240px,.85fr) minmax(360px,1.15fr);
	gap: clamp(3rem, 8vw, 8rem);
	align-items: start;
}
.benefits__intro .section-h2 {
	max-width: 10ch;
	font-size: clamp(3rem,5.3vw,5.8rem);
	line-height: .86;
	font-weight: 500;
	text-transform: none;
	letter-spacing: -.045em;
}
.benefits__intro > p { max-width: 32ch; color: var(--terrene-text-muted); }
.benefits__list {
	list-style: none;
	border-top: 1px solid var(--terrene-border);
}
.benefit-row { border-bottom: 1px solid var(--terrene-border); }
.benefit-row details { margin: 0; }
.benefit-row summary {
	display: grid;
	grid-template-columns: 3rem 1fr 2rem;
	align-items: center;
	gap: 1rem;
	padding: 1.45rem 0;
	cursor: pointer;
	list-style: none;
}
.benefit-row summary::-webkit-details-marker { display:none; }
.benefit-row__num { color: var(--terrene-accent); font-size: .65rem; letter-spacing: .15em; }
.benefit-row__title {
	font-family: var(--font-display);
	font-size: clamp(1.5rem,2.5vw,2.25rem);
	font-weight: 500;
	line-height: 1.05;
}
.benefit-row__icon {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border: 1px solid var(--terrene-border);
	border-radius: 50%;
	font-size: 1.1rem;
	transition: transform .25s ease, background .25s ease;
}
.benefit-row details[open] .benefit-row__icon { transform: rotate(45deg); background: var(--terrene-accent); color: #10140c; }
.benefit-row__body { grid-column: 2 / 3; padding: 0 2rem 1.4rem 4rem; }
.benefit-row__body p { max-width: 48ch; margin: 0; color: var(--terrene-text-muted); font-size: .92rem; line-height: 1.8; }

/* Image ribbon and collection discovery */
.marquee {
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
	border: 0;
	background: #0a0f09;
}
.marquee__row { gap: .7rem; }
.marquee__item {
	width: clamp(190px, 19vw, 290px);
	aspect-ratio: 4/5;
	border: 1px solid rgba(227,218,190,.13);
	background: var(--terrene-card);
}
.marquee__item img { display:block; width:100%; height:100%; object-fit:cover; }
.categories {
	padding-block: clamp(6rem, 11vw, 10rem);
	background:
		radial-gradient(ellipse at 20% 65%, rgba(78,97,50,.13), transparent 38%),
		var(--terrene-bg);
}
.categories__aside { max-width: 32ch; color: var(--terrene-text-muted); margin:0 0 .5rem; }
.categories .section-h2 {
	font-size: clamp(3rem,6vw,6.2rem);
	font-weight: 500;
	text-transform: none;
	letter-spacing: -.045em;
	line-height: .9;
}
.categories__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(.8rem,1.5vw,1.3rem); }
.category-card {
	aspect-ratio: 4/5;
	background: #151e13;
	border: 1px solid rgba(227,218,190,.12);
}
.category-card__media img { filter: saturate(.86); transition: transform .8s cubic-bezier(.16,1,.3,1), filter .8s ease; }
.category-card:hover .category-card__media img { transform: scale(1.08); filter: saturate(1.08); }
.category-card__meta {
	padding: 1.35rem;
	background: linear-gradient(0deg, rgba(5,8,5,.95), rgba(5,8,5,.05));
	align-items: flex-end;
}
.category-card__name {
	font-family: var(--font-display);
	font-size: clamp(1.4rem,2.2vw,2.1rem);
	font-weight: 500;
	text-transform: none;
	line-height: .95;
}
.category-card__count {
	color: rgba(242,237,223,.72);
	font-size: .58rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Grocery product cards, both live WooCommerce and sample placeholders. */
.featured-products {
	padding-block: clamp(5rem,10vw,9rem);
	background: var(--terrene-bg-alt);
}
.featured-products .section-h2 {
	font-size: clamp(3rem,6vw,6rem);
	font-weight: 500;
	text-transform: none;
	letter-spacing: -.05em;
	line-height: .9;
}
.featured-products__intro { max-width: 42ch; color: var(--terrene-text-muted); }
.product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(.8rem,1.4vw,1.25rem); }
.product-card {
	position: relative;
	background: rgba(255,255,255,.025);
	border: 1px solid rgba(227,218,190,.12);
	transition: transform .35s ease, border-color .35s ease, background .35s ease;
}
.product-card:hover {
	transform: translateY(-5px);
	border-color: rgba(201,180,127,.45);
	background: rgba(255,255,255,.04);
}
.product-card__link { display:block; }
.product-card__media {
	position: relative;
	display:block;
	aspect-ratio: 1 / 1.06;
	overflow:hidden;
	background: #182016;
}
.product-card__media img {
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	transition: transform .7s cubic-bezier(.16,1,.3,1);
}
.product-card:hover .product-card__media img { transform:scale(1.055); }
.product-card__badge {
	position:absolute;
	top:.8rem;
	left:.8rem;
	padding:.35rem .5rem;
	background:rgba(8,11,7,.86);
	color:var(--terrene-accent);
	font-size:.53rem;
	letter-spacing:.13em;
}
.product-card__body { display:flex; flex-direction:column; gap:.4rem; padding:1rem 1rem .7rem; }
.product-card__title {
	font-family:var(--font-display);
	font-size:1.35rem;
	font-weight:500;
	line-height:1.05;
}
.product-card__detail { color:var(--terrene-text-muted); font-size:.7rem; letter-spacing:.04em; }
.product-card__price { color:var(--terrene-accent); font-size:.9rem; font-weight:600; }
.product-card__cta {
	display:block;
	margin:0 1rem 1rem;
	padding:.8rem;
	border:1px solid var(--terrene-border);
	color:var(--terrene-text);
	text-align:center;
	font-size:.58rem;
	font-weight:600;
	letter-spacing:.15em;
	transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.product-card__cta:hover { background:var(--terrene-accent); color:#0d110b; border-color:var(--terrene-accent); }
.demo-notice {
	margin:1.5rem 0 0;
	color:rgba(179,177,159,.72);
	font-size:.72rem;
	letter-spacing:.03em;
}

/* Editorial promo and frequently asked questions. */
.promo {
	min-height: min(68vw,680px);
	background:#10170e;
}
.promo__media::after,
.promo__scrim { background:linear-gradient(90deg,rgba(5,8,5,.78),rgba(5,8,5,.25)); }
.promo__heading {
	max-width:10ch;
	font-family:var(--font-display);
	font-size:clamp(3.5rem,8vw,8rem);
	font-weight:500;
	text-transform:none;
	letter-spacing:-.04em;
	line-height:.85;
}
.faq {
	padding-block: clamp(6rem,11vw,10rem);
	background: var(--terrene-bg);
}
.faq__grid { grid-template-columns:minmax(240px,.8fr) minmax(400px,1.2fr); gap:clamp(3rem,8vw,8rem); }
.faq__intro .section-h2 {
	font-family:var(--font-display);
	font-size:clamp(3.5rem,7vw,7rem);
	font-weight:500;
	text-transform:none;
	letter-spacing:-.05em;
	line-height:.83;
}
.faq-item { border-bottom:1px solid var(--terrene-border); }
.faq-item:first-child { border-top:1px solid var(--terrene-border); }
.faq-item__trigger {
	padding:1.35rem 0;
	font-family:var(--font-display);
	font-size:clamp(1.3rem,2vw,1.8rem);
	font-weight:500;
	text-align:left;
}
.faq-item__icon {
	display:grid;
	place-items:center;
	width:28px;height:28px;
	border:1px solid var(--terrene-border);
	border-radius:50%;
}
.faq-item__panel { color:var(--terrene-text-muted); max-width:62ch; }
.newsletter { background:var(--terrene-bg-alt); border-top:1px solid var(--terrene-border); }
.brand-ticker { background:#090d07; color:var(--terrene-accent); }
.brand-ticker__row { font-family:var(--font-display); font-size:clamp(2rem,4vw,4rem); letter-spacing:.04em; }
.site-footer { background:#050704; border-top:1px solid var(--terrene-border); }
.footer__brand .site-title { font-size:1.6rem; }
.footer__col h4 { color:var(--terrene-accent); font-size:.63rem; letter-spacing:.18em; }

/* Shop, product and basket pages keep the same visual system. */
.shop-page,
.single-product-page,
.cart-empty-page,
.page-default { background:var(--terrene-bg); }
.shop-main ul.products,
.woocommerce ul.products {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:1.2rem;
}
.woocommerce ul.products li.product {
	float:none;
	width:auto;
	margin:0;
	padding:0;
	border:1px solid var(--terrene-border);
	background:rgba(255,255,255,.025);
}
.woocommerce ul.products li.product img { width:100%; aspect-ratio:1/1.05; object-fit:cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding:.7rem 1rem 0;
	font-family:var(--font-display);
	font-size:1.4rem;
	font-weight:500;
	color:var(--terrene-text);
}
.woocommerce ul.products li.product .price { padding:0 1rem; color:var(--terrene-accent); }
.woocommerce ul.products li.product .button { margin: .8rem 1rem 1rem; }
.single-product .product,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce { color:var(--terrene-text); }
.woocommerce div.product .product_title,
.woocommerce .cart_totals h2,
.woocommerce-checkout h3 { font-family:var(--font-display); font-weight:500; }
.woocommerce a { color:var(--terrene-text); }
.woocommerce a:hover { color:var(--terrene-accent); }


/* More-specific selectors neutralise the previous 1.0.6 contour-intro rules. */
.terrain-entry--grocery.is-enhanced .terrain-stage { height:100svh; overflow:hidden; }
.terrain-entry--grocery.is-enhanced .terrain-camera { position:absolute; inset:0; z-index:0; overflow:hidden; }
.terrain-entry--grocery.is-enhanced .terrain-invitation {
	position:absolute;
	inset:0;
	left:auto;
	bottom:auto;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-direction:column;
	padding:8rem var(--gutter) 5rem;
	text-align:center;
}
.terrain-entry--grocery.is-enhanced .terrain-invitation .terrain-description {
	max-width:43ch;
	margin:1.25rem auto 1.8rem;
	font-family:var(--font-body);
	font-size:clamp(.82rem,1.1vw,1rem);
	line-height:1.7;
}
.terrain-entry--grocery.is-enhanced .terrain-chapter {
	display:flex;
	position:absolute;
	inset:0;
	visibility:hidden;
	opacity:0;
}
.terrain-entry--grocery.is-enhanced .terrain-arrival {
	position:absolute;
	inset:0;
	display:flex;
	padding:7rem var(--gutter) 4rem;
	visibility:hidden;
	opacity:0;
}

/* Responsive art direction */
@media (max-width: 1024px) {
	.benefits__layout,
	.faq__grid { grid-template-columns:1fr; }
	.categories__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.product-grid,
	.shop-main ul.products,
	.woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
	.terrain-entry--grocery .terrain-stage { min-height:100svh; height:100svh; }
	.terrain-entry--grocery .terrain-cover { object-position:center center; }
	.terrain-invitation { padding:7rem 1.2rem 4.5rem; }
	.terrain-invitation h1 { font-size:clamp(3.6rem,17vw,6rem); max-width:9ch; }
	.terrain-description { max-width:32ch; font-size:.82rem; }
	.terrain-scroll-label { bottom:1rem; }
	.terrain-chapter { font-size:clamp(2.8rem,12vw,4.8rem); }
	.terrain-arrival h2 { font-size:clamp(3rem,13vw,5.2rem); }
	.terrain-arrival p { max-width:29ch; font-size:.85rem; }
	.terrain-skip { right:1rem; bottom:1.3rem; }
	.brand-story__grid { grid-template-columns:1fr; gap:2.5rem; }
	.brand-story__media { grid-template-columns:1.1fr .85fr; }
	.brand-story__img--b { margin-top:2rem; }
	.benefits__layout { gap:2rem; }
	.benefit-row summary { grid-template-columns:2.1rem 1fr 2rem; gap:.75rem; }
	.benefit-row__title { font-size:1.55rem; }
	.benefit-row__body { padding:0 1rem 1.2rem 2.9rem; }
	.categories__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.category-card__meta { padding:.8rem; }
	.category-card__name { font-size:1.4rem; }
	.product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
	.product-card__body { padding:.75rem; }
	.product-card__title { font-size:1.15rem; }
	.product-card__detail { font-size:.62rem; }
	.product-card__cta { margin:0 .75rem .75rem; padding:.65rem .35rem; font-size:.52rem; }
	.promo { min-height:500px; }
}
@media (max-width: 480px) {
	.categories__grid { gap:.55rem; }
	.category-card { aspect-ratio:3/4; }
	.category-card__count { display:none; }
	.product-card__title { font-size:1rem; }
	.product-card__media { aspect-ratio:1/1; }
}
@media (prefers-reduced-motion: reduce) {
	.terrain-cover,
	.product-card,
	.category-card__media img { transition:none !important; }
}

@media (max-width: 767px) {
	.terrain-entry--grocery.is-enhanced .terrain-invitation { padding:7rem 1.2rem 4.5rem; }
	.terrain-entry--grocery.is-enhanced .terrain-arrival { padding:6rem 1.2rem 3.5rem; }
}

/* ============================================================
   1.0.9 — Contour portal art direction.
   Hero: pale sculpted rainbow rings → transparent oval reveal.
   After the descent: warm paper canvas with fine topographic lines.
   ============================================================ */
:root {
  --terrene-bg: #f7f6f2;
  --terrene-bg-alt: #efeee9;
  --terrene-card: #fffefa;
  --terrene-accent: #8a7659;
  --terrene-text: #1d1e1c;
  --terrene-text-muted: #62645f;
  --terrene-border: rgba(28, 29, 27, .15);
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'DM Sans', Arial, sans-serif;
  --container: 1480px;
  --section-space: clamp(5rem, 10vw, 9rem);
  --radius: 10px;
}

html, body { background-color: #f7f6f2; }
body {
  color: var(--terrene-text);
  background-image: url('../images/topographic-paper.svg');
  background-repeat: repeat-y;
  background-position: center top;
  background-size: min(100%, 1920px) 1200px;
  background-attachment: scroll;
}
.site-main { background: transparent; }
.site-title, .main-navigation a, .header-icon { color: #252522; }
.site-title { font-size: 1.3rem; font-weight: 500; letter-spacing: .04em; text-transform: none; }
.main-navigation a { color: rgba(28,29,27,.82); font-size: .67rem; letter-spacing: .08em; }
.main-navigation a::after { background: #8a7659; }
.site-header { background: linear-gradient(180deg, rgba(247,246,242,.82), rgba(247,246,242,0)); }
.site-header.is-scrolled {
  background: rgba(247,246,242,.92);
  border-bottom-color: rgba(28,29,27,.12);
  box-shadow: 0 5px 24px rgba(30,29,25,.035);
}
.header-icon:hover { color: #907954; }
.terrene-cart-count { background: #252522; color: #fff; }
.menu-toggle span { background: #252522; }
.mobile-menu { background: #f7f6f2; color: #1d1e1c; }
.mobile-menu a { color: #1d1e1c; }
.terrene-search { background: rgba(247,246,242,.98); color: #1d1e1c; border-color: var(--terrene-border); }
.skip-link { background: #252522; color: #fff; }

/* Scroll intro: the oval aperture reveals the grocery tunnel below the rings. */
.terrain-entry--grocery {
  position: relative;
  z-index: 1;
  color: #222321;
  background: #d8d8d5;
  isolation: isolate;
}
.terrain-entry--grocery .terrain-stage {
  position: relative;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
  background: #d8d8d5;
}
.terrain-entry--grocery .terrain-camera {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #e8e7e3 url('../images/topographic-paper.svg') center / cover no-repeat;
}
.terrain-camera__reveal {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  opacity: 0;
  will-change: transform, opacity;
  background: #10120e;
}
.terrain-camera__reveal img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  transform: scale(1.06);
}
.terrain-entry--grocery .terrain-cover {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  transform: scale(1);
  transform-origin: 58% 43%;
  will-change: transform, opacity, filter;
}
.terrain-camera__shade, .terrain-camera__vignette { display: none !important; }

.terrain-invitation {
  position: absolute;
  z-index: 4;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 0 0 clamp(4.7rem, 8vh, 7rem) clamp(1.15rem, 1.4vw, 2.5rem);
  text-align: left;
  pointer-events: none;
}
.terrain-eyebrow,
.terrain-invitation .terrain-eyebrow {
  display: block;
  margin: 0 0 .8rem;
  color: rgba(40,40,38,.7);
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .25em;
  text-transform: uppercase;
  text-shadow: none;
}
.terrain-invitation h1 {
  max-width: 8.6ch;
  margin: 0;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(4.8rem, 8.7vw, 10.5rem);
  font-weight: 500;
  line-height: .82;
  letter-spacing: -.035em;
  text-transform: none;
  text-shadow: 0 2px 6px rgba(27,27,27,.23);
  text-wrap: balance;
}
.terrain-description { display: none; }
.terrain-enter-link {
  position: absolute;
  right: clamp(1.25rem, 2.3vw, 2.8rem);
  bottom: clamp(1.25rem, 2.5vh, 2rem);
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: .8rem;
  padding: .85rem 1.1rem;
  border: 1px solid rgba(40,40,40,.38);
  border-radius: 6px;
  color: #272825;
  background: rgba(238,237,233,.23);
  backdrop-filter: blur(10px);
  font-size: .62rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  pointer-events: auto;
}
.terrain-enter-arrow {
  display: inline;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  font-size: 1rem;
}
.terrain-enter-link:hover .terrain-enter-arrow {
  background: transparent;
  color: #1d1e1c;
  transform: translateY(3px);
}
.terrain-scroll-label {
  position: absolute;
  left: clamp(1.2rem, 1.6vw, 2rem);
  bottom: 1.3rem;
  transform: none;
  color: rgba(35,35,32,.6);
  font-size: .52rem;
  letter-spacing: .18em;
  text-shadow: none;
}
.terrain-scroll-label::after { display: none; }
.terrain-chapter {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5vw, 6rem);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.025em;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.terrain-chapter span { max-width: 12ch; }
.terrain-chapter--two { font-size: clamp(2.5rem, 4.4vw, 5.4rem); }
.terrain-arrival {
  position: absolute;
  z-index: 6;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(5rem, 10vh, 8rem) var(--gutter);
  color: #1d1e1c;
  text-align: left;
  background: #f7f6f2 url('../images/topographic-paper.svg') center / cover no-repeat;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.terrain-arrival .terrain-eyebrow { color: #77776e; }
.terrain-arrival h2 {
  margin: 0;
  color: #1c1d1b;
  font-family: var(--font-display);
  font-size: clamp(3.9rem, 7vw, 8rem);
  font-weight: 500;
  line-height: .84;
  letter-spacing: -.04em;
}
.terrain-arrival p {
  max-width: 38ch;
  margin: 1.2rem 0 1.5rem;
  color: #62645f;
}
.terrain-arrival .btn--accent {
  background: #272825;
  border-color: #272825;
  color: #fff;
}
.terrain-arrival .btn--accent:hover { background: #8a7659; border-color: #8a7659; }
.terrain-skip {
  position: absolute;
  z-index: 7;
  right: 1.5rem;
  bottom: 1.2rem;
  color: rgba(28,29,27,.72);
  font-size: .58rem;
  letter-spacing: .13em;
  text-shadow: none;
}
.terrain-progress { z-index: 8; background: rgba(20,20,18,.12); }
.terrain-progress span { background: linear-gradient(90deg,#8fc8d5,#c9a5c8,#e3a17e,#a9c79f); }
.terrain-entry--grocery.is-enhanced .terrain-stage { height: 100svh; overflow: hidden; }
.terrain-entry--grocery.is-enhanced .terrain-camera { position: absolute; inset: 0; z-index: 0; }
.terrain-entry--grocery.is-enhanced .terrain-invitation { position: absolute; inset: 0; display: flex; }
.terrain-entry--grocery.is-enhanced .terrain-chapter { display: flex; position: absolute; inset: 0; }
.terrain-entry--grocery.is-enhanced .terrain-arrival { position: absolute; inset: 0; display: flex; }

/* The next section carries the thin, flowing contour-line paper background. */
.brand-story, .benefits, .marquee, .categories, .featured-products,
.faq, .newsletter, .brand-ticker {
  color: var(--terrene-text);
  background: transparent;
}
.brand-story {
  position: relative;
  padding-block: clamp(5rem, 9vw, 8rem);
}
.brand-story__top {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(320px, 1fr);
  gap: clamp(2.5rem, 7vw, 8rem);
  align-items: center;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}
.brand-story__headline .eyebrow { color: #6e706a; }
.brand-story .section-h2 {
  max-width: 11ch;
  margin: 0;
  color: #20211f;
  font-family: var(--font-display);
  font-size: clamp(3.6rem, 6.4vw, 7rem);
  font-weight: 600;
  line-height: .82;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.brand-story__intro { max-width: 53ch; }
.brand-story__body {
  margin: 0 0 1.4rem;
  color: #41433f;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 1.8vw, 1.85rem);
  line-height: 1.32;
}
.brand-story__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.editorial-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  min-width: 142px;
  padding: .8rem 1rem;
  border: 1px solid rgba(34,35,32,.42);
  color: #262724;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.editorial-link:hover { background: #292a27; color: #fff; transform: translateY(-2px); }
.editorial-link span { font-size: 1rem; }
.brand-story__features {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: clamp(.7rem,1.3vw,1.2rem);
}
.brand-story__feature-card {
  position: relative;
  min-height: clamp(240px,24vw,360px);
  overflow: hidden;
  isolation: isolate;
  border-radius: 10px;
  background: #29382a;
  color: #fff;
}
.brand-story__feature-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.55));
}
.brand-story__feature-card > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .62;
  transition: transform .7s cubic-bezier(.16,1,.3,1), opacity .7s ease;
}
.brand-story__feature-card:hover > img { transform: scale(1.06); opacity: .78; }
.feature-card__content {
  position: absolute;
  inset: auto 1.2rem 1.25rem;
}
.feature-card__index { display:block; margin-bottom:.7rem; font-size:.58rem; letter-spacing:.18em; opacity:.78; }
.feature-card__content h3 {
  max-width: 10ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.75rem,2.6vw,2.75rem);
  font-weight: 500;
  line-height: .92;
}
.feature-card__content p { margin:.55rem 0 0; font-size:.7rem; letter-spacing:.04em; opacity:.86; }
.feature-card--green { background:#1b3122; }
.feature-card--sage { background:#7f9473; }
.feature-card--coral { background:#c8794c; }
.feature-card--cream { background:#e6e1d5; color:#242522; }
.feature-card--cream::after { background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(28,28,24,.38)); }
.feature-card--cream .feature-card__content { color:#fff; }

/* All editorial sections sit on the pale contour field. */
.benefits {
  padding-block: clamp(4.5rem,9vw,8rem);
  border-block: 1px solid rgba(34,35,32,.12);
}
.benefits__intro .section-h2,
.categories .section-h2,
.featured-products .section-h2,
.faq__intro .section-h2 {
  color:#20211f;
  font-family:var(--font-display);
  font-weight:600;
}
.benefits__intro > p,
.categories__aside,
.featured-products__intro,
.faq-item__panel,
.benefit-row__body p { color:#62645f; }
.benefits__list, .benefit-row, .faq-item { border-color:rgba(34,35,32,.18); }
.benefit-row__num, .benefit-row__icon { color:#8a7659; }
.benefit-row__icon { border-color:rgba(34,35,32,.24); }
.benefit-row details[open] .benefit-row__icon { background:#8a7659; color:#fff; }
.benefit-row__title { color:#252623; }
.marquee { border-block:1px solid rgba(34,35,32,.12); }
.marquee__item { border-color:rgba(34,35,32,.12); }
.categories {
  padding-block:clamp(5rem,9vw,8rem);
}
.categories__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.category-card {
  border:1px solid rgba(34,35,32,.12);
  border-radius:8px;
  background:#e6e4de;
}
.category-card__meta { background:linear-gradient(0deg,rgba(17,19,16,.88),rgba(17,19,16,0)); }
.featured-products { padding-block:clamp(5rem,9vw,8rem); }
.product-card {
  border:1px solid rgba(34,35,32,.12);
  border-radius:9px;
  background:rgba(255,255,255,.78);
  color:#242522;
  box-shadow:0 8px 28px rgba(40,38,32,.035);
}
.product-card:hover { border-color:rgba(138,118,89,.45); background:#fff; }
.product-card__media { background:#e7e7df; }
.product-card__title { color:#272824; }
.product-card__detail, .product-card__price { color:#62645f; }
.product-card__price { font-weight:600; }
.product-card__cta { color:#2b2c28; border-color:rgba(35,35,32,.25); }
.product-card__cta:hover,
.product-card__cta.added_to_cart,
.product-card__cta.loading { background:#292a27; color:#fff; border-color:#292a27; }
.product-card__badge { background:#f5f2e8; color:#555d4c; }
.demo-notice { color:#70716b; }
.promo { color:#fff; }
.promo__heading { color:#fff; }
.promo__scrim { background:linear-gradient(90deg,rgba(10,15,8,.72),rgba(10,15,8,.18)); }
.faq { padding-block:clamp(5rem,9vw,8rem); }
.faq-item__trigger { color:#282925; }
.faq-item__icon { color:#8a7659; border-color:rgba(34,35,32,.25); }
.newsletter { border-top:1px solid rgba(34,35,32,.12); }
.newsletter__heading { color:#242522; }
.newsletter__form input {
  color:#252623;
  border-color:rgba(34,35,32,.3);
  background:rgba(255,255,255,.55);
}
.newsletter__note { color:#73756f; }
.brand-ticker { border-color:rgba(34,35,32,.12); }
.brand-ticker__row { color:#8a7659; }
.site-footer {
  background:rgba(238,237,231,.78);
  border-top:1px solid rgba(34,35,32,.15);
  color:#252623;
}
.footer__col h4 { color:#8a7659; }
.footer__brand p, .footer__bottom { color:#676963; }
.footer__col a { color:#33342f; }
.footer__col a:hover { color:#8a7659; }

/* WooCommerce pages share the paper background and ink typography. */
.shop-page, .single-product-page, .cart-empty-page, .page-default,
.page-about, .page-contact, .page-faq, .page-tracking,
.archive-page, .search-page, .error-404, .single-post {
  background:transparent;
  color:#252623;
}
.woocommerce, .woocommerce-page { color:#252623; }
.woocommerce a { color:#252623; }
.woocommerce a:hover { color:#8a7659; }
.woocommerce ul.products li.product {
  border-color:rgba(34,35,32,.14);
  background:rgba(255,255,255,.8);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title { color:#252623; }
.woocommerce ul.products li.product .price { color:#62645f; }
.woocommerce div.product .product_title,
.woocommerce .cart_totals h2,
.woocommerce-checkout h3 { color:#252623; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { background:#fffefa; color:#252623; }
.woocommerce-message a, .woocommerce-info a { color:#8a7659; }
.woocommerce-ordering select { background:#fffefa; color:#252623; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  background:rgba(255,255,255,.75);
  color:#252623;
  border-color:rgba(34,35,32,.25);
}
.woocommerce table.shop_table,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-color:rgba(34,35,32,.15); color:#252623; }
.btn--ghost { color:#252623; border-color:rgba(34,35,32,.35); }
.btn--ghost:hover { background:#252623; color:#fff; border-color:#252623; }
.btn--accent { background:#252623; color:#fff; border-color:#252623; }
.btn--accent:hover { background:#8a7659; color:#fff; border-color:#8a7659; }

@media (max-width: 1024px) {
  .brand-story__top { grid-template-columns:1fr 1fr; gap:2rem; }
  .brand-story__features { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  body { background-size: 1200px 760px; }
  .header-inner { padding-block:.9rem; }
  .site-title { font-size:1.1rem; }
  .main-navigation { display:none; }
  .terrain-entry--grocery .terrain-stage { min-height:100svh; height:100svh; }
  .terrain-invitation { padding:0 1.1rem 5.5rem; justify-content:flex-end; }
  .terrain-invitation h1 { max-width:8ch; font-size:clamp(4rem,17vw,6.7rem); line-height:.84; }
  .terrain-enter-link { right:1rem; bottom:1.15rem; }
  .terrain-scroll-label { left:1rem; bottom:1.1rem; font-size:.45rem; }
  .terrain-chapter { font-size:clamp(2.7rem,10vw,4rem); }
  .terrain-arrival { padding:6rem 1.2rem 4rem; }
  .terrain-arrival h2 { font-size:clamp(3.5rem,14vw,5.2rem); }
  .brand-story__top { grid-template-columns:1fr; gap:1.35rem; }
  .brand-story .section-h2 { font-size:clamp(3.2rem,13vw,5rem); }
  .brand-story__body { font-size:1.2rem; }
  .brand-story__features { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
  .brand-story__feature-card { min-height:245px; }
  .feature-card__content { inset:auto .85rem .9rem; }
  .feature-card__content h3 { font-size:1.7rem; }
  .categories__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-grid, .shop-main ul.products, .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 430px) {
  .brand-story__features { gap:.5rem; }
  .brand-story__feature-card { min-height:220px; }
  .feature-card__content h3 { font-size:1.5rem; }
  .terrain-invitation h1 { font-size:clamp(3.5rem,16.5vw,5.5rem); }
}
@media (prefers-reduced-motion: reduce) {
  .terrain-cover, .terrain-camera__reveal, .brand-story__feature-card > img { transition:none !important; }
}

/* ========================================================================
   1.0.9 — product objects in motion.
   The reference uses a repeating animated image ribbon. Terrene turns that
   pattern into a grocery object parade: WooCommerce photos are the image
   source; perspective, float, tilt and scroll depth are generated in CSS/JS.
   ======================================================================== */
.product-orbit {
  position:relative;
  padding:clamp(4.5rem,8vw,7.5rem) 0 clamp(3.5rem,6vw,5rem);
  overflow:hidden;
  color:#242621;
  background-color:#f2f0e9;
  background-image:url('../images/topographic-paper.svg');
  background-position:center 46%;
  background-size:cover;
  border-block:1px solid rgba(35,36,31,.12);
  isolation:isolate;
}
.product-orbit::before,
.product-orbit::after {
  content:'';
  position:absolute;
  z-index:-1;
  pointer-events:none;
  border-radius:50%;
  filter:blur(2px);
}
.product-orbit::before {
  width:42vw;
  height:42vw;
  min-width:420px;
  min-height:420px;
  right:-12vw;
  top:-22vw;
  background:radial-gradient(circle,rgba(195,204,190,.32),transparent 68%);
}
.product-orbit::after {
  width:35vw;
  height:35vw;
  min-width:340px;
  min-height:340px;
  left:-14vw;
  bottom:-22vw;
  background:radial-gradient(circle,rgba(214,193,200,.25),transparent 70%);
}
.product-orbit__heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:clamp(1.6rem,3.5vw,3rem);
}
.product-orbit__heading .eyebrow {
  color:#887b67;
  font-size:.62rem;
  letter-spacing:.24em;
}
.product-orbit__heading .section-h2 {
  margin:.55rem 0 .65rem;
  color:#252622;
  font-family:var(--font-display);
  font-size:clamp(2.7rem,5.5vw,5.6rem);
  font-weight:500;
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:none;
}
.product-orbit__heading p {
  max-width:47ch;
  margin:0;
  color:#66675e;
  font-size:.84rem;
  line-height:1.7;
}
.product-orbit__hint {
  flex:0 0 auto;
  padding-bottom:.3rem;
  color:#88877d;
  font-size:.58rem;
  letter-spacing:.2em;
  white-space:nowrap;
}
.product-orbit__viewport {
  position:relative;
  overflow:hidden;
  padding:1.2rem 0 1.7rem;
  perspective:1800px;
  perspective-origin:50% 48%;
}
.product-orbit__viewport::before,
.product-orbit__viewport::after {
  content:'';
  position:absolute;
  z-index:4;
  top:0;
  bottom:0;
  width:clamp(32px,8vw,150px);
  pointer-events:none;
}
.product-orbit__viewport::before {
  left:0;
  background:linear-gradient(90deg,#f2f0e9 0%,rgba(242,240,233,0) 100%);
}
.product-orbit__viewport::after {
  right:0;
  background:linear-gradient(270deg,#f2f0e9 0%,rgba(242,240,233,0) 100%);
}
.product-orbit__track {
  display:flex;
  align-items:center;
  width:max-content;
  gap:clamp(1.6rem,3.6vw,4.5rem);
  padding:0 max(5vw,2rem) 1.1rem;
  transform-style:preserve-3d;
  will-change:transform;
}
.product-orbit__item {
  position:relative;
  flex:0 0 clamp(210px,21vw,318px);
  width:clamp(210px,21vw,318px);
  aspect-ratio:.78;
  overflow:visible;
  padding:0;
  border:0;
  background:transparent;
  transform-style:preserve-3d;
}
.product-orbit__link {
  display:flex;
  width:100%;
  height:100%;
  flex-direction:column;
  justify-content:flex-start;
  color:inherit;
  text-decoration:none;
}
.product-orbit__visual {
  position:relative;
  display:block;
  flex:1 1 auto;
  min-height:0;
  width:100%;
  perspective:1200px;
  transform-style:preserve-3d;
  isolation:isolate;
  cursor:grab;
}
.product-orbit__halo {
  position:absolute;
  z-index:-2;
  left:13%;
  top:12%;
  width:74%;
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.88) 0%,rgba(225,226,214,.6) 39%,rgba(202,207,190,.16) 68%,transparent 72%);
  transform:translateZ(-35px);
  filter:blur(1px);
}
.product-orbit__pedestal {
  position:absolute;
  z-index:-1;
  left:18%;
  right:18%;
  bottom:8%;
  height:13%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(36,39,30,.22),rgba(36,39,30,.08) 42%,transparent 72%);
  filter:blur(9px);
  transform:rotateX(68deg) translateZ(-42px);
  transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .5s ease;
}
.product-orbit__object {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  transform-style:preserve-3d;
  transform:translate3d(0,calc(var(--scroll-y,0px) + var(--hover-shift,0px)),0) rotateX(var(--tilt-x,0deg)) rotateY(calc(var(--base-rotate,-8deg) + var(--tilt-y,0deg) + var(--scroll-turn,0deg)));
  transition:transform .32s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}
.product-orbit__item .product-orbit__image {
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:center;
  mix-blend-mode:multiply;
  filter:drop-shadow(0 24px 20px rgba(25,29,20,.16));
  transform:translateZ(48px) rotateZ(-2deg) scale(.96);
  transform-origin:50% 55%;
  animation:terrene-product-float 5.6s ease-in-out infinite;
  backface-visibility:hidden;
}
.product-orbit__item:nth-child(4n + 2) .product-orbit__object { --base-rotate:7deg; }
.product-orbit__item:nth-child(4n + 3) .product-orbit__object { --base-rotate:-4deg; }
.product-orbit__item:nth-child(4n + 4) .product-orbit__object { --base-rotate:10deg; }
.product-orbit__item:nth-child(4n + 2) .product-orbit__image { animation-delay:-1.2s; animation-duration:6.2s; }
.product-orbit__item:nth-child(4n + 3) .product-orbit__image { animation-delay:-2.7s; animation-duration:5.1s; }
.product-orbit__item:nth-child(4n + 4) .product-orbit__image { animation-delay:-3.4s; animation-duration:6.6s; }
.product-orbit__spark {
  position:absolute;
  z-index:2;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#c9ad8f;
  box-shadow:0 0 0 5px rgba(201,173,143,.12),0 0 24px rgba(201,173,143,.42);
  opacity:.72;
  pointer-events:none;
}
.product-orbit__spark--one { top:20%; right:12%; }
.product-orbit__spark--two { left:13%; bottom:24%; width:4px; height:4px; animation:terrene-spark-drift 5s ease-in-out infinite; }
.product-orbit__meta {
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:1fr auto;
  gap:.25rem .75rem;
  padding:.85rem .1rem .2rem;
  border-top:1px solid rgba(40,42,35,.16);
}
.product-orbit__tag {
  grid-column:1/-1;
  color:#8b795f;
  font-size:.53rem;
  font-weight:600;
  letter-spacing:.2em;
}
.product-orbit__name {
  overflow:hidden;
  color:#282923;
  font-family:var(--font-display);
  font-size:clamp(1.12rem,1.65vw,1.55rem);
  font-weight:600;
  line-height:1.05;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.product-orbit__detail {
  grid-column:1;
  color:#77776e;
  font-size:.67rem;
}
.product-orbit__price {
  grid-column:2;
  grid-row:2/4;
  align-self:center;
  color:#41463b;
  font-size:.82rem;
  font-weight:600;
  white-space:nowrap;
}
.product-orbit__link:hover .product-orbit__object,
.product-orbit__link:focus-visible .product-orbit__object {
  --hover-shift:-8px;
}
.product-orbit__link:hover .product-orbit__pedestal,
.product-orbit__link:focus-visible .product-orbit__pedestal {
  opacity:.58;
  transform:rotateX(68deg) translateZ(-42px) scale(.82);
}
.product-orbit__link:focus-visible { outline:2px solid #86755d; outline-offset:5px; }
@keyframes terrene-product-float {
  0%,100% { transform:translate3d(0,0,48px) rotateZ(-2deg) scale(.96); }
  50% { transform:translate3d(0,-15px,64px) rotateZ(2.5deg) scale(1.015); }
}
@keyframes terrene-spark-drift {
  0%,100% { transform:translate3d(0,0,12px); opacity:.45; }
  50% { transform:translate3d(12px,-18px,32px); opacity:.9; }
}

/* The same perspective interaction continues on normal WooCommerce cards. */
.product-card__media[data-product-tilt] {
  overflow:hidden;
  perspective:1100px;
  transform-style:preserve-3d;
}
.product-card__stage {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  transform-style:preserve-3d;
  transform:translate3d(0,calc(var(--scroll-y,0px) + var(--hover-shift,0px)),0) rotateX(var(--tilt-x,0deg)) rotateY(calc(var(--tilt-y,0deg) + var(--scroll-turn,0deg)));
  transition:transform .3s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}
.product-card__stage img {
  display:block;
  width:90%;
  height:90%;
  object-fit:contain;
  mix-blend-mode:multiply;
  transform:translateZ(34px);
  filter:drop-shadow(0 18px 13px rgba(37,38,31,.14));
  transition:filter .4s ease;
}
.product-card__media[data-product-tilt]:hover .product-card__stage img {
  filter:drop-shadow(0 27px 18px rgba(37,38,31,.2));
}
.product-card__media .product-card__badge { z-index:3; }

@media (max-width: 767px) {
  .product-orbit { padding-block:3.6rem 2.8rem; }
  .product-orbit__heading { align-items:flex-start; flex-direction:column; gap:.7rem; margin-bottom:1.4rem; }
  .product-orbit__heading .section-h2 { font-size:clamp(2.55rem,11vw,4.5rem); }
  .product-orbit__hint { font-size:.5rem; }
  .product-orbit__viewport { perspective:900px; padding-block:.5rem 1rem; }
  .product-orbit__track { gap:1.3rem; padding-inline:1.25rem; }
  .product-orbit__item { flex-basis:72vw; width:72vw; max-width:300px; }
  .product-orbit__visual { min-height:210px; }
  .product-orbit__name { font-size:1.3rem; }
  .product-orbit__detail { font-size:.62rem; }
}
@media (prefers-reduced-motion: reduce) {
  .product-orbit__image,
  .product-orbit__spark--two { animation:none !important; }
  .product-orbit__object,
  .product-card__stage { transition:none !important; }
}
