/*
Theme Name: Tarulata
Theme URI: https://tarulatanursery.com
Author: Hexframes
Description: Lightweight custom block theme for Tarulata Nursery. Design tokens live in theme.json; this file holds only what theme.json cannot express.
Version: 0.18.4
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: Proprietary. Bundled heading font Fraunces is SIL Open Font License 1.1 (assets/fonts/OFL-Fraunces.txt). Body text uses the visitor's system Helvetica / Arial / Roboto (no file).
Text Domain: tarulata
*/

/* Design rule (docs/design.md): buttons are pills, inputs 10px, images and cards 14px. */
:root {
	--tln-radius-media: 14px;
	--tln-radius-input: 10px;
	--tln-header-offset: var(--wp-admin--admin-bar--height, 0px);
}

/* ---------- Base ---------- */

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Nothing may make the page wider than the screen: on phones that leaves a
   blank strip down the right side of every page (owner, 9 Nov 2026). Clip, not
   hidden, so the sticky header keeps working. On html so that the body value is
   not handed to the browser window; position: relative so that absolutely
   placed elements are clipped too. */
html {
	overflow-x: clip;
}

body {
	position: relative;
	overflow-x: clip;
}

/* The body is now the reference point for absolutely placed elements, and
   WordPress moves it down 46px for the admin bar, so lift the phone admin bar
   back to the top. Only affects logged-in users. On phones that bar scrolls away
   with the page, so the sticky header must not leave room for it. */
@media (max-width: 600px) {
	:root {
		--tln-header-offset: 0px;
	}

	body.admin-bar #wpadminbar {
		top: -46px;
	}
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--canopy);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

:where(p, li) { text-wrap: pretty; }
:where(h1, h2, h3) { text-wrap: balance; }

:where(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="number"], select, textarea) {
	font: inherit;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-input);
	padding: 0.7rem 0.9rem;
}

.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.15s ease;
}

.wp-element-button:active,
.wp-block-button__link:active {
	transform: translateY(1px);
}

/* Keep the footer at the bottom of short pages (empty cart, 404). */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}

.wp-site-blocks > footer {
	margin-top: auto;
}

/* Main takes the spare height, so a band placed after it (404, blog post)
   still sits directly on the footer. */
.wp-site-blocks > main {
	flex-grow: 1;
}

/* Outline button (Buttons block → Styles → Outline): green line, fills on hover. */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--canopy);
	background: transparent;
	color: var(--wp--preset--color--canopy);
	padding: calc(0.8rem - 1px) calc(1.6rem - 1px);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

/* ---------- Header ---------- */

/*
 * The header template part holds three bands: offer strip, main bar, category
 * bar. display:contents lifts them to direct children of .wp-site-blocks, so the
 * main bar can stay sticky for the whole page while the other two scroll away.
 */
.wp-site-blocks > header.wp-block-template-part {
	display: contents;
}

/* overflow-x: clip stops the full-width hairline (100vw includes the scrollbar) from widening the page. */
.tln-header {
	overflow-x: clip;
	position: sticky;
	top: var(--tln-header-offset);
	z-index: 50;
	margin-block: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/*
 * Desktop: logo, search right beside it, account + cart pushed right, then the
 * category menu as a full row underneath. Phones (< 600px, where the navigation
 * block collapses to its menu button): menu left, logo centre, cart right,
 * search on its own row.
 */
.tln-header__bar {
	gap: 0 2.25rem;
	padding-top: 0.6rem;
}

.tln-logo {
	flex: 0 0 auto;
	order: 0;
	margin: 0;
	line-height: 0;
}

.tln-logo img {
	width: 80px;
	height: auto;
}

/* Search: slim pill field with a solid green end cap holding the icon. */
.tln-search {
	flex: 0 1 420px;
	order: 1;
	margin: 0;
}

.tln-search .wp-block-search__inside-wrapper {
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--linen);
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.tln-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--wp--preset--color--canopy);
	background: var(--wp--preset--color--white);
}

.tln-search .wp-block-search__input {
	min-height: 42px;
	padding: 0 0.75rem 0 1.15rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-size: 0.95rem;
	outline: none;
}

.tln-search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--stone);
	opacity: 1;
}

.tln-search .wp-block-search__button {
	flex: 0 0 auto;
	align-self: stretch;
	width: 52px;
	min-height: 42px;
	margin: 0;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0 999px 999px 0;
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-search .wp-block-search__button:hover,
.tln-search .wp-block-search__button:focus-visible {
	background: var(--wp--preset--color--canopy-dark);
}

.tln-search .wp-block-search__button:focus-visible {
	outline-offset: -4px;
	outline-color: var(--wp--preset--color--white);
}

.tln-search .wp-block-search__button svg {
	width: 20px;
	height: 20px;
	min-width: 20px;
	fill: currentColor;
}

/* Account and cart: quiet 44px round icon targets. */
.tln-header__tools {
	flex: 0 0 auto;
	order: 2;
	margin-left: auto;
	gap: 0.25rem;
}

.tln-header .wc-block-mini-cart__button,
.tln-header .wc-block-customer-account a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0.5rem;
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 0;
	border-radius: 999px;
}

.tln-header .wc-block-mini-cart__button:hover,
.tln-header .wc-block-customer-account a:hover {
	background: var(--wp--preset--color--linen);
	color: var(--wp--preset--color--ink);
}

.tln-header .wc-block-mini-cart__icon,
.tln-header .wc-block-customer-account__account-icon {
	width: 26px;
	height: 26px;
}

.tln-header .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
	font-weight: 700;
}

/* WordPress flex layouts reset child margins (.is-layout-flex > *), so these need two classes. */
.tln-header__bar > .tln-header__tools {
	margin-left: auto;
}

.tln-header__bar > .tln-catnav {
	margin-top: 0.6rem;
}

/* Category menu: a full-width row under the logo bar on desktop. */
.tln-catnav {
	order: 3;
	flex: 1 0 100%;
	min-width: 0;
	max-width: 100%;
	position: relative;
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.tln-catnav .wp-block-navigation__container {
	gap: 0.25rem 1.75rem;
}

.tln-catnav .wp-block-navigation-item__content {
	display: block;
	padding-block: 0.65rem;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
}

.tln-catnav .wp-block-navigation-item__content:hover,
.tln-catnav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--canopy);
	border-bottom-color: var(--wp--preset--color--canopy);
}

/* Offers: last in the row, in Marigold dark. */
.tln-catnav .tln-catnav__offers > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--marigold-dark);
	font-weight: 700;
}

.tln-catnav .tln-catnav__mobile-only {
	display: none;
}

/* Categories with no published plants yet: greyed, still clickable ("Coming soon"). */
.tln-catnav .tln-catnav__soon > .wp-block-navigation-item__content,
.tln-catnav .tln-catnav__soon > .wp-block-navigation-submenu__toggle {
	color: color-mix(in srgb, var(--wp--preset--color--stone) 70%, var(--wp--preset--color--white));
}

/* Dropdowns (tln-catnav.php builds them from Products → Categories). */
.tln-catnav .has-child .wp-block-navigation-submenu__toggle {
	margin-left: 0.15rem;
}

.tln-catnav .wp-block-navigation__submenu-container {
	z-index: 60;
	padding: 0.5rem;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 12px;
	background: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--ink) !important;
	font-size: 0.95rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.tln-catnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.45rem 0.75rem;
	border-bottom: 0;
	border-radius: 8px;
}

.tln-catnav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--canopy);
}

.tln-catnav .tln-catnav__all > .wp-block-navigation-item__content {
	font-weight: 700;
	color: var(--wp--preset--color--canopy);
}

/* Long lists (Fruit plants) open as three columns. */
@media (min-width: 600px) {
	.tln-catnav .tln-catnav__wide > .wp-block-navigation__submenu-container {
		display: grid;
		grid-template-columns: repeat(3, max-content);
		column-gap: 0.25rem;
	}

	.tln-catnav .tln-catnav__all {
		grid-column: 1 / -1;
	}
}

/* Narrower screens: the row wraps instead of scrolling, so dropdowns are not clipped. */
@media (min-width: 600px) and (max-width: 1240px) {
	.tln-catnav .wp-block-navigation__responsive-container,
	.tln-catnav .wp-block-navigation__responsive-close,
	.tln-catnav .wp-block-navigation__responsive-dialog,
	.tln-catnav .wp-block-navigation__responsive-container-content {
		min-width: 0;
		max-width: 100%;
		width: 100%;
	}

	.tln-catnav .wp-block-navigation__container {
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 0 1.25rem;
	}

	.tln-catnav .tln-catnav__wide > .wp-block-navigation__submenu-container {
		grid-template-columns: repeat(2, max-content);
	}
}

/* Phones: menu left, logo centre, cart right; search on its own row. */
@media (max-width: 599px) {
	.wp-block-group.tln-header__bar {
		display: grid;
		grid-template-columns: 44px 1fr 44px;
		grid-template-areas:
			"menu logo tools"
			"search search search";
		align-items: center;
		gap: 0.5rem;
		padding-block: 0.4rem 0.65rem;
	}

	.tln-header__bar > .tln-catnav {
		grid-area: menu;
		margin: 0;
	}

	.tln-logo {
		grid-area: logo;
		justify-self: center;
	}

	.tln-logo img { width: 64px; }

	.tln-header__bar > .tln-header__tools {
		grid-area: tools;
		justify-self: end;
		margin: 0;
	}

	.tln-header .wp-block-woocommerce-customer-account { display: none; }

	.tln-search {
		grid-area: search;
		max-width: none;
	}

	/* Menu button */
	.tln-catnav .wp-block-navigation__responsive-container-open {
		width: 44px;
		height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin-left: -10px;
		border-radius: 999px;
		color: var(--wp--preset--color--ink);
	}

	.tln-catnav .wp-block-navigation__responsive-container-open svg {
		width: 28px;
		height: 28px;
	}

	/* Open menu: a clean list of categories. */
	.tln-catnav .wp-block-navigation__responsive-container.is-menu-open {
		padding: 1rem var(--wp--preset--spacing--40) 2rem;
	}

	.tln-catnav .is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: 2.75rem;
	}

	.tln-catnav .is-menu-open .wp-block-navigation__container {
		gap: 0;
		width: 100%;
	}

	.tln-catnav .is-menu-open .wp-block-navigation-item {
		width: 100%;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}

	.tln-catnav .is-menu-open .wp-block-navigation-item__content {
		width: 100%;
		padding-block: 0.9rem;
		font-size: 1.125rem;
		border-bottom: 0;
	}

	.tln-catnav .is-menu-open .tln-catnav__mobile-only {
		display: block;
	}

	/* Phone menu: subcategories sit under their parent as a two-column list. */
	.tln-catnav .is-menu-open .has-child > .wp-block-navigation-item__content {
		font-weight: 700;
	}

	.tln-catnav .is-menu-open .wp-block-navigation__submenu-container {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 0 1rem;
		width: 100%;
		padding: 0 0 0.75rem !important;
		border: 0 !important;
		border-radius: 0;
		box-shadow: none;
	}

	.tln-catnav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border-bottom: 0;
	}

	.tln-catnav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.5rem 0;
		font-size: 1rem;
		color: var(--wp--preset--color--stone);
		white-space: normal;
	}

	.tln-catnav .is-menu-open .tln-catnav__all {
		grid-column: 1 / -1;
	}

	.tln-catnav .wp-block-navigation__responsive-container-close {
		top: 1rem;
		right: var(--wp--preset--spacing--40);
	}

	.tln-catnav .wp-block-navigation__responsive-container-close svg {
		width: 28px;
		height: 28px;
	}
}

/* ---------- Main ---------- */

.tln-main {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--60);
}

/* ---------- Home: hero ---------- */
/*
 * Rendered by code/sandbox/tln-hero.php (block tln/hero). Text 40%, banners 60%.
 * The banner column is capped by viewport height so the whole hero, header
 * included, fits the first screen on laptops.
 */

.tln-main--home {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: 0;
}

.tln-hero {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
	align-items: center;
	gap: var(--wp--preset--spacing--50);
	margin-block: 0;
}

.tln-hero--fallback {
	grid-template-columns: minmax(0, 1fr);
}

.tln-hero__title {
	max-width: 15ch;
	margin: 0;
	font-size: clamp(2.25rem, 1.4rem + 2.6vw, 3.5rem);
}

.tln-hero__lead {
	max-width: 36ch;
	margin: 1rem 0 0;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--stone);
}

.tln-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
	margin-top: var(--wp--preset--spacing--40);
}

.tln-hero__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--wp--preset--color--canopy);
	font-weight: 700;
	text-decoration: none;
}

.tln-hero__link svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
	transition: transform 0.15s ease;
}

.tln-hero__link:hover {
	color: var(--wp--preset--color--canopy-dark);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.tln-hero__link:hover svg {
	transform: translateX(3px);
}

/* Banner carousel: native scroll-snap, 4:3, one banner at a time. */
.tln-banners {
	position: relative;
	width: 100%;
	max-width: calc((100vh - 300px) * 4 / 3);
	min-width: min(100%, 420px);
	justify-self: end;
}

.tln-banners__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	aspect-ratio: 4 / 3;
	border-radius: var(--tln-radius-media);
	background: var(--wp--preset--color--white);
}

.tln-banners__track::-webkit-scrollbar { display: none; }

.tln-banners__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.tln-banners__link {
	display: block;
	height: 100%;
}

.tln-banners__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-banners__arrow {
	position: absolute;
	top: calc(50% - 22px);
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.2s ease, background-color 0.15s ease;
}

.tln-banners__prev { left: 12px; }
.tln-banners__next { right: 12px; }

.tln-banners:hover .tln-banners__arrow,
.tln-banners__arrow:focus-visible {
	opacity: 1;
}

.tln-banners__arrow:hover {
	background: var(--wp--preset--color--white);
}

.tln-banners__arrow svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.tln-banners__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.tln-banners__dots {
	display: flex;
	gap: 0.15rem;
}

/* 24px hit area, 8px visible dot. */
.tln-banners__dot {
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	position: relative;
}

.tln-banners__dot::after {
	content: "";
	position: absolute;
	inset: 8px;
	border-radius: 999px;
	background: var(--wp--preset--color--line);
	transition: background-color 0.2s ease, inset 0.2s ease;
}

.tln-banners__dot[aria-current="true"]::after {
	inset: 8px 4px;
	background: var(--wp--preset--color--canopy);
}

.tln-banners__pause {
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--stone);
	cursor: pointer;
}

.tln-banners__pause:hover {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}

.tln-banners__pause svg {
	width: 12px;
	height: 12px;
	fill: currentColor;
}

.tln-banners__pause .tln-i-play,
.tln-banners__pause[aria-pressed="true"] .tln-i-pause { display: none; }
.tln-banners__pause[aria-pressed="true"] .tln-i-play { display: block; }

@media (prefers-reduced-motion: reduce) {
	.tln-banners__track { scroll-behavior: auto; }
	.tln-banners__arrow, .tln-banners__dot::after, .tln-hero__link svg { transition: none; }
}

/* Touch screens have no hover: keep arrows hidden, people swipe. */
@media (hover: none) {
	.tln-banners__arrow { display: none; }
}

@media (max-width: 781px) {
	.tln-main--home {
		padding-top: var(--wp--preset--spacing--30);
	}

	.tln-hero {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--40);
	}

	.tln-hero__title {
		font-size: clamp(1.875rem, 1.2rem + 3.5vw, 2.5rem);
	}

	.tln-hero__lead {
		margin-top: 0.6rem;
		font-size: var(--wp--preset--font-size--medium);
	}

	.tln-hero__actions {
		margin-top: var(--wp--preset--spacing--30);
	}

	.tln-banners {
		max-width: none;
		min-width: 0;
		justify-self: stretch;
	}
}

/* ---------- Home: categories ---------- */
/* Markup from code/sandbox/tln-categories.php. Desktop: one even row.
   Under 900px: a sideways-scrolling row that bleeds to the screen edges. */
.tln-cats {
	margin-block: var(--wp--preset--spacing--50) 0;
}

/* The heading is hidden on screen (owner, 3 Nov) but kept for screen readers and search engines. */
.tln-cats__title {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.tln-cats__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--tln-cats-n, 10), minmax(0, 132px));
	justify-content: center;
	gap: 1.5rem 2rem;
}

.tln-cats__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	color: var(--wp--preset--color--ink);
	text-align: center;
	text-decoration: none;
	border-radius: 12px;
}

.tln-cats__circle {
	display: grid;
	place-items: center;
	width: 100%;
	max-width: 112px;
	color: var(--wp--preset--color--canopy);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	overflow: hidden;
	transition: border-color 0.15s ease;
}

.tln-cats__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Line icon until the category has a photo. */
.tln-cats__icon {
	display: block;
	width: 36%;
	height: auto;
}

.tln-cats__name {
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.3;
}

.tln-cats__link:hover .tln-cats__circle {
	border-color: var(--wp--preset--color--canopy);
}

.tln-cats__link:hover .tln-cats__name {
	color: var(--wp--preset--color--canopy);
}

@media (max-width: 899px) {
	/* flex-start, not the desktop centring: a centred row that overflows pushes
	   its first items past the left edge, where they cannot be scrolled to. */
	.tln-cats__list {
		display: flex;
		justify-content: flex-start;
		gap: 0.875rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin-inline: calc(-1 * var(--wp--style--root--padding-left, 1.25rem)) calc(-1 * var(--wp--style--root--padding-right, 1.25rem));
		padding: 2px var(--wp--style--root--padding-right, 1.25rem) 2px var(--wp--style--root--padding-left, 1.25rem);
		scroll-padding-inline: var(--wp--style--root--padding-left, 1.25rem);
	}

	.tln-cats__list::-webkit-scrollbar {
		display: none;
	}

	.tln-cats__item {
		flex: 0 0 96px;
		scroll-snap-align: start;
	}
}

@media (max-width: 599px) {
	.tln-cats__list {
		gap: 0.75rem;
	}

	.tln-cats__item {
		flex-basis: 72px;
	}

	.tln-cats__name {
		font-size: 0.8125rem;
	}
}

/* ---------- Product card ---------- */
/* Markup from tln_products_card() in code/sandbox/tln-products.php. Reused later
   on the shop and category pages. White card, hairline border, no shadow.
   Photo on top with its labels (Bestseller, % off, rating chip); name in the
   heading font, one selling line, then price and button on one row
   (owner, 7 Nov 2026). */
.tln-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	overflow: hidden;
}

.tln-card__top {
	position: relative;
}

.tln-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1;
	background: var(--wp--preset--color--linen);
	overflow: hidden;
}

.tln-card__img,
.tln-card__alt {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-card__alt {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.25s ease;
}

@media (hover: hover) {
	.tln-card:hover .has-alt .tln-card__alt {
		opacity: 1;
	}
}

.tln-card__sample {
	display: grid;
	place-items: center;
	height: 100%;
}

.tln-card__sample svg {
	width: 64%;
	height: auto;
}

/* Labels on the photo: Bestseller top-left, % off top-right. */
.tln-card__flags {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	right: 0.75rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
	margin: 0;
	pointer-events: none;
}

.tln-card__flag,
.tln-card__badge {
	padding: 0.3rem 0.65rem;
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.tln-card__flag {
	background: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--linen);
}

.tln-card__badge {
	margin-left: auto;
	background: var(--wp--preset--color--marigold);
	color: var(--wp--preset--color--ink);
}

/* Rating chip on the photo, bottom-left: "4.6 ★ | 12". */
.tln-card__rating {
	position: absolute;
	bottom: 0.75rem;
	left: 0.75rem;
	margin: 0;
	padding: 0.25rem 0.5rem;
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--wp--preset--color--ink);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
	pointer-events: none;
}

.tln-card__star {
	color: var(--wp--preset--color--marigold-dark);
}

.tln-card__sep {
	margin: 0 0.3rem;
	color: var(--wp--preset--color--line);
	font-weight: 400;
}

.tln-card__rating > span > :last-child,
.tln-card__rating > span {
	white-space: nowrap;
}

.tln-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.3rem;
	padding: 0.9rem 1rem 1rem;
}

.tln-card .tln-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.1875rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.005em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.tln-card__title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-card__title a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.12em;
}

/* One selling line; an empty line keeps prices level across the row. */
.tln-card__tagline {
	margin: 0;
	overflow: hidden;
	color: var(--wp--preset--color--stone);
	font-size: 0.875rem;
	line-height: 1.4;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.tln-card__tagline.is-empty {
	height: 1.225rem;
}

/* Price left, button right. */
.tln-card__buy {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-top: auto;
	padding-top: 0.6rem;
}

.tln-card__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.35rem;
	min-width: 0;
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--wp--preset--color--ink);
}

.tln-card__price del {
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-card__price ins {
	text-decoration: none;
}

.tln-card__btn {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 2.5rem;
	padding: 0 1.05rem;
	border: 1px solid var(--wp--preset--color--canopy);
	border-radius: 999px;
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.tln-card__btn:hover,
.tln-card__btn.is-added {
	background: var(--wp--preset--color--canopy-dark);
	border-color: var(--wp--preset--color--canopy-dark);
	color: var(--wp--preset--color--white);
}

.tln-card__btn.is-busy {
	opacity: 0.75;
}

.tln-card__btn--ghost {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--canopy);
}

.tln-card__btn--ghost:hover {
	color: var(--wp--preset--color--white);
}

.tln-card__btn.is-disabled {
	background: var(--wp--preset--color--linen);
	border-color: var(--wp--preset--color--line);
	color: var(--wp--preset--color--stone);
	cursor: default;
}

.tln-card__btn.is-sample {
	cursor: default;
}

/* Icons are for the phone version; wider screens show the words. */
.tln-card__icon {
	display: none;
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (max-width: 599px) {
	.tln-card__body {
		padding: 0.7rem 0.75rem 0.75rem;
	}

	.tln-card .tln-card__title {
		font-size: 1rem;
	}

	.tln-card__tagline {
		font-size: 0.8125rem;
	}

	.tln-card__tagline.is-empty {
		height: 1.1375rem;
	}

	.tln-card__price {
		font-size: 1rem;
	}

	.tln-card__price del {
		font-size: 0.75rem;
	}

	.tln-card__flags {
		top: 0.5rem;
		left: 0.5rem;
		right: 0.5rem;
		gap: 0.25rem;
	}

	/* Small enough that "Bestseller" and "29% off" share one line on a 150px card. */
	.tln-card__flag,
	.tln-card__badge {
		padding: 0.22rem 0.42rem;
		font-size: 0.5625rem;
		letter-spacing: 0.03em;
	}

	.tln-card__rating {
		bottom: 0.5rem;
		left: 0.5rem;
		font-size: 0.6875rem;
	}

	/* Round icon button; the words stay for screen readers. */
	.tln-card__btn:not(.is-disabled) {
		width: 2.5rem;
		padding: 0;
	}

	.tln-card__btn:not(.is-disabled) .tln-card__btn-text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.tln-card__btn:not(.is-disabled) .tln-card__icon--cart,
	.tln-card__btn:not(.is-disabled) .tln-card__icon--arrow {
		display: block;
	}

	.tln-card__btn.is-added .tln-card__icon--cart {
		display: none;
	}

	.tln-card__btn.is-added .tln-card__icon--check {
		display: block;
	}

	.tln-card__btn.is-disabled {
		min-height: 2rem;
		padding: 0 0.6rem;
		font-size: 0.75rem;
	}
}

/* ---------- Home: colour bands ---------- */
/* Colour plan (owner, 7 Nov 2026, palette "Linen & Marigold"; Bestsellers white
   since 9 Nov). Page order and
   bands: hero and categories (linen), Bestsellers (white), Featured plants
   (linen), offer tiles (white), New arrivals (linen), nursery story (deep), reviews
   (linen), plant care (white), questions (linen), help band (sand), footer
   (deep). Bands are alignfull; the inner box keeps the wide width. */
.tln-products,
.tln-sec {
	padding-inline: var(--wp--style--root--padding-left, 1.25rem) var(--wp--style--root--padding-right, 1.25rem);
}

.tln-products__inner,
.tln-sec__inner {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto;
}

.tln-main--home > .tln-cats {
	margin-bottom: var(--wp--preset--spacing--60);
}

.tln-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* ---------- Home: sections ---------- */
/* Markup from code/sandbox/tln-home.php and one file per section (tln-tiles,
   tln-needs, tln-story, tln-reviews, tln-blog row, tln-faq, tln-help). */
.tln-sec {
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--60);
}

.tln-sec--mint { background: var(--wp--preset--color--mint); }
.tln-sec--sand { background: var(--wp--preset--color--sand); }

.tln-sec--deep {
	background: var(--wp--preset--color--deep);
	color: var(--wp--preset--color--linen);
}

/* Two linen sections in a row share one gap. */
.tln-sec--linen + .tln-sec--linen {
	padding-top: 0;
}

.tln-sec__head {
	display: grid;
	gap: 0.5rem;
	justify-items: center;
	max-width: 40rem;
	margin: 0 auto 1.75rem;
	text-align: center;
}

.tln-sec__title {
	margin: 0;
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
}

.tln-sec__lead {
	margin: 0;
	color: var(--wp--preset--color--stone);
}

.tln-sec__more {
	margin: 1.75rem 0 0;
	text-align: center;
}

/* Outlined button, as "View all" under the product rows. */
.tln-sec .tln-sec__btn {
	border: 1px solid var(--wp--preset--color--canopy);
	background: transparent;
	color: var(--wp--preset--color--canopy);
}

.tln-sec .tln-sec__btn:hover,
.tln-sec .tln-sec__btn:focus-visible {
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-sec--deep .tln-sec__btn {
	border-color: var(--wp--preset--color--linen);
	color: var(--wp--preset--color--linen);
}

.tln-sec--deep .tln-sec__btn:hover,
.tln-sec--deep .tln-sec__btn:focus-visible {
	background: var(--wp--preset--color--linen);
	color: var(--wp--preset--color--deep);
}

.tln-ph {
	display: block;
	width: 100%;
	height: auto;
}

/* Offer tiles: two 2:1 images side by side, stacked on phones. */
.tln-tiles__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-tile {
	min-width: 0;
	margin: 0;
}

.tln-tile__link {
	display: block;
	border-radius: var(--tln-radius-media);
	overflow: hidden;
}

.tln-tile__img,
.tln-tile .tln-ph {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1;
	object-fit: cover;
	border-radius: var(--tln-radius-media);
}

/* Shop by need: 6 / 3 picture tiles. */
.tln-needs__list {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-needs__list > li {
	min-width: 0;
	margin: 0;
}

.tln-need {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	transition: border-color 0.15s ease;
}

a.tln-need:hover {
	border-color: var(--wp--preset--color--canopy);
}

.tln-need__media {
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--mint);
}

.tln-need__media img,
.tln-need__media svg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-need__label {
	padding: 0.75rem 0.875rem;
	font-weight: 700;
	font-size: 0.9375rem;
	line-height: 1.25;
}

/* Nursery story: photo 5/12, text 7/12 on the Deep band. */
.tln-story__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: center;
}

.tln-story--text .tln-story__grid {
	grid-template-columns: minmax(0, 1fr);
	max-width: 52rem;
}

.tln-story__media img,
.tln-story__media svg {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--tln-radius-media);
}

.tln-story__title {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--linen);
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
}

.tln-story__lead {
	max-width: 40rem;
	margin: 0 0 2rem;
	color: color-mix(in srgb, var(--wp--preset--color--linen) 80%, transparent);
}

.tln-story__steps {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: tln-step;
}

.tln-story__steps li {
	display: grid;
	grid-template-columns: 2.25rem minmax(0, 1fr);
	gap: 0.75rem;
	margin: 0;
	counter-increment: tln-step;
}

/* The steps are a real sequence (bed to doorstep), so they are numbered. */
.tln-story__steps li::before {
	content: counter(tln-step, decimal-leading-zero);
	font-family: var(--wp--preset--font-family--fraunces);
	font-weight: 600;
	font-size: 1.5rem;
	line-height: 1.1;
	color: #9BCB5A; /* Light leaf green: decoration on the Deep band only (6.7:1). */
}

.tln-story__steps p {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: color-mix(in srgb, var(--wp--preset--color--linen) 78%, transparent);
}

.tln-story__steps strong {
	display: block;
	margin-bottom: 0.2rem;
	font-size: 1.0625rem;
	color: var(--wp--preset--color--linen);
}

.tln-story__more {
	margin: 2rem 0 0;
}

/* Reviews: three white cards. */
.tln-reviews__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-review {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	min-width: 0;
	margin: 0;
	padding: 1.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-review--ph {
	border-style: dashed;
}

.tln-review__stars {
	display: flex;
	gap: 2px;
	color: var(--wp--preset--color--marigold-dark);
}

.tln-review__stars svg {
	width: 1.125rem;
	height: 1.125rem;
	fill: currentColor;
}

.tln-review__stars .is-off {
	fill: var(--wp--preset--color--line);
}

.tln-review__text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.55;
}

.tln-review__text p {
	margin: 0;
}

.tln-review--ph .tln-review__text {
	color: var(--wp--preset--color--stone);
}

.tln-review__by {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	margin: auto 0 0;
	font-size: 0.875rem;
	color: var(--wp--preset--color--stone);
}

.tln-review__by strong {
	color: var(--wp--preset--color--ink);
}

.tln-review__by a {
	color: var(--wp--preset--color--canopy);
}

.tln-review__verified {
	flex-basis: 100%;
	font-weight: 700;
	color: var(--wp--preset--color--canopy);
}

/* Plant care row and offer tiles (owner, 9 Nov 2026): white bands with a
   hairline above and below, like Bestsellers. Their markup still names another
   tone, hence the two classes. Empty pictures keep their Mint default, so they
   stay visible on white. */
.tln-sec.tln-blogrow,
.tln-sec.tln-tiles {
	background: var(--wp--preset--color--white);
	border-block: 1px solid var(--wp--preset--color--line);
}

/* Questions: open/close rows, no JavaScript. */
.tln-faq__list {
	display: grid;
	gap: 0.75rem;
	max-width: 48rem;
	margin-inline: auto;
}

.tln-faq__item {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	font-weight: 700;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.tln-faq__q::-webkit-details-marker {
	display: none;
}

.tln-faq__q::after {
	content: "+";
	flex: none;
	width: 1.5rem;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	color: var(--wp--preset--color--canopy);
}

.tln-faq__item[open] > .tln-faq__q::after {
	content: "\2212";
}

.tln-faq__a {
	padding: 0 1.25rem 1.1rem;
}

.tln-faq__a p {
	margin: 0 0 0.75rem;
}

.tln-faq__a > :last-child {
	margin-bottom: 0;
}

.tln-faq__ph {
	color: var(--wp--preset--color--stone);
	font-style: italic;
}

/* Help band: text left, WhatsApp button right. */
.tln-help {
	padding-block: var(--wp--preset--spacing--50);
}

.tln-help__box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem 2.5rem;
}

.tln-help__text {
	flex: 1 1 22rem;
	min-width: 0;
}

.tln-help__title {
	margin: 0 0 0.35rem;
	font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
}

.tln-help__lead {
	max-width: 40rem;
	margin: 0;
	color: var(--wp--preset--color--stone);
}

.tln-help__action {
	flex: 0 1 auto;
	display: grid;
	gap: 0.5rem;
	justify-items: start;
}

.tln-help__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	text-decoration: none;
}

.tln-help__btn svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linejoin: round;
	stroke-linecap: round;
}

.tln-help__btn.is-placeholder {
	background: var(--wp--preset--color--stone);
	cursor: not-allowed;
}

.tln-help__note {
	max-width: 22rem;
	margin: 0;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--stone);
}

@media (max-width: 1099px) {
	.tln-needs__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.tln-tiles__list,
	.tln-reviews__list,
	.tln-story__grid,
	.tln-story__steps {
		grid-template-columns: minmax(0, 1fr);
	}

	.tln-tiles__list {
		gap: 1rem;
	}

	.tln-story__steps {
		gap: 1.25rem;
	}
}

@media (max-width: 599px) {
	.tln-needs__list {
		gap: 0.625rem;
	}

	.tln-need__label {
		padding: 0.6rem 0.625rem;
		font-size: 0.875rem;
	}

	.tln-faq__q {
		padding: 0.875rem 1rem;
	}

	.tln-faq__a {
		padding: 0 1rem 1rem;
	}

	.tln-help__action {
		width: 100%;
	}

	.tln-help__btn {
		width: 100%;
		justify-content: center;
	}
}

/* ---------- Home: products ---------- */
/* Home carousels (owner, 7 and 9 Nov 2026): Bestsellers, Featured plants, then
   New arrivals after the offer tiles. Mint is the default for this component
   ("You may also like" on product pages uses it). */
.tln-products {
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--mint);
}

/* All home carousels (owner, 9 Nov 2026): white band so the plant photos stand
   out. White and Linen are nearly the same colour, so a hairline above and
   below keeps it a distinct band; cards get a soft shadow to lift them off the
   white. Scoped to the home page: "You may also like" shares .tln-products. */
.tln-main--home > .tln-products {
	background: var(--wp--preset--color--white);
	border-block: 1px solid var(--wp--preset--color--line);
}

/* Featured plants and New arrivals sit on Linen so they stand apart from the
   white bands next to them; those white bands carry the hairlines. */
.tln-main--home > .tln-products--plain {
	background: var(--wp--preset--color--linen);
	border-block: 0;
}

.tln-main--home > .tln-products .tln-card {
	box-shadow: 0 6px 16px rgba(26, 42, 28, 0.1);
}

/* The track scrolls sideways, so it clips anything outside its box. Padding
   makes room for the shadow; equal negative margins keep the row in place. */
.tln-main--home > .tln-products .tln-carousel__track {
	margin-block: -10px -22px;
	padding-block: 12px 24px;
}

/* Sides: room for the whole shadow (20px, the gap between cards, so the next
   card stays out of sight), then a fade over that room. Without the fade the
   edge of the scroll area cuts the shadows in a straight line. Phones run edge
   to edge, so the screen edge does this job. */
@media (min-width: 600px) {
	.tln-main--home > .tln-products .tln-carousel__track {
		margin-inline: -20px;
		padding-inline: 20px;
		scroll-padding-inline: 20px;
		-webkit-mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
		mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
	}
}

.tln-products__title {
	margin: 0 0 1.75rem;
	text-align: center;
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
}

.tln-products__tabs {
	display: flex;
	justify-content: safe center;
	gap: 0.5rem;
	margin: 0 0 1.75rem;
	padding: 2px;
	overflow-x: auto;
	scrollbar-width: none;
}

.tln-products__tabs::-webkit-scrollbar {
	display: none;
}

.tln-products__tab {
	flex: none;
	padding: 0.55rem 1.15rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.2;
	cursor: pointer;
}

.tln-products__tab:hover {
	border-color: var(--wp--preset--color--canopy);
}

.tln-products__tab[aria-selected="true"] {
	background: var(--wp--preset--color--canopy);
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-products__note {
	margin: -1rem 0 1.5rem;
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

/* Carousel: native sideways scrolling with snap points. 4 cards on desktop,
   3 on tablets, 2 plus a peek of the next on phones. Arrows on screens with a
   mouse, dots on touch screens (both added by the inline script). */
.tln-carousel {
	position: relative;
	--tln-gap: 1.25rem;
	--tln-per: 4;
}

.tln-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--tln-per) - 1) * var(--tln-gap)) / var(--tln-per));
	gap: var(--tln-gap);
	margin: 0;
	padding: 2px 0;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.tln-carousel__track::-webkit-scrollbar {
	display: none;
}

.tln-carousel__track > li {
	scroll-snap-align: start;
}

.tln-carousel__arrow {
	position: absolute;
	top: calc(var(--tln-card-w, 18rem) / 2);
	z-index: 1;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-top: -1.375rem;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	transition: opacity 0.15s ease, border-color 0.15s ease;
}

.tln-carousel__arrow[hidden] {
	display: none;
}

.tln-carousel__arrow:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--canopy);
}

.tln-carousel__arrow:disabled {
	opacity: 0;
	pointer-events: none;
}

.tln-carousel__arrow svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tln-carousel__arrow--prev {
	left: -1.375rem;
}

.tln-carousel__arrow--next {
	right: -1.375rem;
}

.tln-carousel__dots {
	display: none;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1rem;
}

.tln-carousel__dots span {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: var(--wp--preset--color--line);
	transition: background-color 0.15s ease, width 0.15s ease;
}

.tln-carousel__dots span.is-on {
	width: 1.25rem;
	border-radius: 999px;
	background: var(--wp--preset--color--canopy);
}

/* The arrows sit halfway down the photo: card width / 2. */
@supports (width: 1cqw) {
	.tln-carousel {
		container-type: inline-size;
	}

	.tln-carousel__arrow {
		--tln-card-w: calc((100cqw - (var(--tln-per) - 1) * var(--tln-gap)) / var(--tln-per));
	}
}

/* Touch screens: no arrows, people swipe; dots show where they are. */
@media (hover: none) {
	.tln-carousel__arrow {
		display: none !important;
	}

	.tln-carousel__dots {
		display: flex;
	}
}

.tln-products__more {
	margin: 1.75rem 0 0;
	text-align: center;
}

.tln-products .tln-products__all {
	border: 1px solid var(--wp--preset--color--canopy);
	background: transparent;
	color: var(--wp--preset--color--canopy);
}

.tln-products .tln-products__all:hover {
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

@media (max-width: 1099px) {
	.tln-carousel {
		--tln-per: 3;
	}
}

@media (max-width: 1199px) {
	/* Less room beside the row: keep the arrows inside it. */
	.tln-carousel__arrow--prev {
		left: 0.5rem;
	}

	.tln-carousel__arrow--next {
		right: 0.5rem;
	}
}

@media (max-width: 599px) {
	/* Edge to edge with the next card peeking, like the category row. */
	.tln-carousel {
		--tln-gap: 0.75rem;
		--tln-per: 2.2;
		margin-inline: calc(-1 * var(--wp--style--root--padding-left, 1.25rem)) calc(-1 * var(--wp--style--root--padding-right, 1.25rem));
	}

	.tln-carousel__track {
		grid-auto-columns: calc((100% - 2 * var(--tln-gap)) / 2.15);
		padding-inline: var(--wp--style--root--padding-left, 1.25rem) var(--wp--style--root--padding-right, 1.25rem);
		scroll-padding-inline: var(--wp--style--root--padding-left, 1.25rem);
	}

	.tln-products__tabs {
		justify-content: flex-start;
		margin-inline: calc(-1 * var(--wp--style--root--padding-left, 1.25rem)) calc(-1 * var(--wp--style--root--padding-right, 1.25rem));
		padding-inline: var(--wp--style--root--padding-left, 1.25rem) var(--wp--style--root--padding-right, 1.25rem);
	}
}

/* ---------- Blog ---------- */
/* Templates home.html (list), archive.html (category, tag, author) and
   single.html (post). The small blocks (meta line, breadcrumbs, pills, share,
   Keep reading, shop band, contents box) come from code/sandbox/tln-blog.php. */

.tln-crumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-crumbs li + li::before {
	content: "›";
	margin-right: 0.5rem;
}

.tln-crumbs a {
	color: inherit;
	text-decoration: none;
}

.tln-crumbs a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
}

/* List head */
.tln-blog__head {
	margin-bottom: var(--wp--preset--spacing--50);
}

.tln-blog__title {
	margin: 0;
	font-size: clamp(2.25rem, 1.6rem + 2.2vw, 3.25rem);
}

.tln-blog__lead {
	max-width: 60ch;
	margin: 0.75rem 0 0;
	color: var(--wp--preset--color--stone);
	font-size: var(--wp--preset--font-size--large);
}

.tln-blog__lead p {
	margin: 0;
}

/* Category pills (shared style, also usable on shop pages later). */
.tln-chips ul {
	display: flex;
	gap: 0.5rem;
	margin: 1.5rem 0 0;
	padding: 2px;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.tln-chips ul::-webkit-scrollbar {
	display: none;
}

.tln-chip {
	display: block;
	flex: none;
	padding: 0.55rem 1.15rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: none;
}

.tln-chip:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--ink);
}

.tln-chip.is-active {
	background: var(--wp--preset--color--canopy);
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

/* Post grid: 3 / 2 / 1 columns. No card boxes (docs/design.md): picture,
   title, meta line, summary on the page background. */
.tln-posts__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2.75rem 1.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-posts__grid > li {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
	margin: 0;
}

.tln-post-thumb {
	margin: 0;
}

.tln-post-thumb a {
	display: block;
	border-radius: var(--tln-radius-media);
	overflow: hidden;
}

.tln-post-thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--tln-radius-media);
}

.tln-post-thumb--empty a {
	display: grid;
	place-items: center;
	aspect-ratio: 3 / 2;
	background: var(--wp--preset--color--mint);
}

.tln-post-thumb--empty svg {
	width: 22%;
	height: auto;
}

.tln-post-body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.tln-post-body > * {
	margin: 0;
}

.tln-posts__grid .wp-block-post-title {
	margin: 0;
	font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.4375rem);
	line-height: 1.2;
}

.tln-posts__grid .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-posts__grid .wp-block-post-title a:hover {
	color: var(--wp--preset--color--canopy-dark);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.tln-post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.15rem 0.5rem;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-post-meta a {
	color: var(--wp--preset--color--canopy);
	font-weight: 700;
	text-decoration: none;
}

.tln-post-meta a:hover {
	text-decoration: underline;
}

.tln-posts__grid .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--wp--preset--color--stone);
	font-size: 1rem;
}

/* The newest post on each page is shown large: picture left, text right. */
@media (min-width: 782px) {
	.tln-posts .tln-posts__grid > li:first-child {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		align-items: center;
		gap: 2.5rem;
		padding-bottom: 2.75rem;
		border-bottom: 1px solid var(--wp--preset--color--line);
	}

	.tln-posts .tln-posts__grid > li:first-child .wp-block-post-title {
		font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.5rem);
		line-height: 1.12;
	}

	.tln-posts .tln-posts__grid > li:first-child .tln-post-body {
		gap: 0.85rem;
	}

	.tln-posts .tln-posts__grid > li:first-child .wp-block-post-excerpt__excerpt {
		font-size: var(--wp--preset--font-size--medium);
		-webkit-line-clamp: 4;
	}
}

@media (max-width: 1099px) {
	.tln-posts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.tln-posts__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.25rem;
	}
}

/* Page numbers: round pills, the current page in green. */
.tln-pages {
	margin-top: var(--wp--preset--spacing--60);
	gap: 0.4rem;
	font-weight: 500;
}

.tln-pages a,
.tln-pages .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 1.1rem;
	white-space: nowrap;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

/* Numbers are round; only Newer / Older get side padding. */
.tln-pages .wp-block-query-pagination-numbers .page-numbers {
	padding: 0;
}

.tln-pages .wp-block-query-pagination-numbers {
	display: flex;
	gap: 0.4rem;
}

.tln-pages .page-numbers.dots {
	border: 0;
	background: none;
	min-width: 1.5rem;
	padding: 0;
}

.tln-pages a:hover {
	border-color: var(--wp--preset--color--canopy);
}

.tln-pages .page-numbers.current {
	background: var(--wp--preset--color--canopy);
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-posts__empty {
	padding-block: var(--wp--preset--spacing--50);
	text-align: center;
}

.tln-posts__empty h2 {
	margin-top: 0;
}

/* ----- Article ----- */
.tln-article__head {
	margin-bottom: var(--wp--preset--spacing--40);
}

.tln-article__head > * {
	margin-block: 0;
}

.tln-article__title {
	font-size: clamp(2.125rem, 1.5rem + 2.2vw, 3.125rem);
	line-height: 1.08;
}

.tln-article__head .tln-post-meta {
	margin-top: 1.1rem;
}

.tln-main .tln-article__media.alignwide {
	max-width: 960px;
	margin-block: var(--wp--preset--spacing--50) 0;
}

.tln-article__media img {
	border-radius: var(--tln-radius-media);
}

/* Reading text: a touch larger and airier than the rest of the site. */
.tln-article__content {
	margin-top: var(--wp--preset--spacing--50);
	font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.125rem);
	line-height: 1.72;
}

.tln-article__content > h2 {
	margin-block-start: 2.75rem;
	font-size: clamp(1.625rem, 1.3rem + 1vw, 2rem);
}

.tln-article__content > h3 {
	margin-block-start: 2rem;
	font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.4375rem);
}

.tln-article__content > :is(h2, h3) + * {
	margin-block-start: 0.85rem;
}

/* Jump links land below the sticky header. */
.tln-article__content :is(h2, h3)[id] {
	scroll-margin-top: calc(var(--tln-header-offset) + 8rem);
}

.tln-article__content a:not(.wp-element-button) {
	color: var(--wp--preset--color--canopy);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.tln-article__content a:not(.wp-element-button):hover {
	color: var(--wp--preset--color--canopy-dark);
}

.tln-article__content :is(ul, ol):not(.tln-toc ol) {
	padding-left: 1.4em;
}

.tln-article__content li + li {
	margin-top: 0.4em;
}

.tln-article__content ul li::marker {
	color: var(--wp--preset--color--canopy);
}

.tln-article__content .wp-block-quote {
	margin-inline: 0;
	padding: 0.25rem 0 0.25rem 1.5rem;
	border-left: 3px solid var(--wp--preset--color--canopy);
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	font-weight: 500;
	line-height: 1.4;
}

.tln-article__content .wp-block-quote cite {
	display: block;
	margin-top: 0.75rem;
	font-family: var(--wp--preset--font-family--helvetica);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-article__content .wp-block-table {
	overflow-x: auto;
}

.tln-article__content .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375em;
	line-height: 1.5;
	background: var(--wp--preset--color--white);
}

.tln-article__content .wp-block-table :is(th, td) {
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: top;
}

.tln-article__content .wp-block-table thead {
	border-bottom: 0;
}

.tln-article__content .wp-block-table thead th {
	background: var(--wp--preset--color--mint);
	font-weight: 700;
}

.tln-article__content figcaption,
.tln-article__content .wp-element-caption {
	margin-top: 0.6rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-article__content .wp-block-image img {
	height: auto;
}

/* "Care box" style for the Group block: pick it in the editor's Styles panel. */
.is-style-tln-care {
	padding: 1.5rem 1.75rem;
	border-radius: var(--tln-radius-media);
	background: var(--wp--preset--color--mint);
	font-size: 0.9375em;
}

.is-style-tln-care > :first-child {
	margin-top: 0;
}

.is-style-tln-care > :last-child {
	margin-bottom: 0;
}

.is-style-tln-care :is(h2, h3, h4) {
	font-size: 1.25rem;
}

/* "In this article" contents box (posts with 3 or more H2 sections). */
.tln-toc {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
	background: var(--wp--preset--color--white);
}

.tln-toc summary {
	padding: 1rem 1.25rem;
	font-weight: 700;
	cursor: pointer;
}

.tln-toc ol {
	margin: 0;
	padding: 0 1.25rem 1.1rem 2.6rem;
	font-size: 0.9375em;
	line-height: 1.45;
}

.tln-toc li::marker {
	color: var(--wp--preset--color--stone);
}

.tln-article__content .tln-toc a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-article__content .tln-toc a:hover {
	color: var(--wp--preset--color--canopy-dark);
	text-decoration: underline;
}

/* Tags and share buttons under the article. */
.tln-article__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.tln-article__foot > * {
	margin: 0;
}

.tln-article__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	font-size: var(--wp--preset--font-size--small);
}

.tln-article__tags .wp-block-post-terms__separator {
	display: none;
}

.tln-article__tags a {
	padding: 0.35rem 0.85rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-article__tags a:hover {
	border-color: var(--wp--preset--color--canopy);
}

.tln-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-left: auto;
}

.tln-share__label {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.tln-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-share__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 2.5rem;
	padding: 0 0.95rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
}

.tln-share__btn:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--ink);
}

.tln-share__btn[hidden] {
	display: none;
}

.tln-share__btn svg {
	width: 1.1rem;
	height: 1.1rem;
	fill: none;
	stroke: var(--wp--preset--color--canopy);
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Keep reading */
.tln-related {
	margin-top: var(--wp--preset--spacing--60);
}

.tln-related__title {
	margin: 0 0 1.75rem;
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
}

@media (max-width: 599px) {
	.tln-article__foot {
		flex-direction: column;
		align-items: flex-start;
	}

	.tln-share {
		margin-left: 0;
	}
}

/* Mint "Find plants for your home" band before the footer (single posts). */
.tln-shop-band {
	margin-block: 0;
	padding: var(--wp--preset--spacing--60) var(--wp--style--root--padding-right, 1.25rem) var(--wp--preset--spacing--60) var(--wp--style--root--padding-left, 1.25rem);
	background: var(--wp--preset--color--mint);
}

.wp-site-blocks > .tln-shop-band {
	margin-block-start: 0;
}

.tln-shop-band__inner {
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto;
}

.tln-shop-band .tln-cats {
	margin: 0;
}

.tln-cats--titled .tln-cats__title {
	position: static;
	width: auto;
	height: auto;
	margin: 0 0 1.75rem;
	overflow: visible;
	clip-path: none;
	white-space: normal;
	text-align: center;
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
}

/* ---------- 404 ---------- */
/* templates/404.html: drawn pot, heading, one line, product search, two
   buttons, then the Mint "Browse by category" band (tln/shop-band). */
.tln-404 {
	text-align: center;
}

.tln-404__art {
	display: block;
	width: 9rem;
	height: auto;
	margin: 0 auto;
}

.tln-main > .tln-404__title {
	margin-top: 1.5rem;
	font-size: clamp(2rem, 1.5rem + 1.8vw, 2.875rem);
	line-height: 1.1;
}

.tln-404__lead {
	max-width: 46ch;
	margin-inline: auto;
	color: var(--wp--preset--color--stone);
	font-size: var(--wp--preset--font-size--large);
}

.tln-main > .tln-search--page {
	max-width: 34rem;
	margin: 1.75rem auto 0;
	text-align: left;
}

.tln-search--page .wp-block-search__input {
	min-height: 52px;
	font-size: 1rem;
}

.tln-search--page .wp-block-search__button {
	width: 60px;
	min-height: 52px;
}

.tln-main > .tln-404__actions {
	margin-top: 1.5rem;
	gap: 0.75rem;
}

@media (max-width: 599px) {
	.tln-404__art {
		width: 7rem;
	}

	.tln-404__actions > .wp-block-button {
		width: 100%;
	}

	.tln-404__actions .wp-block-button__link {
		width: 100%;
	}
}

/* ---------- Product page ---------- */
/* templates/single-product.html, markup from code/sandbox/tln-product.php
   (docs/design.md → product-page, owner 7 Nov 2026). Photos 7/12 and the
   buying box 5/12 on desktop, photos first on phones. Then the open/close
   rows (linen), reviews (sand), You may also like (mint), footer (deep). */
.tln-main--product {
	padding-top: var(--wp--preset--spacing--30);
	padding-bottom: 0;
}

.tln-pdp__crumbs ol {
	margin-bottom: 1.25rem;
}

.tln-pdp {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

.tln-ico {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Photos: one square photo at a time (scroll-snap), thumbnails below. */
.tln-gal {
	min-width: 0;
}

.tln-gal__main {
	position: relative;
}

.tln-gal__track {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-gal__track::-webkit-scrollbar {
	display: none;
}

.tln-gal__slide {
	flex: 0 0 100%;
	aspect-ratio: 1;
	scroll-snap-align: start;
}

.tln-gal__zoom {
	display: block;
	height: 100%;
	cursor: zoom-in;
}

.tln-gal__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-gal__empty {
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-gal__arrow {
	position: absolute;
	top: 50%;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-top: -1.375rem;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	transition: opacity 0.15s ease, border-color 0.15s ease;
}

.tln-gal__arrow[hidden] {
	display: none;
}

.tln-gal__arrow:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--canopy);
}

.tln-gal__arrow:disabled {
	opacity: 0;
	pointer-events: none;
}

.tln-gal__arrow--prev { left: 0.75rem; }
.tln-gal__arrow--next { right: 0.75rem; }

/* Touch screens swipe; the thumbnails show where they are. */
@media (hover: none) {
	.tln-gal__arrow {
		display: none !important;
	}
}

.tln-gal__thumbs {
	display: flex;
	gap: 0.625rem;
	margin: 0.75rem 0 0;
	padding: 2px;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.tln-gal__thumb {
	display: block;
	width: 4.5rem;
	aspect-ratio: 1;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
	background: var(--wp--preset--color--white);
	cursor: pointer;
	opacity: 0.75;
	transition: opacity 0.15s ease, border-color 0.15s ease;
}

.tln-gal__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-gal__thumb:hover,
.tln-gal__thumb[aria-current="true"] {
	opacity: 1;
}

.tln-gal__thumb[aria-current="true"] {
	border-color: var(--wp--preset--color--canopy);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--canopy);
}

.tln-gal__note {
	margin: 0.75rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

/* Full-size viewer (<dialog>). */
.tln-lb {
	width: min(92vw, 62rem);
	max-width: none;
	max-height: 92vh;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: var(--tln-radius-media);
	background: var(--wp--preset--color--white);
}

.tln-lb::backdrop {
	background: rgba(18, 58, 24, 0.85);
}

.tln-lb__img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 92vh;
	object-fit: contain;
}

.tln-lb__btn {
	position: absolute;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

.tln-lb__btn:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--canopy);
}

.tln-lb__close { top: 0.75rem; right: 0.75rem; }
.tln-lb__prev { top: 50%; left: 0.75rem; margin-top: -1.375rem; }
.tln-lb__next { top: 50%; right: 0.75rem; margin-top: -1.375rem; }

/* Buying box */
.tln-buy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.tln-buy__cat {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.tln-buy__cat a {
	color: var(--wp--preset--color--stone);
	text-decoration: none;
}

.tln-buy__cat a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
}

.tln-buy .tln-buy__title {
	margin: 0;
	font-size: clamp(1.875rem, 1.5rem + 1.2vw, 2.5rem);
	line-height: 1.1;
}

.tln-buy__rating {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	width: fit-content;
	margin-top: 0.75rem;
	color: var(--wp--preset--color--ink);
	font-size: 0.9375rem;
	font-weight: 700;
	text-decoration: none;
}

.tln-buy__count {
	font-weight: 400;
	color: var(--wp--preset--color--stone);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.tln-buy__price {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-top: 1.25rem;
}

.tln-buy__amount {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.6rem;
	margin: 0;
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--ink);
}

.tln-buy__amount ins {
	text-decoration: none;
}

.tln-buy__amount del {
	font-size: 1.0625rem;
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-buy__off {
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--marigold);
	color: var(--wp--preset--color--ink);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.tln-buy__save {
	margin: 0.35rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--marigold-dark);
}

.tln-buy__lead {
	max-width: 36rem;
	margin: 1rem 0 0;
	font-size: 1.0625rem;
	color: var(--wp--preset--color--stone);
}

.tln-buy__form {
	display: flex;
	gap: 0.75rem;
	margin: 1.5rem 0 0;
}

.tln-qty {
	display: inline-flex;
	flex: none;
	align-items: center;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
}

.tln-qty__btn {
	width: 2.75rem;
	height: 3rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	color: var(--wp--preset--color--canopy);
	font: inherit;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.tln-qty__btn:hover {
	background: var(--wp--preset--color--mint);
}

.tln-qty .tln-qty__input {
	width: 2.5rem;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: center;
	font-weight: 700;
	-moz-appearance: textfield;
	appearance: textfield;
}

.tln-qty__input::-webkit-inner-spin-button,
.tln-qty__input::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.tln-buy .tln-buy__add {
	flex: 1;
	min-height: 3rem;
	border: 0;
	cursor: pointer;
}

.tln-buy__add.is-busy,
.tln-stick__btn.is-busy {
	opacity: 0.75;
}

.tln-buy__status {
	margin: 0.6rem 0 0;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--canopy);
}

.tln-buy__status:empty {
	display: none;
}

.tln-buy__status a {
	color: var(--wp--preset--color--canopy);
}

.tln-buy__soldout {
	margin: 1.5rem 0 0;
	padding: 0.85rem 1.25rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--stone);
	font-weight: 700;
	text-align: center;
}

.tln-buy__ask {
	margin: 1rem 0 0;
}

.tln-buy__ask a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--wp--preset--color--canopy);
	font-weight: 700;
	text-decoration: none;
}

.tln-buy__ask a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.tln-buy__ask.is-placeholder,
.tln-buy__ph {
	display: flex;
	gap: 0.5rem;
	margin: 1rem 0 0;
	color: var(--wp--preset--color--stone);
	font-size: var(--wp--preset--font-size--small);
	font-style: italic;
}

/* Plant at a glance: two columns of facts in one white panel. */
.tln-facts {
	margin-top: 1.75rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-facts__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
}

.tln-fact {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 0.75rem;
	align-content: start;
	padding: 0.95rem 1.1rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.tln-fact:nth-child(-n + 2) {
	border-top: 0;
}

.tln-fact:nth-child(even) {
	border-left: 1px solid var(--wp--preset--color--line);
}

.tln-fact .tln-ico {
	grid-row: span 2;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: 0.1rem;
	color: var(--wp--preset--color--canopy);
}

.tln-fact dt {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--stone);
}

.tln-fact dd {
	margin: 0;
	font-weight: 700;
	line-height: 1.35;
}

/* What you get */
.tln-get {
	margin-top: 1.75rem;
}

.tln-buy .tln-get__title {
	margin: 0 0 0.75rem;
	font-size: 1.25rem;
}

.tln-get__list {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-get__list li {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	line-height: 1.45;
}

.tln-get__list .tln-ico {
	margin-top: 0.05rem;
	color: var(--wp--preset--color--canopy);
}

.tln-get__list .is-placeholder {
	color: var(--wp--preset--color--stone);
	font-size: var(--wp--preset--font-size--small);
	font-style: italic;
}

/* Phones: price and Add to cart in a bar at the bottom once the main button
   has scrolled away. */
.tln-stick {
	display: none;
}

.tln-stick__info {
	display: grid;
	flex: 1;
	min-width: 0;
	margin: 0;
	line-height: 1.3;
}

.tln-stick__name {
	overflow: hidden;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--stone);
	white-space: nowrap;
	text-overflow: ellipsis;
}

.tln-stick__price {
	font-size: 1.0625rem;
	font-weight: 700;
}

.tln-stick .tln-stick__btn {
	flex: none;
	min-height: 2.75rem;
	border: 0;
	cursor: pointer;
}

/* Details rows: the home questions style, with a facts table. */
.tln-pinfo {
	padding-top: var(--wp--preset--spacing--50);
}

.tln-faq__a ul {
	margin: 0 0 0.75rem;
	padding-left: 1.25rem;
}

.tln-specs {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.tln-specs th,
.tln-specs td {
	padding: 0.6rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
	text-align: left;
	vertical-align: top;
}

.tln-specs tr:first-child > * {
	border-top: 0;
}

.tln-specs th {
	width: 40%;
	padding-right: 1rem;
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

/* Reviews */
.tln-prev .tln-prev__title {
	margin: 0 0 1.75rem;
	text-align: center;
}

.tln-prev__empty {
	display: grid;
	justify-items: center;
	gap: 1.25rem;
	max-width: 40rem;
	margin-inline: auto;
	text-align: center;
}

.tln-prev__empty .tln-sec__lead {
	margin-top: -0.75rem;
}

.tln-prev__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.tln-prev__side {
	display: grid;
	gap: 1.5rem;
}

.tln-prev__score {
	display: grid;
	gap: 0.4rem;
}

.tln-prev__avg {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 3.5rem;
	font-weight: 600;
	line-height: 1;
}

.tln-prev__based {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--stone);
}

.tln-prev__bars {
	display: grid;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
}

.tln-prev__bars li {
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) 2rem;
	align-items: center;
	gap: 0.6rem;
}

.tln-prev__bar {
	height: 0.5rem;
	overflow: hidden;
	border-radius: 999px;
	background: var(--wp--preset--color--line);
}

.tln-prev__bar > span {
	display: block;
	height: 100%;
	background: var(--wp--preset--color--marigold-dark);
}

.tln-prev__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-prev__write {
	display: grid;
	justify-items: start;
	width: 100%;
}

.tln-prev__empty .tln-prev__write {
	justify-items: center;
}

.tln-prev__write-btn {
	display: inline-flex;
	padding: calc(0.8rem - 1px) calc(1.6rem - 1px);
	border: 1px solid var(--wp--preset--color--canopy);
	border-radius: 999px;
	color: var(--wp--preset--color--canopy);
	font-weight: 700;
	line-height: 1.2;
	list-style: none;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.tln-prev__write-btn::-webkit-details-marker {
	display: none;
}

.tln-prev__write-btn:hover,
.tln-prev__write-btn:focus-visible {
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-prev__write[open] > .tln-prev__write-btn {
	margin-bottom: 1.25rem;
}

.tln-prev__write .comment-respond {
	justify-self: stretch;
	text-align: left;
}

/* Review form */
.tln-rform {
	display: grid;
	gap: 1rem;
	padding: 1.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-rform > p {
	margin: 0;
}

.tln-rform__note,
.tln-rform .logged-in-as {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-rform__field {
	display: grid;
	gap: 0.35rem;
}

.tln-rform__field label,
.tln-rform__rating legend {
	font-size: 0.9375rem;
	font-weight: 700;
}

.tln-rform input[type="text"],
.tln-rform input[type="email"],
.tln-rform textarea {
	width: 100%;
	box-sizing: border-box;
}

.tln-rform textarea {
	resize: vertical;
}

.tln-rform__rating {
	margin: 0;
	padding: 0;
	border: 0;
}

.tln-rform__rating legend {
	margin-bottom: 0.35rem;
	padding: 0;
}

/* Stars: radios 5 to 1 in the markup, shown 1 to 5 (row-reverse), so
   "checked ~ label" colours the chosen star and the ones before it. */
.tln-stars-input {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: 0.25rem;
}

.tln-stars-input input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.tln-stars-input label {
	color: var(--wp--preset--color--line);
	cursor: pointer;
}

.tln-stars-input svg {
	display: block;
	width: 2rem;
	height: 2rem;
	fill: currentColor;
}

.tln-stars-input input:checked ~ label,
.tln-stars-input label:hover,
.tln-stars-input label:hover ~ label {
	color: var(--wp--preset--color--marigold-dark);
}

.tln-stars-input input:focus-visible + label {
	outline: 2px solid var(--wp--preset--color--canopy);
	outline-offset: 2px;
	border-radius: 4px;
}

.tln-rform .form-submit .wp-element-button {
	border: 0;
	cursor: pointer;
}

@media (max-width: 1099px) {
	.tln-prev__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 781px) {
	.tln-pdp {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--40);
	}

	/* Photos edge to edge on phones. */
	.tln-gal__track,
	.tln-gal__empty {
		margin-inline: calc(-1 * var(--wp--style--root--padding-left, 1.25rem)) calc(-1 * var(--wp--style--root--padding-right, 1.25rem));
		border-inline: 0;
		border-radius: 0;
	}

	.tln-gal__thumb {
		width: 3.75rem;
	}

	.tln-buy__amount {
		font-size: 1.625rem;
	}

	.tln-fact {
		padding: 0.85rem 0.9rem;
	}

	.tln-prev__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.tln-rform {
		padding: 1.15rem;
	}

	.tln-stick:not([hidden]) {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 40;
		display: flex;
		align-items: center;
		gap: 0.75rem;
		padding: 0.65rem var(--wp--style--root--padding-right, 1.25rem) calc(0.65rem + env(safe-area-inset-bottom)) var(--wp--style--root--padding-left, 1.25rem);
		border-top: 1px solid var(--wp--preset--color--line);
		background: var(--wp--preset--color--white);
		visibility: hidden;
		transform: translateY(100%);
		transition: transform 0.2s ease, visibility 0.2s;
	}

	.tln-stick.is-on {
		visibility: visible;
		transform: none;
	}

	body.tln-has-stick {
		padding-bottom: 4.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tln-stick:not([hidden]) {
		transition: none;
	}
}

/* Links such as #care or #write-review open a row below the sticky header. */
.tln-faq__item,
.tln-prev__write {
	scroll-margin-top: 7rem;
}

/* ---------- My account ---------- */
/* templates/page-my-account.html; markup from code/sandbox/tln-account.php and
   tln-otp.php (docs/design.md → account, owner 7 Nov 2026). Logged out: code
   login card and a Mint "New to Tarulata?" panel. Logged in: menu left (a
   pill row on phones), content right. */
.tln-main--account {
	padding-top: var(--wp--preset--spacing--40);
}

.tln-main--account .tln-acc__title {
	margin: 0 0 1.5rem;
	font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem);
}

.tln-auth {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: clamp(1.25rem, 3vw, 2.5rem);
	align-items: start;
}

.tln-auth__card,
.tln-auth__why {
	padding: clamp(1.25rem, 3vw, 2rem);
	border-radius: var(--tln-radius-media);
}

.tln-auth__card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
}

.tln-auth__why {
	background: var(--wp--preset--color--mint);
}

.tln-auth .tln-auth__title {
	margin: 0 0 0.4rem;
	font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
}

.tln-auth__lead,
.tln-acc__lead {
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--stone);
}

/* Code form (also on the order-received page and in Account details). */
.tln-otp {
	position: relative;
	display: grid;
	gap: 1rem;
	max-width: 26rem;
}

.tln-otp__step {
	display: grid;
	gap: 1rem;
	margin: 0;
}

.tln-otp__step[hidden] {
	display: none;
}

.tln-otp__field {
	display: grid;
	gap: 0.35rem;
	margin: 0;
}

.tln-otp__field label {
	font-size: 0.9375rem;
	font-weight: 700;
}

.tln-otp__field input {
	box-sizing: border-box;
	width: 100%;
}

.tln-otp__phone {
	display: flex;
	align-items: stretch;
	overflow: hidden;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-input);
}

.tln-otp__phone:focus-within {
	border-color: var(--wp--preset--color--canopy);
	outline: 2px solid var(--wp--preset--color--canopy);
	outline-offset: 1px;
}

.tln-otp__cc {
	display: grid;
	place-items: center;
	padding: 0 0.85rem;
	background: var(--wp--preset--color--linen);
	border-right: 1px solid var(--wp--preset--color--line);
	font-weight: 700;
}

.tln-otp__phone input {
	flex: 1;
	min-width: 0;
	border: 0;
	border-radius: 0;
	font-size: 1.0625rem;
	letter-spacing: 0.02em;
}

.tln-otp__phone input:focus-visible {
	outline: none;
}

.tln-otp .tln-otp__code {
	font-size: 1.5rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.45em;
	text-align: center;
}

.tln-otp .tln-otp__go {
	width: 100%;
	min-height: 3rem;
	border: 0;
	cursor: pointer;
}

.tln-otp__go:disabled {
	opacity: 0.7;
	cursor: wait;
}

.tln-otp__alt {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 1rem;
	margin: 0;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--stone);
}

.tln-otp__link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--canopy);
	font: inherit;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.tln-otp__link:disabled {
	color: var(--wp--preset--color--stone);
	text-decoration: none;
	cursor: default;
}

.tln-otp__sent {
	margin: 0;
}

.tln-otp__two {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.tln-otp__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.tln-otp__status {
	margin: 0;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--wp--preset--color--canopy);
}

.tln-otp__status:empty {
	display: none;
}

.tln-otp__status.is-error {
	color: var(--wp--preset--color--ink);
}

.tln-otp__ph,
.tln-otp__off {
	margin: 0;
	color: var(--wp--preset--color--stone);
}

.tln-otp__ph {
	font-style: italic;
}

.tln-otp__done {
	margin: 0;
	font-weight: 700;
}

.tln-otp__done a {
	color: var(--wp--preset--color--canopy);
}

/* Logged in (redesign approved 7 Nov 2026 from the mockup). Selectors start
   with ".tln-main--account .woocommerce" so they beat WooCommerce's own
   stylesheets (menu padding and underline, float widths, clearfix
   pseudo-elements that took a grid cell). */
body.logged-in .tln-main--account .woocommerce {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5rem;
	align-items: flex-start;
}

body.logged-in .tln-main--account .woocommerce::before,
body.logged-in .tln-main--account .woocommerce::after {
	display: none;
}

.tln-main--account .woocommerce .woocommerce-notices-wrapper {
	flex: 1 1 100%;
}

.tln-main--account .woocommerce .woocommerce-notices-wrapper:empty {
	display: none;
}

/* Sidebar card: initial, name, phone, menu. */
.tln-main--account .woocommerce .tln-side {
	flex: 1 1 15rem;
	max-width: 18.75rem;
	box-sizing: border-box;
	padding: 0.75rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-side__me {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	margin-bottom: 0.5rem;
	padding: 0.625rem 0.625rem 1.125rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.tln-side__initial {
	display: grid;
	flex: none;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 999px;
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--canopy);
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.375rem;
	font-weight: 600;
}

.tln-side__who {
	min-width: 0;
}

.tln-side__name,
.tln-side__line {
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tln-side__name {
	font-weight: 700;
}

.tln-side__line {
	margin-top: 0.125rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 2.75rem;
	padding: 0 0.875rem;
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	font-size: 0.9375rem;
	text-decoration: none;
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li a:hover {
	background: var(--wp--preset--color--linen);
	text-decoration: none;
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--canopy);
	font-weight: 700;
	text-decoration: none;
}

/* Line icons, drawn with a mask so they take the text colour. */
.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li a::before {
	content: "";
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--wp--preset--color--canopy);
	-webkit-mask: var(--tln-ico) center / contain no-repeat;
	mask: var(--tln-ico) center / contain no-repeat;
}

.woocommerce-MyAccount-navigation-link--dashboard { --tln-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11l8-6.5 8 6.5'/%3E%3Cpath d='M6 10v9.5h12V10'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--orders { --tln-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7.5L12 4l8 3.5v9L12 20l-8-3.5z'/%3E%3Cpath d='M4 7.5l8 3.5 8-3.5M12 11v9'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--my-plants { --tln-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V11'/%3E%3Cpath d='M12 11c0-4 2.5-6.5 7-7-.3 4.4-2.8 7-7 7z'/%3E%3Cpath d='M12 14c0-3-2-5-5.5-5.5.2 3.4 2.2 5.5 5.5 5.5z'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-address { --tln-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-6-6.5-11a6.5 6.5 0 0 1 13 0c0 5-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-account { --tln-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--customer-logout { --tln-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h5v16h-5'/%3E%3Cpath d='M10 8l-4 4 4 4M6 12h9'/%3E%3C/svg%3E"); }

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 0.5rem;
	padding-top: 0.5rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--wp--preset--color--stone);
}

.tln-main--account .woocommerce .woocommerce-MyAccount-navigation-link--customer-logout a::before {
	background: var(--wp--preset--color--stone);
}

/* Content column */
.tln-main--account .woocommerce .woocommerce-MyAccount-content {
	display: flex;
	flex: 999 1 35rem;
	flex-direction: column;
	gap: 1.5rem;
	float: none;
	width: auto;
	min-width: 0;
}

.tln-main--account .woocommerce .woocommerce-MyAccount-content > * {
	margin-block: 0;
}

.tln-main--account .tln-acc__hello {
	margin: 0;
	font-size: clamp(1.75rem, 1.4rem + 1vw, 2.125rem);
	line-height: 1.15;
}

.tln-acc__greet .tln-acc__lead {
	margin: 0.375rem 0 0;
	font-size: 1rem;
}

.tln-acc__lead,
.tln-acc__intro {
	margin: 0;
	color: var(--wp--preset--color--stone);
	line-height: 1.55;
}

.tln-acc__intro {
	max-width: 40rem;
	font-size: 1rem;
}

.tln-acc__note {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
	line-height: 1.55;
}

.tln-acc__nudge {
	margin: 0.375rem 0 0;
	font-size: 0.9375rem;
}

.tln-acc__ph {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-style: italic;
	color: var(--wp--preset--color--stone);
}

.tln-main--account .tln-acc__h {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0;
	font-size: 1.3125rem;
}

.tln-acc__h .tln-ico {
	color: var(--wp--preset--color--canopy);
}

.tln-acc__link {
	color: var(--wp--preset--color--canopy);
	font-size: 0.9375rem;
	font-weight: 700;
}

.tln-acc__link:hover {
	color: var(--wp--preset--color--canopy-dark);
}

/* Buttons: small pills. */
.tln-acc__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: fit-content;
	min-height: 2.75rem;
	padding: 0 1.25rem;
	box-sizing: border-box;
	border-radius: 999px;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}

.wp-element-button.tln-acc__btn {
	padding: 0 1.25rem;
}

.tln-acc__btn .tln-ico {
	width: 1.125rem;
	height: 1.125rem;
}

.tln-acc__btn--line {
	border: 1px solid var(--wp--preset--color--canopy);
	background: transparent;
	color: var(--wp--preset--color--canopy);
	transition: background-color 0.15s ease;
}

.tln-acc__btn--line:hover,
.tln-acc__btn--line:focus-visible {
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-acc__btn--sm {
	min-height: 2.25rem;
	padding: 0 0.875rem;
	font-size: 0.875rem;
}

summary.tln-acc__btn {
	list-style: none;
}

summary.tln-acc__btn::-webkit-details-marker {
	display: none;
}

.tln-acc__ask {
	margin: 0;
}

.tln-acc__ask a,
.tln-acc__back a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--wp--preset--color--canopy);
	font-weight: 700;
	text-decoration: none;
}

.tln-acc__ask a:hover,
.tln-acc__back a:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.tln-acc__back {
	margin: 0;
	font-size: 0.9375rem;
}

/* Boxes (white cards) */
.tln-acc__box {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	box-sizing: border-box;
	min-width: 0;
	padding: 1.375rem 1.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-acc__boxhead {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
}

.tln-acc__addr {
	margin: 0;
	font-style: normal;
	line-height: 1.65;
}

.tln-acc__foot {
	margin: auto 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-acc__foot span {
	margin-right: 0.25rem;
}

.tln-acc__duo {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: stretch;
}

.tln-acc__duo > .tln-acc__box {
	flex: 1 1 16rem;
}

.tln-acc__duo > .tln-acc__box--wide {
	flex: 2 1 26rem;
}

/* Empty state with the drawn pot */
.tln-acc__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.875rem;
	padding: 2.5rem 2rem;
	text-align: center;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-acc__empty p {
	max-width: 34rem;
	margin: 0;
	color: var(--wp--preset--color--stone);
	line-height: 1.55;
}

.tln-acc__pot {
	width: 7.5rem;
	height: 7.5rem;
}

.tln-main--account .tln-acc__empty-title {
	margin: 0.25rem 0 0;
	font-size: 1.625rem;
}

.tln-acc__empty .wp-element-button {
	margin-top: 0.5rem;
	text-decoration: none;
}

/* Help band (Sand) */
.tln-acc__help {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.25rem;
	padding: 1.375rem 1.625rem;
	background: var(--wp--preset--color--sand);
	border-radius: var(--tln-radius-media);
}

.tln-acc__helpicon {
	display: grid;
	flex: none;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--canopy);
}

.tln-acc__helpicon .tln-ico {
	width: 1.5rem;
	height: 1.5rem;
}

.tln-acc__helptext {
	flex: 1 1 18rem;
	min-width: 0;
}

.tln-main--account .tln-acc__helptext h3 {
	margin: 0;
	font-family: inherit;
	font-size: 1.0625rem;
	font-weight: 700;
}

.tln-acc__helptext p {
	margin: 0.2rem 0 0;
	color: var(--wp--preset--color--stone);
}

/* Featured order card on the overview */
.tln-feat {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.tln-feat__label {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stone);
}

.tln-ord--feat {
	padding: 1.5rem;
	gap: 1.375rem;
}

.tln-ord--feat .tln-ord__num {
	font-size: 1.5rem;
}

/* Order card */
.tln-ords {
	display: grid;
	gap: 1rem;
}

.tln-ord {
	display: grid;
	gap: 1.1rem;
	padding: 1.25rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-ord__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.tln-main--account .tln-ord .tln-ord__num {
	margin: 0;
	font-size: 1.25rem;
}

.tln-ord__num a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-ord__num a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
}

.tln-ord__date {
	margin: 0.2rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-pill {
	flex: none;
	padding: 0.35rem 0.875rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--linen);
	color: var(--wp--preset--color--ink);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.tln-pill--go {
	background: var(--wp--preset--color--mint);
	border-color: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--canopy);
}

.tln-pill--done {
	background: var(--wp--preset--color--canopy);
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-pill--wait {
	background: var(--wp--preset--color--sand);
	border-color: var(--wp--preset--color--sand);
}

.tln-pill--off {
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--stone);
}

/* Steps: a line with four dots, green up to where the order is. */
.tln-steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-steps li {
	position: relative;
	padding-top: 1.5rem;
	font-size: 0.875rem;
	text-align: center;
	color: var(--wp--preset--color--stone);
}

.tln-steps li::before {
	content: "";
	position: absolute;
	top: 0.45rem;
	right: 0;
	left: 0;
	height: 3px;
	background: var(--wp--preset--color--line);
}

.tln-steps li:first-child::before { left: 50%; }
.tln-steps li:last-child::before { right: 50%; }

.tln-steps li::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	box-sizing: border-box;
	width: 1.0625rem;
	height: 1.0625rem;
	margin-left: -0.53rem;
	border: 2px solid var(--wp--preset--color--line);
	border-radius: 50%;
	background: var(--wp--preset--color--white);
}

.tln-steps .is-done,
.tln-steps .is-now {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
}

.tln-steps .is-done::before {
	background: var(--wp--preset--color--canopy);
}

.tln-steps .is-now::before {
	background: linear-gradient(to right, var(--wp--preset--color--canopy) 50%, var(--wp--preset--color--line) 50%);
}

.tln-steps .is-now:first-child::before {
	background: var(--wp--preset--color--line);
}

.tln-steps .is-done::after {
	border-color: var(--wp--preset--color--canopy);
	background: var(--wp--preset--color--canopy);
}

.tln-steps .is-now::after {
	border: 3px solid var(--wp--preset--color--canopy);
}

.tln-ord__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1rem;
}

.tln-ord__sum {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.875rem;
}

.tln-ord__thumbs {
	display: flex;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-ord__thumbs li,
.tln-plant__img {
	display: block;
	flex: none;
	width: 3.5rem;
	height: 3.5rem;
	overflow: hidden;
	background: var(--wp--preset--color--linen);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-ord__thumbs img,
.tln-plant__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-ord__thumbs .tln-ord__more {
	display: grid;
	place-items: center;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--stone);
}

.tln-thumb__ph {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--wp--preset--color--mint);
}

.tln-ord__total {
	margin: 0;
	color: var(--wp--preset--color--stone);
}

.tln-ord__total strong {
	font-size: 1.125rem;
	color: var(--wp--preset--color--ink);
}

.tln-ord__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin: 0;
}

.tln-acc__pages {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.tln-track {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	padding: 0.875rem 1.125rem;
	background: var(--wp--preset--color--mint);
	border-radius: var(--tln-radius-media);
}

.tln-track p {
	flex: 1 1 16rem;
	margin: 0;
}

.tln-track .tln-ico {
	width: 1.75rem;
	height: 1.75rem;
	color: var(--wp--preset--color--canopy);
}

/* Your plants (overview) */
.tln-prows {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-prow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 0.875rem;
	padding: 0.75rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
}

.tln-prow__text {
	flex: 1 1 12rem;
	min-width: 0;
}

.tln-prow__name,
.tln-prow__state {
	margin: 0;
}

.tln-prow__name a {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
	text-decoration: none;
}

.tln-prow__name a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
}

.tln-prow__state {
	margin-top: 0.125rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-prow__acts,
.tln-gcard__acts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.875rem;
}

/* My plants grid */
.tln-garden {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-gcard {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-gcard__img {
	display: block;
	aspect-ratio: 1;
	background: var(--wp--preset--color--mint);
}

.tln-gcard__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tln-gcard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.625rem;
	padding: 1rem 1.125rem 1.125rem;
}

.tln-chip {
	align-self: flex-start;
	padding: 0.3rem 0.75rem;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
}

.tln-chip--home {
	background: var(--wp--preset--color--mint);
	color: var(--wp--preset--color--canopy);
}

.tln-chip--way {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--ink);
}

.tln-main--account .tln-gcard__name {
	margin: 0;
	font-size: 1.1875rem;
	line-height: 1.25;
}

.tln-gcard__name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-gcard__name a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
}

.tln-gcard__fact {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-gcard__acts {
	margin-top: auto;
	padding-top: 0.375rem;
}

/* Addresses */
.tln-addrs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17.5rem, 1fr));
	gap: 1.25rem;
	align-items: stretch;
}

.tln-acc__addbtn {
	margin-top: auto;
}

/* Edit address form (WooCommerce markup): two columns, Indian order. */
.tln-main--account .woocommerce form > h2:empty {
	display: none;
}

.tln-main--account .woocommerce .woocommerce-address-fields {
	max-width: 42.5rem;
	box-sizing: border-box;
	padding: 1.75rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.125rem 1rem;
	margin-bottom: 1.5rem;
}

.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper::before,
.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper::after {
	display: none;
}

.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper .form-row {
	grid-column: 1 / -1;
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper [id$="_first_name_field"],
.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper [id$="_postcode_field"],
.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper [id$="_state_field"] {
	grid-column: 1;
}

.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper [id$="_last_name_field"],
.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper [id$="_city_field"],
.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper [id$="_country_field"] {
	grid-column: 2;
}

.tln-main--account .woocommerce .form-row label {
	display: block;
	margin-bottom: 0.375rem;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.4;
}

.tln-main--account .woocommerce .form-row .optional {
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-main--account .woocommerce .form-row .required {
	color: var(--wp--preset--color--stone);
	text-decoration: none;
}

.tln-main--account .woocommerce .form-row .input-text,
.tln-main--account .woocommerce .form-row select {
	box-sizing: border-box;
	width: 100%;
	min-height: 3rem;
}

.tln-main--account .woocommerce .form-row .select2-container .select2-selection--single {
	height: 3rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-input);
}

.tln-main--account .woocommerce .form-row .select2-container .select2-selection__rendered {
	line-height: 3rem;
	padding-left: 0.875rem;
}

.tln-main--account .woocommerce .form-row .select2-container .select2-selection__arrow {
	height: 3rem;
}

.tln-main--account .woocommerce [id$="_country_field"] strong {
	display: flex;
	align-items: center;
	min-height: 3rem;
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-main--account .woocommerce .woocommerce-address-fields .wp-element-button {
	min-height: 2.875rem;
	padding: 0 1.75rem;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
}

/* One order */
.tln-vo__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.tln-vo__head .tln-ord__date {
	margin: 0;
}

.tln-notes {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-notes li {
	padding: 0.9rem 1.1rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-notes__date {
	margin: 0 0 0.25rem;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--stone);
}

.tln-notes li > :last-child {
	margin-bottom: 0;
}

.tln-acc__sec > .tln-acc__h {
	margin-bottom: 0.875rem;
}

.tln-oitems {
	margin: 0 0 1rem;
	padding: 0;
	list-style: none;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

.tln-oitem {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.1rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.tln-oitem:first-child {
	border-top: 0;
}

.tln-oitem .tln-plant__img {
	width: 4rem;
	height: 4rem;
}

.tln-oitem__name,
.tln-oitem__price {
	margin: 0;
	font-weight: 700;
}

.tln-oitem__name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-oitem__name a:hover {
	color: var(--wp--preset--color--canopy);
	text-decoration: underline;
}

.tln-oitem__qty {
	margin: 0.15rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

.tln-oitem__text .tln-acc__btn {
	min-height: 2.25rem;
	margin-top: 0.5rem;
	padding: 0 0.875rem;
	font-size: 0.875rem;
}

.tln-vo__totals {
	max-width: 24rem;
	margin-left: auto;
}

.tln-vo__totals tr:last-child > * {
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}

.tln-vo__addr {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem;
}

.tln-vo__addr address {
	padding: 1rem 1.1rem;
	font-style: normal;
	line-height: 1.6;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
}

/* Account details */
.tln-acc__form {
	display: grid;
	gap: 1rem;
	max-width: 32rem;
}

.tln-acc__form > p {
	margin: 0;
}

.tln-acc__opt {
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-acc__phone {
	max-width: 32rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--line);
}

.tln-acc__phone .tln-acc__lead {
	margin: 0.5rem 0 1rem;
}

.tln-acc__change[open] > summary {
	margin-bottom: 1rem;
}

/* Order received: "Save your details for next time" */
.tln-save {
	margin: 2rem 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--mint);
	border-radius: var(--tln-radius-media);
}

.tln-save .tln-save__title {
	margin: 0 0 0.4rem;
	font-size: 1.5rem;
}

.tln-save__lead {
	max-width: 40rem;
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--stone);
}

@media (max-width: 781px) {
	.tln-auth,
	.tln-vo__addr,
	.tln-otp__two {
		grid-template-columns: minmax(0, 1fr);
	}

	body.logged-in .tln-main--account .woocommerce {
		gap: 1.25rem;
	}

	/* Sidebar: name row, then the menu as one swipeable row of pills. */
	.tln-main--account .woocommerce .tln-side {
		flex-basis: 100%;
		max-width: none;
		padding: 0;
		background: none;
		border: 0;
	}

	.tln-side__me {
		margin-bottom: 0.75rem;
		padding: 0;
		border: 0;
	}

	.tln-side__initial {
		width: 2.75rem;
		height: 2.75rem;
		font-size: 1.25rem;
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		gap: 0.5rem;
		margin-inline: calc(-1 * var(--wp--style--root--padding-left, 1.25rem)) calc(-1 * var(--wp--style--root--padding-right, 1.25rem));
		padding: 2px var(--wp--style--root--padding-right, 1.25rem) 2px var(--wp--style--root--padding-left, 1.25rem);
		overflow-x: auto;
		scrollbar-width: none;
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
		display: none;
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li {
		flex: none;
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li a {
		padding: 0 1rem;
		border: 1px solid var(--wp--preset--color--line);
		background: var(--wp--preset--color--white);
		white-space: nowrap;
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li a::before {
		width: 1.125rem;
		height: 1.125rem;
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li.is-active a {
		background: var(--wp--preset--color--canopy);
		border-color: var(--wp--preset--color--canopy);
		color: var(--wp--preset--color--white);
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li.is-active a::before {
		background: var(--wp--preset--color--white);
	}

	.tln-main--account .woocommerce .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
		margin: 0;
		padding: 0;
		border: 0;
	}

	.tln-ord--feat {
		padding: 1.125rem;
	}

	.tln-ord__actions,
	.tln-track .tln-acc__btn,
	.tln-acc__help .tln-acc__btn {
		width: 100%;
	}

	.tln-ord__actions > .tln-acc__btn {
		flex: 1 1 0;
	}

	.tln-steps li {
		font-size: 0.75rem;
	}

	.tln-main--account .woocommerce .woocommerce-address-fields {
		padding: 1.125rem;
	}

	.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	.tln-main--account .woocommerce .woocommerce-address-fields__field-wrapper .form-row {
		grid-column: 1 !important;
	}

	.tln-oitem {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.tln-oitem__price {
		grid-column: 2;
	}

	.tln-vo__totals {
		max-width: none;
	}
}

/* ---------- WooCommerce ---------- */

.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img,
.woocommerce-product-gallery__image img {
	border-radius: var(--tln-radius-media);
}

.wc-block-components-product-price,
.wp-block-woocommerce-product-price {
	font-weight: 700;
}

.wc-block-components-product-sale-badge,
.wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--marigold);
	color: var(--wp--preset--color--ink);
	border: 0;
	border-radius: 999px;
}

/* ---------- Footer ---------- */

.tln-wordmark a {
	color: inherit;
	text-decoration: none;
}

.tln-footer a {
	color: inherit;
	text-decoration: none;
}

.tln-footer a:hover {
	text-decoration: underline;
}

.tln-footer__about {
	max-width: 34ch;
	opacity: 0.85;
}

.tln-footer__heading {
	font-family: var(--wp--preset--font-family--helvetica);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: inherit;
}

.tln-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.4rem;
}

.tln-footer__base {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid rgba(247, 247, 242, 0.18);
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.8;
}

.tln-footer__draft {
	padding: 0 0.45em;
	border-radius: 999px;
	background: var(--wp--preset--color--marigold);
	color: var(--wp--preset--color--ink);
	font-size: 0.75rem;
}

.tln-footer__legal-line {
	margin: 0;
}

.tln-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Phones: brand on its own row, link columns two by two. */
@media (max-width: 781px) {
	.tln-footer .tln-footer__cols.wp-block-columns {
		flex-wrap: wrap !important;
		gap: 1.75rem 2rem;
	}

	.tln-footer .tln-footer__cols.wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - 1rem) !important;
	}

	.tln-footer .tln-footer__cols.wp-block-columns > .tln-footer__brand {
		flex-basis: 100% !important;
	}
}

/* ---------- Information pages ---------- */
/* About, Contact, FAQ, Shipping, Returns & refunds, Privacy, Terms
   (docs/policy-pages-plan.md). Templates: page-policy.html (reading column,
   "On this page" box, last updated, help band; text styles shared with the
   blog post through .tln-article__content) and page-wide.html (colour bands
   made of Group blocks with the classes tln-sec tln-sec--mint|sand|deep and an
   inner Group tln-sec__inner). Behaviour: code/sandbox/tln-pages.php,
   tln-facts.php, tln-contact.php. */

.tln-policy__head {
	margin-bottom: var(--wp--preset--spacing--40);
}

.tln-policy__title {
	margin: 0;
	font-size: clamp(2.25rem, 1.75rem + 2vw, 3rem);
}

.tln-policy__updated {
	margin: 0.5rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

/* FAQ page: open/close rows. */
.tln-policy__content .wp-block-details {
	margin: 0;
	padding: 0.95rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.tln-policy__content .wp-block-details summary {
	font-weight: 700;
	cursor: pointer;
}

.tln-policy__content .wp-block-details > :not(summary) {
	margin-top: 0.6rem;
	margin-bottom: 0;
}

.tln-policy__content > h2 + .wp-block-details {
	border-top: 1px solid var(--wp--preset--color--line);
}

/* Not-yet-confirmed fact, and notes only the team sees. */
mark.tln-fact-missing {
	padding: 0 0.25em;
	border-radius: 3px;
	background: var(--wp--preset--color--marigold);
	color: var(--wp--preset--color--ink);
}

.tln-note {
	margin: 1rem 0;
	padding: 0.75rem 1rem;
	border: 1px dashed var(--wp--preset--color--marigold-dark);
	border-radius: var(--tln-radius-input);
	background: #FFF8E6;
	color: var(--wp--preset--color--ink);
	font-size: 0.875rem;
}

.tln-pagehelp__mail {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

/* Full-width pages: bands sit edge to edge, header to footer. */
.tln-main--wide {
	padding-block: 0;
}

.tln-wide__content > .tln-sec {
	margin-block: 0;
}

.tln-sec__inner--narrow {
	max-width: 46rem;
}

.tln-wide__content h1 {
	margin: 0 0 0.75rem;
	font-size: clamp(2.5rem, 1.9rem + 2.4vw, 3.5rem);
}

.tln-wide__content .tln-sec h2 {
	margin-top: 0;
}

.tln-lead {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--stone);
}

.tln-sec--deep .tln-lead,
.tln-sec--deep a {
	color: inherit;
}

.tln-split.wp-block-columns {
	align-items: center;
	gap: 2.5rem;
}

.tln-page-ph {
	margin: 0;
}

.tln-page-ph .tln-ph,
.tln-split img {
	border-radius: var(--tln-radius-media);
}

/* "What we grow" cards and the contact panels. */
.tln-cards.wp-block-columns {
	gap: 1.25rem;
}

.tln-cards > .wp-block-column,
.tln-panel {
	padding: 1.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--tln-radius-media);
	background: var(--wp--preset--color--white);
}

.tln-cards h3 {
	margin-top: 0;
	font-size: 1.375rem;
}

.tln-contact-list {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tln-contact-list strong {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stone);
}

/* Contact form. */
.tln-form p {
	margin: 0 0 1rem;
}

.tln-form label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
}

.tln-form label span {
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-form input:not([type="hidden"]),
.tln-form textarea {
	width: 100%;
	box-sizing: border-box;
}

.tln-form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 1rem;
}

.tln-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.tln-form__ok,
.tln-form__err {
	padding: 0.75rem 1rem;
	border-radius: var(--tln-radius-input);
}

.tln-form__ok {
	background: var(--wp--preset--color--mint);
}

.tln-form__err {
	background: #FBEAEA;
	color: #8A1F1F;
}

.tln-form__small {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--stone);
}

@media (max-width: 600px) {
	.tln-form__row {
		grid-template-columns: 1fr;
	}
}

/* ---------- Search ---------- */
/* Suggestions under the header search box and the results page.
   Markup and behaviour: code/sandbox/tln-search.php. */

.tln-search {
	position: relative;
}

.tln-sugg {
	position: absolute;
	z-index: 70;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	min-width: min(26rem, calc(100vw - 2rem));
	max-height: min(70vh, 34rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0.5rem;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 14px;
	text-align: left;
}

.tln-sugg[hidden] {
	display: none;
}

.tln-sugg__note {
	margin: 0.25rem 0.5rem 0.5rem;
	font-size: 0.85rem;
	color: var(--wp--preset--color--stone);
}

.tln-sugg__note strong {
	color: var(--wp--preset--color--ink);
}

.tln-sugg__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tln-sugg__head {
	margin: 0.6rem 0.5rem 0.25rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--stone);
}

.tln-sugg__head:first-child {
	margin-top: 0.25rem;
}

.tln-sugg__opt > a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.45rem 0.5rem;
	border-radius: 10px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-sugg__opt > a:hover,
.tln-sugg__opt.is-active > a {
	background: var(--wp--preset--color--mint);
}

.tln-sugg__img {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 8px;
	object-fit: cover;
	background: var(--wp--preset--color--linen);
}

.tln-sugg__ico {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 50%;
	color: var(--wp--preset--color--canopy);
}

.tln-sugg__ico svg {
	width: 16px;
	height: 16px;
}

.tln-sugg__name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.95rem;
	line-height: 1.3;
}

.tln-sugg__name mark {
	background: none;
	color: inherit;
	font-weight: 700;
}

.tln-sugg__name small {
	display: block;
	font-size: 0.8rem;
	color: var(--wp--preset--color--stone);
}

.tln-sugg__meta {
	flex: 0 0 auto;
	font-size: 0.85rem;
	color: var(--wp--preset--color--stone);
	white-space: nowrap;
}

.tln-sugg__price {
	flex: 0 0 auto;
	font-weight: 700;
	white-space: nowrap;
}

.tln-sugg__price s {
	margin-left: 0.35rem;
	font-size: 0.8rem;
	font-weight: 400;
	color: var(--wp--preset--color--stone);
}

.tln-sugg__opt--all > a {
	justify-content: center;
	margin-top: 0.35rem;
	padding-block: 0.65rem;
	font-weight: 700;
	color: var(--wp--preset--color--canopy);
	box-shadow: inset 0 1px 0 var(--wp--preset--color--line);
	border-radius: 0 0 10px 10px;
}

.tln-sugg__empty {
	padding: 0.75rem 0.5rem;
	font-size: 0.95rem;
	color: var(--wp--preset--color--stone);
}

/* Results page */
.tln-results__head {
	margin-bottom: 1.5rem;
}

.tln-results__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	line-height: 1.2;
}

.tln-results__count {
	margin: 0.35rem 0 0;
	color: var(--wp--preset--color--stone);
}

.tln-results__note {
	margin: 0.75rem 0 0;
	padding: 0.6rem 0.9rem;
	width: fit-content;
	max-width: 100%;
	border-radius: 10px;
	background: var(--wp--preset--color--mint);
	font-size: 0.95rem;
}

.tln-results__cats {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	padding: 0;
}

.tln-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-size: 0.9rem;
	text-decoration: none;
}

.tln-chip span {
	color: var(--wp--preset--color--stone);
}

.tln-chip:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--canopy);
}

.tln-results__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 1.25rem;
}

.tln-results__pages {
	margin-top: var(--wp--preset--spacing--50);
}

.tln-results__pages .page-numbers {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
}

.tln-results__pages a.page-numbers,
.tln-results__pages span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: 0 0.9rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.tln-results__pages a.page-numbers:hover {
	border-color: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--canopy);
}

.tln-results__pages span.current {
	border-color: var(--wp--preset--color--canopy);
	background: var(--wp--preset--color--canopy);
	color: var(--wp--preset--color--white);
}

.tln-results__empty {
	max-width: 40rem;
	margin-bottom: var(--wp--preset--spacing--50);
}

.tln-results__empty ul {
	margin: 0.5rem 0 0;
	padding-left: 1.2rem;
	color: var(--wp--preset--color--stone);
}

.tln-results .tln-cats {
	margin-top: var(--wp--preset--spacing--40);
}

@media (max-width: 599px) {
	.tln-sugg {
		min-width: 0;
		max-height: 65vh;
	}

	.tln-results__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}
}
