/**
 * TurfMan theme — main stylesheet. Mobile-first, self-contained.
 *
 * @package TurfMan
 */

:root {
	/* Aligned to the TurfMan page blueprints' design system. */
	--tm-primary: #1f6b2e;   /* brand green / primary CTA / links */
	--tm-primary-2: #2e8b40; /* mid green / hover */
	--tm-primary-d: #15491f; /* dark green / hero gradient / H2 */
	--tm-sage: #e7f3e9;      /* light green tint / pills / fact bg */
	--tm-cta: #9a5b00;       /* dark amber accent (AA-safe with white text) */
	--tm-bg: #f6f8f6;        /* page background */
	--tm-surface: #ffffff;   /* cards */
	--tm-ink: #222b27;       /* body text */
	--tm-muted: #5d6b63;     /* secondary text */
	--tm-border: #dde6df;    /* borders / dividers */
	--tm-radius: 12px;
	--tm-maxw: 1140px;
}

*,
*::before,
*::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--tm-ink);
	background: var(--tm-surface);
	line-height: 1.55;
}

img { max-width: 100%; height: auto; }
a { color: var(--tm-primary); }

.tm-container {
	width: 100%;
	max-width: var(--tm-maxw);
	margin: 0 auto;
	padding: 0 16px;
}

.tm-skip-link {
	position: absolute;
	left: -9999px;
}
.tm-skip-link:focus {
	left: 16px;
	top: 8px;
	z-index: 1000;
	background: #fff;
	padding: 8px 12px;
	border-radius: 6px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ---------- Buttons (self-contained; used theme-wide) ---------- */
.tm-btn {
	display: inline-block;
	padding: 12px 22px;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.5;
	min-height: 44px;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}
.tm-btn--sm { padding: 10px 16px; min-height: 44px; font-size: .9rem; }
.tm-btn--primary { background: var(--tm-primary); color: #fff; }
.tm-btn--primary:hover,
.tm-btn--primary:focus { background: #19592a; color: #fff; } /* darker than base — AA with white */
.tm-btn--ghost { border: 2px solid var(--tm-primary); color: var(--tm-primary); background: transparent; }
.tm-btn--ghost:hover,
.tm-btn--ghost:focus { background: var(--tm-primary); color: #fff; }
.tm-btn--cta { background: var(--tm-cta); color: #fff; }
.tm-btn--cta:hover,
.tm-btn--cta:focus { background: #a83d2e; color: #fff; }
.tm-btn:focus-visible { outline: 2px solid var(--tm-cta); outline-offset: 2px; }

.tm-link { color: var(--tm-primary); font-weight: 600; text-decoration: underline; }

/* ---------- Top bar ---------- */
.tm-topbar {
	background: var(--tm-primary);
	color: #fff;
	font-size: .9rem;
}
.tm-topbar__inner {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	padding-top: 8px;
	padding-bottom: 8px;
}
.tm-topbar__phone { color: #fff; font-weight: 700; text-decoration: none; }
.tm-topbar__note { color: #e7eede; flex: 1 1 auto; }
.tm-topbar__cta { padding: 8px 14px; min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 600px) {
	.tm-topbar__note { display: none; }
}

/* ---------- Header / nav ---------- */
.tm-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--tm-surface);
	border-bottom: 1px solid var(--tm-border);
}
.tm-header.is-stuck { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
.tm-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 12px;
	padding-bottom: 12px;
}
.tm-logo { font-size: 1.3rem; font-weight: 800; color: var(--tm-primary); text-decoration: none; }

.tm-nav-toggle {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px; height: 44px;
	background: transparent;
	border: 1px solid var(--tm-border);
	border-radius: 8px;
	cursor: pointer;
}
.tm-nav-toggle__bar,
.tm-nav-toggle__bar::before,
.tm-nav-toggle__bar::after {
	display: block;
	width: 22px; height: 2px;
	margin: 0 auto;
	background: var(--tm-ink);
	position: relative;
}
.tm-nav-toggle__bar::before,
.tm-nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
.tm-nav-toggle__bar::before { top: -7px; }
.tm-nav-toggle__bar::after { top: 7px; }
.tm-nav-toggle__bar,
.tm-nav-toggle__bar::before,
.tm-nav-toggle__bar::after { transition: transform .15s ease, opacity .15s ease; }
/* Morph hamburger -> X when the menu is open. */
.tm-nav-toggle[aria-expanded="true"] .tm-nav-toggle__bar { background: transparent; }
.tm-nav-toggle[aria-expanded="true"] .tm-nav-toggle__bar::before { top: 0; transform: rotate(45deg); }
.tm-nav-toggle[aria-expanded="true"] .tm-nav-toggle__bar::after { top: 0; transform: rotate(-45deg); }

.tm-nav { display: none; }
/* Open hamburger nav = full-width drawer dropping below the header bar
   (not a flex child wedged into the logo | toggle | account | cart row). */
.tm-nav.is-open {
	display: block;
	position: absolute;
	left: 0; right: 0; top: 100%;
	width: 100%;
	background: var(--tm-surface);
	border-bottom: 1px solid var(--tm-border);
	box-shadow: 0 10px 22px rgba(0,0,0,.1);
	padding: 4px 16px 16px;
	max-height: calc(100vh - 100%);
	overflow-y: auto;
	z-index: 99;
}
.tm-nav__list {
	list-style: none;
	margin: 0; padding: 12px 0 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.tm-nav__list a {
	display: block;
	padding: 12px 8px;
	color: var(--tm-ink);
	text-decoration: none;
	font-weight: 600;
	border-radius: 6px;
}
.tm-nav__list a:hover,
.tm-nav__list a:focus { background: var(--tm-bg); }
.tm-nav__cta { margin-top: 8px; }

@media (min-width: 900px) {
	.tm-nav-toggle { display: none; }
	/* Lay the nav out as a single inline row (the header keeps its balanced
	   logo | menu | account | cart spread via space-between). */
	.tm-nav {
		display: flex !important;
		align-items: center;
		position: static;
	}
	.tm-nav__list {
		flex-direction: row;
		align-items: center;
		padding-top: 0;
		gap: 2px;
	}
	.tm-nav__list a { padding: 8px 12px; }
	/* The Call CTA is redundant on desktop (the green top bar already shows the
	   phone number + Get a Free Quote); it only appears in the mobile menu. */
	.tm-nav__cta { display: none; }
}

/* ---------- Layout helpers ---------- */
.tm-main { display: block; }
.tm-content { padding-top: 24px; padding-bottom: 48px; }
.tm-section { padding: 48px 0; }
.tm-section--tight { padding: 24px 0; }
.tm-section--alt { background: var(--tm-bg); }
.tm-section__title { font-size: 1.6rem; color: var(--tm-primary); margin: 0 0 8px; }
.tm-section__lead { color: var(--tm-muted); margin: 0 0 24px; }
.tm-section__cta { margin-top: 24px; }

.tm-prose > * + * { margin-top: 1em; }
.tm-prose h2 { color: var(--tm-primary); }

/* ---------- Hero ---------- */
.tm-hero {
	background: linear-gradient(120deg, #1f4d2c 0%, #356b41 100%);
	color: #fff;
	padding: 56px 0;
}
.tm-hero__title { font-size: 2rem; margin: 0 0 12px; line-height: 1.15; }
.tm-hero__sub { font-size: 1.1rem; color: #eaf1e3; margin: 0 0 24px; max-width: 60ch; }
.tm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 720px) {
	.tm-hero { padding: 80px 0; }
	.tm-hero__title { font-size: 2.6rem; }
}

/* ---------- Card grids ---------- */
.tm-card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}
@media (min-width: 560px) { .tm-card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .tm-card-grid { grid-template-columns: repeat(3, 1fr); } }

.tm-turf-card,
.tm-service-card,
.tm-post-card {
	background: var(--tm-surface);
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.tm-turf-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--tm-bg);
}
.tm-turf-card__img { width: 100%; height: 100%; object-fit: cover; }
.tm-turf-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#e7eede,#cfe0c2); }
.tm-badge {
	position: absolute; top: 10px; left: 10px;
	background: var(--tm-cta); color: #fff;
	font-size: .72rem; font-weight: 700;
	padding: 4px 10px; border-radius: 999px;
}
.tm-turf-card__body { padding: 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.tm-turf-card__title { margin: 0; font-size: 1.15rem; }
.tm-turf-card__title a { text-decoration: none; color: var(--tm-ink); }
.tm-turf-card__tagline { margin: 0; color: var(--tm-muted); font-size: .9rem; }
.tm-turf-card__price { margin: 4px 0; font-weight: 700; color: var(--tm-primary); }
.tm-turf-card__body .tm-btn { margin-top: auto; align-self: flex-start; }

.tm-service-card { padding: 18px; gap: 8px; }
.tm-service-card__title { margin: 0; font-size: 1.15rem; }
.tm-service-card__title a { text-decoration: none; color: var(--tm-primary); }
.tm-service-card__desc { margin: 0; color: var(--tm-muted); font-size: .95rem; }

.tm-post-card__image { display: block; aspect-ratio: 16/10; background: var(--tm-bg); }
.tm-post-card__image img { width: 100%; height: 100%; object-fit: cover; }
.tm-post-card__title { margin: 14px 16px 0; font-size: 1.1rem; }
.tm-post-card__title a { text-decoration: none; color: var(--tm-ink); }
.tm-post-card__excerpt { margin: 8px 16px 16px; color: var(--tm-muted); font-size: .92rem; }

/* ---------- Breadcrumb ---------- */
.tm-breadcrumb { margin: 0 0 16px; font-size: .9rem; }
.tm-breadcrumb__list {
	list-style: none; display: flex; flex-wrap: wrap; gap: 6px;
	margin: 0; padding: 0; color: var(--tm-muted);
}
.tm-breadcrumb__item + .tm-breadcrumb__item::before { content: "/"; margin-right: 6px; color: var(--tm-border); }

/* ---------- Single turf ---------- */
.tm-turf__top { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 820px) { .tm-turf__top { grid-template-columns: 1fr 1fr; align-items: start; } }
.tm-turf__media { aspect-ratio: 4 / 3; border-radius: var(--tm-radius); overflow: hidden; background: var(--tm-bg); }
.tm-turf__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tm-turf__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#e7eede,#cfe0c2); }
.tm-turf__title { font-size: 2rem; margin: 0 0 6px; color: var(--tm-primary); }
.tm-turf__tagline { color: var(--tm-muted); margin: 0 0 12px; }
.tm-turf__price { font-size: 1.8rem; font-weight: 800; color: var(--tm-ink); margin: 0 0 12px; }
.tm-turf__price span { font-size: 1rem; font-weight: 600; color: var(--tm-muted); }
.tm-stock { font-weight: 700; padding: 8px 12px; border-radius: 8px; display: inline-block; }
.tm-stock--out { background: #fde8e4; color: #a83d2e; }
.tm-stock--low { background: #fbf2da; color: #6f5510; } /* >=4.5:1 on the pale bg */
.tm-turf__badges { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.tm-stat-badge {
	display: inline-flex; flex-direction: column;
	background: var(--tm-bg); border: 1px solid var(--tm-border);
	border-radius: 8px; padding: 8px 12px; min-width: 96px;
}
.tm-stat-badge__label { font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: var(--tm-muted); }
.tm-stat-badge__value { font-weight: 700; color: var(--tm-ink); }
.tm-turf__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.tm-turf__body,
.tm-turf__calc,
.tm-turf__gallery,
.tm-turf__related,
.tm-turf__trust { margin-top: 40px; }
.tm-turf h2 { color: var(--tm-primary); }

.tm-gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 700px) { .tm-gallery-grid { grid-template-columns: repeat(3, 1fr); } }
.tm-gallery-grid__img { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; }

/* ---------- CTA banner ---------- */
.tm-cta-banner { background: var(--tm-primary); color: #fff; padding: 40px 0; }
.tm-cta-banner__inner { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; }
.tm-cta-banner__headline { margin: 0 0 6px; font-size: 1.5rem; }
.tm-cta-banner__sub { margin: 0; color: #e7eede; }
.tm-cta-banner__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.tm-cta-banner .tm-btn--ghost { border-color: #fff; color: #fff; }
.tm-cta-banner .tm-btn--ghost:hover { background: #fff; color: var(--tm-primary); }

/* ---------- Footer ---------- */
.tm-footer { background: #14331d; color: #dfe7d6; margin-top: 0; }
.tm-footer__grid { display: grid; grid-template-columns: 1fr; gap: 28px; padding: 48px 16px; }
@media (min-width: 760px) { .tm-footer__grid { grid-template-columns: repeat(3, 1fr); } }
.tm-footer__title { font-size: 1.1rem; color: #fff; margin: 0 0 12px; }
.tm-footer a { color: #cfe0c2; }
.tm-footer__address { font-style: normal; line-height: 1.8; }
.tm-footer__abn { margin-top: 12px; color: #9fb293; font-size: .9rem; }
.tm-footer__menu { list-style: none; margin: 0; padding: 0; line-height: 2; }
.tm-footer__bar { background: #0f2616; }
.tm-footer__bar p { margin: 0; padding: 16px; text-align: center; font-size: .85rem; color: #9fb293; }
.tm-footer .tm-btn { margin: 6px 6px 0 0; }

/* ---------- Cart icon + mini-cart ---------- */
.tm-cart-icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: transparent;
	border: 1px solid var(--tm-border);
	border-radius: 8px;
	padding: 8px 12px;
	min-height: 44px;
	cursor: pointer;
	font-weight: 600;
	color: var(--tm-ink);
}
.tm-cart-icon__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px; height: 22px;
	padding: 0 6px;
	background: var(--tm-cta);
	color: #fff;
	border-radius: 999px;
	font-size: .8rem;
}
.tm-cart-icon__count.is-empty { background: var(--tm-muted); }

.tm-minicart { position: fixed; inset: 0; z-index: 200; }
.tm-minicart[hidden] { display: none; }
.tm-minicart__backdrop {
	position: absolute; inset: 0;
	background: rgba(0,0,0,.4);
	border: 0; cursor: pointer;
}
.tm-minicart__panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(380px, 92vw);
	background: #fff;
	box-shadow: -4px 0 24px rgba(0,0,0,.18);
	display: flex; flex-direction: column;
	transform: translateX(100%);
	transition: transform .2s ease;
	z-index: 1;
}
.tm-minicart.is-open .tm-minicart__panel { transform: translateX(0); }
.tm-minicart__head {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px; border-bottom: 1px solid var(--tm-border);
}
.tm-minicart__title { margin: 0; font-size: 1.2rem; color: var(--tm-primary); }
.tm-minicart__close { background: transparent; border: 0; font-size: 1.6rem; line-height: 1; cursor: pointer; min-width: 44px; min-height: 44px; }
.tm-minicart__body { flex: 1; overflow-y: auto; padding: 16px; }
.tm-minicart__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.tm-minicart__item { display: flex; flex-direction: column; border-bottom: 1px solid var(--tm-border); padding-bottom: 12px; }
.tm-minicart__name { font-weight: 600; }
.tm-minicart__meta { color: var(--tm-muted); font-size: .9rem; }
.tm-minicart__foot { padding: 16px; border-top: 1px solid var(--tm-border); }
.tm-minicart__subtotal { display: flex; justify-content: space-between; margin: 0 0 12px; font-size: 1.05rem; }
.tm-btn--block { display: block; width: 100%; text-align: center; margin-top: 8px; }

/* ---------- Add to cart (single turf) ---------- */
.tm-addcart { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin: 16px 0 8px; }
.tm-addcart__label { display: block; font-weight: 600; font-size: .9rem; }
.tm-addcart__qty { width: 110px; padding: 10px 12px; border: 1px solid var(--tm-border); border-radius: 8px; min-height: 44px; font-size: 1rem; }
.tm-cart-flash { margin: 8px 0 0; font-size: .95rem; min-height: 1.2em; }
.tm-cart-flash.is-ok { color: var(--tm-primary); }
.tm-cart-flash.is-error { color: #a83d2e; }

/* ---------- Cart page ---------- */
.tm-cart-table { width: 100%; border-collapse: collapse; }
.tm-cart-table th, .tm-cart-table td { padding: 12px; border-bottom: 1px solid var(--tm-border); text-align: left; vertical-align: middle; }
.tm-cart-table thead th { background: var(--tm-bg); }
.tm-cart-qty { width: 90px; padding: 10px; border: 1px solid var(--tm-border); border-radius: 8px; min-height: 44px; }
.tm-cart-unit { color: var(--tm-muted); margin-left: 4px; }
.tm-cart-remove { background: transparent; border: 0; color: #a83d2e; cursor: pointer; text-decoration: underline; min-height: 44px; }
.tm-cart-summary { margin-top: 24px; max-width: 360px; margin-left: auto; }
.tm-cart-summary__row { display: flex; justify-content: space-between; font-size: 1.15rem; }
.tm-cart-summary__note { color: var(--tm-muted); font-size: .9rem; }
.tm-cart-empty { padding: 24px 0; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

@media (max-width: 600px) {
	.tm-cart-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.tm-cart-table tr { display: block; border: 1px solid var(--tm-border); border-radius: 8px; margin-bottom: 12px; }
	.tm-cart-table td, .tm-cart-table th[scope="row"] { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--tm-border); }
	.tm-cart-table td::before { content: attr(data-label); font-weight: 600; color: var(--tm-muted); }
}

/* ---------- Checkout ---------- */
.tm-checkout { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 860px) { .tm-checkout { grid-template-columns: 1.4fr 1fr; align-items: start; } }
.tm-checkout__form .tm-field { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; }
.tm-checkout__form label { font-weight: 600; }
.tm-checkout__form input,
.tm-checkout__form textarea,
.tm-checkout__form select {
	padding: 12px 14px; border: 1px solid var(--tm-border); border-radius: 8px; font-size: 1rem; min-height: 48px; width: 100%;
}
.tm-card-element { padding: 14px; border: 1px solid var(--tm-border); border-radius: 8px; background: #fff; }
.tm-card-errors { color: #a83d2e; font-size: .9rem; margin-top: 6px; min-height: 1.1em; }
.tm-checkout__error { color: #a83d2e; font-weight: 600; }
.tm-checkout__secure, .tm-checkout__gst { color: var(--tm-muted); font-size: .85rem; }
.tm-checkout__summary { background: var(--tm-bg); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); padding: 20px; }
.tm-checkout__items { list-style: none; margin: 0 0 16px; padding: 0; }
.tm-checkout__items li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--tm-border); }
.tm-checkout__row { display: flex; justify-content: space-between; margin: 6px 0; }
.tm-checkout__row--total { font-size: 1.2rem; border-top: 2px solid var(--tm-border); padding-top: 10px; }

/* ---------- Confirmation ---------- */
.tm-confirm__items { list-style: none; margin: 16px 0; padding: 0; max-width: 480px; }
.tm-confirm__items li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--tm-border); }
.tm-confirm__total { font-size: 1.2rem; }

/* ---------- Services ---------- */
.tm-hero--compact { padding: 40px 0; }
.tm-service__hero { margin-bottom: 24px; }
.tm-service__title { font-size: 2rem; color: var(--tm-primary); margin: 0 0 10px; }
.tm-service__price { margin: 0 0 14px; }
.tm-service__price-context { margin: 0 0 14px; font-weight: 700; color: var(--tm-primary); font-size: 1.1rem; }
.tm-badge--price { display: inline-block; background: var(--tm-primary); color: #fff; font-weight: 700; padding: 6px 14px; border-radius: 999px; }
.tm-service__hero-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.tm-service__section { margin-top: 32px; }
.tm-service h2, .tm-service__section h2 { color: var(--tm-primary); }

.tm-service__layout { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 880px) { .tm-service__layout { grid-template-columns: 1.6fr 1fr; align-items: start; } }
.tm-service__aside { position: sticky; top: 90px; }
@media (max-width: 879px) { .tm-service__aside { position: static; } }

.tm-ticklist { list-style: none; margin: 0; padding: 0; }
.tm-ticklist li { position: relative; padding: 6px 0 6px 28px; border-bottom: 1px solid var(--tm-border); }
.tm-ticklist li::before { content: "✓"; position: absolute; left: 0; color: var(--tm-primary); font-weight: 700; }

.tm-steps { list-style: none; counter-reset: tm; margin: 0; padding: 0; display: grid; gap: 12px; }
.tm-steps--row { grid-template-columns: 1fr; }
@media (min-width: 760px) { .tm-steps--row { grid-template-columns: repeat(4, 1fr); } }
.tm-steps__item { display: flex; gap: 12px; align-items: flex-start; background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 10px; padding: 14px; }
.tm-steps__n { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; background: var(--tm-primary); color: #fff; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.tm-steps__t { padding-top: 4px; }

.tm-linklist { list-style: none; margin: 0; padding: 0; line-height: 2; }
.tm-service__related { margin-top: 24px; background: var(--tm-sage); border-radius: var(--tm-radius); padding: 18px; }
.tm-service__related h2 { font-size: 1.1rem; margin: 0 0 8px; }
.tm-service__trust { margin-top: 32px; }
.tm-service-card__cue { margin: 0 0 8px; font-weight: 700; color: var(--tm-cta); font-size: .9rem; }

/* ---------- Suburb landing ---------- */
.tm-suburb__hero { margin-bottom: 20px; }
.tm-suburb__title { font-size: 2rem; color: var(--tm-primary); margin: 0 0 8px; }
.tm-suburb__sub { color: var(--tm-muted); margin: 0 0 14px; }
.tm-suburb__hero-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.tm-suburb__delivery { background: var(--tm-sage); border-radius: var(--tm-radius); padding: 18px; margin: 20px 0; }
.tm-suburb__delivery h2 { margin: 0 0 6px; color: var(--tm-primary); font-size: 1.2rem; }
.tm-suburb__price { margin: 0; font-weight: 600; }
.tm-suburb__section { margin-top: 32px; }
.tm-suburb__section h2 { color: var(--tm-primary); }
.tm-suburb__rec .tm-card { max-width: 420px; }
.tm-suburb__crosscta { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px) { .tm-suburb__crosscta { grid-template-columns: 1fr 1fr; } }
.tm-suburb__crosscta .tm-card { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); padding: 18px; }
.tm-suburb__crosscta h3 { margin: 0 0 6px; font-size: 1.1rem; }

.tm-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tm-chip {
	display: inline-flex;
	align-items: center;
	background: var(--tm-sage);
	border: 1px solid var(--tm-border);
	border-radius: 999px;
	padding: 8px 16px;
	text-decoration: none;
	color: var(--tm-primary-d, #15491f);
	font-weight: 600;
	min-height: 44px;
}
.tm-chip:hover, .tm-chip:focus { background: var(--tm-primary); color: #fff; }

/* ---------- Locations index ---------- */
.tm-card-grid--suburbs { }
.tm-suburb-card { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); padding: 18px; }
.tm-suburb-card__title { margin: 0 0 6px; font-size: 1.2rem; }
.tm-suburb-card__title a { text-decoration: none; color: var(--tm-primary); }
.tm-suburb-card__price { margin: 0 0 10px; color: var(--tm-ink); font-weight: 600; }

/* ---------- Shop ---------- */
.tm-shop-notice { background: var(--tm-sage); border-radius: 8px; padding: 10px 14px; color: var(--tm-ink); font-weight: 600; font-size: .9rem; }
.tm-shop-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 24px; }

.tm-product-card { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); overflow: hidden; display: flex; flex-direction: column; }
.tm-product-card__media { display: block; aspect-ratio: 1/1; background: var(--tm-bg); }
.tm-product-card__media img { width: 100%; height: 100%; object-fit: cover; }
.tm-product-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#e7eede,#cfe0c2); }
.tm-product-card__body { padding: 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.tm-product-card__title { margin: 0; font-size: 1.05rem; }
.tm-product-card__title a { text-decoration: none; color: var(--tm-ink); }
.tm-product-card__price { margin: 0; font-weight: 700; color: var(--tm-primary); }
.tm-product-card__body .tm-btn { margin-top: auto; align-self: flex-start; }

/* ---------- Single product ---------- */
.tm-product__top { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 820px) { .tm-product__top { grid-template-columns: 1fr 1fr; align-items: start; } }
.tm-product__media { aspect-ratio: 1/1; border-radius: var(--tm-radius); overflow: hidden; background: var(--tm-bg); }
.tm-product__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tm-product__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#e7eede,#cfe0c2); }
.tm-product__title { font-size: 1.8rem; color: var(--tm-primary); margin: 0 0 8px; }
.tm-product__price { font-size: 1.6rem; font-weight: 800; margin: 0 0 12px; }
.tm-product__price span { font-size: 1rem; font-weight: 600; color: var(--tm-muted); }
.tm-product__deliverynote { color: var(--tm-muted); font-size: .85rem; margin-top: 12px; }
.tm-product__body, .tm-product__section { margin-top: 32px; }
.tm-product__section h2 { color: var(--tm-primary); }
.tm-spec-table { width: 100%; border-collapse: collapse; max-width: 480px; }
.tm-spec-table th, .tm-spec-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--tm-border); }
.tm-spec-table th { width: 40%; color: var(--tm-muted); }

/* ---------- APVMA notice ---------- */
.tm-apvma { background: #fbf2da; border: 1px solid #e7d6a8; border-radius: var(--tm-radius); padding: 16px 18px; margin: 24px 0; }
.tm-apvma__title { margin: 0 0 6px; font-size: 1.05rem; color: #6f5510; }
.tm-apvma p { margin: 0; color: #4a3f1e; }

/* ---------- Single article (blog / guide) ---------- */
.tm-article { max-width: 760px; margin: 0 auto; }
.tm-article__title { font-size: 2rem; color: var(--tm-primary); margin: 0 0 8px; }
.tm-article__meta { color: var(--tm-muted); margin: 0 0 20px; }
.tm-article__image { margin: 0 0 24px; }
.tm-article__image img { width: 100%; height: auto; border-radius: var(--tm-radius); }
.tm-article__cta { background: var(--tm-sage); border-radius: var(--tm-radius); padding: 18px 20px; margin: 32px 0; }
.tm-article__cta p { margin: 0 0 10px; }
.tm-article__author { background: var(--tm-bg); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); padding: 16px 18px; margin: 24px 0; }
.tm-article__author-name { font-weight: 700; margin: 0 0 4px; }
.tm-article__share { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 24px 0; color: var(--tm-muted); }
.tm-article__related { margin-top: 40px; }
.tm-article__related h2 { color: var(--tm-primary); }

/* ---------- Contact ---------- */
.tm-contact { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 820px) { .tm-contact { grid-template-columns: 1fr 1.2fr; align-items: start; } }
.tm-contact__details h2 { color: var(--tm-primary); margin-top: 0; }
.tm-contact__address { font-style: normal; line-height: 1.9; }
.tm-contact__quick { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.tm-contact__extra { margin-top: 16px; }

/* ---------- About stats ---------- */
.tm-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 24px 0; }
@media (min-width: 700px) { .tm-stats { grid-template-columns: repeat(4, 1fr); } }
.tm-stats__item { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); padding: 18px; text-align: center; }
.tm-stats__n { display: block; font-size: 1.8rem; font-weight: 800; color: var(--tm-primary); }
.tm-stats__l { display: block; color: var(--tm-muted); font-size: .9rem; }
.tm-about__placeholder { color: var(--tm-muted); font-style: italic; }
.tm-about__trust { margin-top: 24px; }

/* ---------- Project gallery ---------- */
.tm-project-card { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); overflow: hidden; }
.tm-project-card__media { display: block; aspect-ratio: 4/3; background: var(--tm-bg); }
.tm-project-card__media img { width: 100%; height: 100%; object-fit: cover; }
.tm-project-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#e7eede,#cfe0c2); }
.tm-project-card__body { padding: 14px; }
.tm-project-card__title { margin: 0 0 4px; font-size: 1.05rem; }
.tm-project-card__title a { text-decoration: none; color: var(--tm-ink); }
.tm-project-card__meta { margin: 0; color: var(--tm-muted); font-size: .9rem; }

.tm-project__title { font-size: 2rem; color: var(--tm-primary); margin: 0 0 16px; }
.tm-beforeafter { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 16px 0 28px; }
@media (min-width: 640px) { .tm-beforeafter { grid-template-columns: 1fr 1fr; } }
.tm-beforeafter__item { margin: 0; }
.tm-beforeafter__item img { width: 100%; height: auto; border-radius: var(--tm-radius); }
.tm-beforeafter__item figcaption { text-align: center; font-weight: 700; color: var(--tm-muted); margin-top: 6px; }
.tm-project__facts { margin: 24px 0; }
.tm-project__facts h2 { color: var(--tm-primary); }

/* ---------- My Account ---------- */
.tm-account__notice { border-radius: 8px; padding: 12px 16px; margin: 0 0 16px; font-weight: 600; }
.tm-account__notice--ok { background: var(--tm-sage); color: var(--tm-primary-d, #15491f); }
.tm-account__notice--error { background: #fbe6e4; color: #b3261e; }
.tm-account__hello { font-weight: 600; }
.tm-account__logout { display: inline-block; margin-bottom: 24px; }
.tm-account__section { margin-top: 24px; }
.tm-account__section h2 { color: var(--tm-primary); }
.tm-account__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 760px) { .tm-account__grid { grid-template-columns: 1fr 1fr; } }
.tm-account__remember { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; }
.tm-cart-icon--account { text-decoration: none; }
.tm-account__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.tm-account__logout { margin: 0; }
.tm-account__muted { color: var(--tm-muted); }
.tm-account__details { list-style: none; padding: 0; margin: 0 0 8px; }
.tm-account__details li { padding: 2px 0; }
.tm-account__reorder { margin: 0; }
.tm-account__col--solo { max-width: 460px; margin: 0 auto; }
.tm-form--track, .tm-form--resend, .tm-form--reset { margin-top: 18px; }

/* ---- Shared form base (theme-side, so account/expert/track forms render even
   when the plugin's form CSS isn't enqueued on the page) ---- */
.tm-form {
	background: var(--tm-surface);
	border: 1px solid var(--tm-border);
	border-radius: var(--tm-radius);
	padding: clamp(16px, 3vw, 24px);
	margin: 0 0 18px;
	box-shadow: 0 6px 18px rgba(20,50,25,.05);
}
.tm-form__title { margin: 0 0 6px; color: var(--tm-primary-d); font-size: 1.2rem; }
.tm-form__consent, .tm-form__req-note { color: var(--tm-muted); font-size: .85rem; margin: 8px 0 14px; }
.tm-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.tm-form label,
.tm-field label { font-weight: 600; font-size: .95rem; }
.tm-form input,
.tm-form select,
.tm-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--tm-border);
	border-radius: 8px;
	background: #fff;
	font: inherit;
	font-size: 1rem;
	min-height: 48px;
}
.tm-form textarea { min-height: 96px; }
.tm-form input:focus-visible,
.tm-form select:focus-visible,
.tm-form textarea:focus-visible { outline: 2px solid var(--tm-primary); outline-offset: 2px; }
/* Honeypot — visually hidden from humans, present for bots. CRITICAL. */
.tm-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px; overflow: hidden;
}

/* ---- Header user icon ---- */
.tm-icon-link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 999px;
	border: 1px solid var(--tm-border); color: var(--tm-ink);
	text-decoration: none; background: var(--tm-surface);
	transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.tm-icon-link:hover, .tm-icon-link:focus { color: var(--tm-primary); border-color: var(--tm-primary); }

/* ---- Custom auth pages (login / register / forgot / set password) ---- */
.tm-auth { display: flex; justify-content: center; padding: 48px 16px 64px; background: linear-gradient(180deg, #f4f8f3, #eef5ef); min-height: 60vh; }
.tm-auth__card {
	width: 100%; max-width: 440px; background: var(--tm-surface);
	border: 1px solid #e6ede7; border-radius: 16px; padding: clamp(22px, 4vw, 34px);
	box-shadow: 0 18px 44px rgba(20,50,25,.10);
}
.tm-auth__title { margin: 0 0 6px; color: var(--tm-primary-d); font-size: 1.7rem; }
.tm-auth__sub { margin: 0 0 20px; color: var(--tm-muted); }
.tm-auth .tm-form { border: 0; box-shadow: none; padding: 0; margin: 0 0 8px; background: transparent; }
.tm-auth__link { text-align: center; margin: 14px 0 0; }
.tm-auth__note { text-align: center; color: var(--tm-muted); font-size: .85rem; margin: 12px 0 0; }
.tm-auth__divider { display: flex; align-items: center; gap: 12px; margin: 22px 0 14px; color: var(--tm-muted); font-size: .85rem; }
.tm-auth__divider::before, .tm-auth__divider::after { content: ""; flex: 1; height: 1px; background: var(--tm-border); }
.tm-auth__more { margin-top: 18px; border-top: 1px solid var(--tm-border); padding-top: 14px; }
.tm-auth__more summary { cursor: pointer; font-weight: 600; color: var(--tm-primary-d); }
.tm-auth__more .tm-form { margin-top: 14px; }
.tm-account__track-result { margin-top: 16px; padding: 16px; background: var(--tm-sage); border-radius: 8px; }
.tm-account__track-result h3 { margin: 0 0 8px; color: var(--tm-primary-d); }
.tm-account__track-result p { margin: 2px 0; }
.tm-account__interests { border: 1px solid var(--tm-border); border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; }
.tm-account__interests legend { font-weight: 600; padding: 0 6px; }
.tm-account__interests .tm-account__remember { display: flex; margin: 0 0 6px; }
.tm-account__trade { font-weight: 600; }
.tm-account__trade--active { color: var(--tm-primary); }
.tm-account__trade--pending { color: var(--tm-cta); }

/* ---------- The Turf Man AI ---------- */
.tm-ai { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: var(--tm-radius); padding: 22px; }
.tm-ai__head { margin-bottom: 14px; }
.tm-ai__title { margin: 0 0 4px; color: var(--tm-primary-d); }
.tm-ai__sub { margin: 0; color: var(--tm-muted); }
.tm-ai__input { width: 100%; padding: 12px; border: 1px solid var(--tm-border); border-radius: 8px; font: inherit; resize: vertical; }
.tm-ai__examples { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.tm-ai__chip { background: var(--tm-sage); color: var(--tm-primary-d); border: 0; border-radius: 999px; padding: 6px 12px; font-size: 0.85rem; cursor: pointer; }
.tm-ai__chip:hover { background: #d8ebdb; }
.tm-ai__submit { margin-top: 4px; }
.tm-ai__status { margin: 12px 0 0; color: var(--tm-muted); font-weight: 600; min-height: 1.2em; }
.tm-ai__results { margin-top: 18px; }
.tm-ai__summary { font-size: 1.05rem; font-weight: 600; }
.tm-ai__followup { color: var(--tm-muted); font-style: italic; }
.tm-ai__handoff { margin-top: 16px; }
.tm-ai__disclaimer { margin-top: 14px; font-size: 0.85rem; color: var(--tm-muted); }
.tm-ai-group { margin-top: 20px; }
.tm-ai-group__title { margin: 0 0 10px; font-size: 1.05rem; color: var(--tm-primary); }
.tm-ai-group__grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 640px) { .tm-ai-group__grid { grid-template-columns: repeat(3, 1fr); } }
.tm-ai-card { display: flex; flex-direction: column; border: 1px solid var(--tm-border); border-radius: 10px; overflow: hidden; background: var(--tm-bg); }
.tm-ai-card__img { width: 100%; height: 130px; object-fit: cover; }
.tm-ai-card__body { padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.tm-ai-card__name { margin: 0; font-size: 1rem; }
.tm-ai-card__price { margin: 0; font-weight: 700; color: var(--tm-primary-d); }
.tm-ai-card__excerpt { margin: 0; font-size: 0.88rem; color: var(--tm-muted); }
.tm-ai-card__out { margin: 0; font-size: 0.82rem; color: var(--tm-cta); font-weight: 600; }
.tm-ai-card__reasons { list-style: none; margin: 0; padding: 0; font-size: 0.85rem; }
.tm-ai-card__reasons li { position: relative; padding-left: 18px; margin-bottom: 3px; }
.tm-ai-card__reasons li::before { content: "✓"; position: absolute; left: 0; color: var(--tm-primary); font-weight: 700; }
.tm-ai-card__link { margin-top: auto; font-weight: 600; color: var(--tm-primary); }

/* ---------- Ask an Expert / Finder ---------- */
.tm-finder__lead, .tm-expert__lead { font-size: 1.05rem; color: var(--tm-muted); max-width: 65ch; }
.tm-expert__call { font-weight: 600; }
.tm-expert__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 860px) { .tm-expert__grid { grid-template-columns: 2fr 1fr; } }
.tm-expert__aside { background: var(--tm-sage); border-radius: var(--tm-radius); padding: 20px; align-self: start; }
.tm-expert__aside h2 { margin-top: 0; color: var(--tm-primary-d); }

/* =====================================================================
   Design refresh — depth, texture & polish (loaded last; overrides above)
   ===================================================================== */

/* On-brand "turf" placeholders so empty image slots read as lawn, not boxes. */
.tm-turf-card__placeholder,
.tm-product-card__placeholder,
.tm-turf__placeholder,
.tm-product__placeholder,
.tm-project-card__placeholder,
.tm-post-card__image:empty {
	background-color: #cfe6bf;
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46' viewBox='0 0 24 24' fill='none' stroke='%236f9e5f' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M12 22V10'/%3E%3Cpath d='M12 15c0-3-2-5.2-5-6.2'/%3E%3Cpath d='M12 15c0-3 2-5.2 5-6.2'/%3E%3Cpath d='M12 19c0-2-1.6-3.6-3.6-4.6'/%3E%3Cpath d='M12 19c0-2 1.6-3.6 3.6-4.6'/%3E%3C/svg%3E"),
		repeating-linear-gradient(90deg, rgba(74,124,58,.12) 0 2px, transparent 2px 11px),
		linear-gradient(140deg, #dceccf 0%, #b6d79e 100%);
	background-repeat: no-repeat, repeat, no-repeat;
	background-position: center 58%, center, center;
	background-size: 46px 46px, auto, cover;
}

/* Hero — real lawn photo under a green gradient overlay (keeps text legible). */
.tm-hero {
	background:
		linear-gradient(118deg, rgba(15,42,24,.94) 0%, rgba(26,70,38,.86) 48%, rgba(33,90,54,.62) 100%),
		url("../img/hero-lawn.jpg") center bottom / cover no-repeat;
	position: relative;
	overflow: hidden;
}
.tm-hero__inner { position: relative; z-index: 1; }
.tm-hero__kicker {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: .72rem;
	font-weight: 700;
	color: #bfe6c8;
	margin: 0 0 12px;
}
.tm-hero__title { font-size: 2.2rem; font-weight: 800; letter-spacing: -.015em; text-shadow: 0 1px 12px rgba(0,0,0,.18); }
@media (min-width: 720px) { .tm-hero__title { font-size: 3rem; } }
/* Make the secondary hero button readable on the dark green. */
.tm-hero .tm-btn--ghost { border-color: rgba(255,255,255,.85); color: #fff; background: rgba(255,255,255,.06); }
.tm-hero .tm-btn--ghost:hover,
.tm-hero .tm-btn--ghost:focus { background: #fff; color: var(--tm-primary-d); border-color: #fff; }

/* Cards — lift off the page with soft shadow + hover, image zoom. */
.tm-turf-card,
.tm-service-card,
.tm-post-card,
.tm-product-card,
.tm-ai-card,
.tm-project-card {
	border-color: #e6ede7;
	box-shadow: 0 1px 2px rgba(20,50,25,.04), 0 8px 20px rgba(20,50,25,.06);
	transition: transform .18s ease, box-shadow .18s ease;
}
.tm-turf-card:hover,
.tm-product-card:hover,
.tm-post-card:hover,
.tm-project-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(20,50,25,.14);
}
.tm-turf-card__media,
.tm-product-card__media,
.tm-project-card__media { overflow: hidden; }
.tm-turf-card__media img,
.tm-product-card__media img,
.tm-project-card__media img { transition: transform .35s ease; }
.tm-turf-card:hover .tm-turf-card__media img,
.tm-product-card:hover .tm-product-card__media img { transform: scale(1.05); }

/* Turf card retail polish — price chip + full-width CTA. */
.tm-turf-card__price {
	display: inline-block;
	background: var(--tm-sage);
	color: var(--tm-primary-d);
	font-weight: 800;
	padding: 4px 12px;
	border-radius: 999px;
	align-self: flex-start;
}
.tm-turf-card__body .tm-btn--sm { align-self: stretch; text-align: center; }

/* Badges a touch bolder. */
.tm-badge--popular { background: var(--tm-cta); box-shadow: 0 2px 8px rgba(0,0,0,.18); }

/* Bigger, more confident section headings. */
.tm-section__title { font-size: 1.9rem; font-weight: 800; letter-spacing: -.01em; line-height: 1.15; }
@media (min-width: 720px) { .tm-section__title { font-size: 2.2rem; } }
.tm-section__lead { font-size: 1.05rem; max-width: 60ch; }

/* Alternating sections get a subtle tint + the sage option. */
.tm-section--alt { background: linear-gradient(180deg, #f4f8f3, #eef5ef); }

/* ---- Why-trust features ---- */
.tm-why { background: var(--tm-sage); }
.tm-features { display: grid; grid-template-columns: 1fr; gap: 22px; margin-top: 10px; }
@media (min-width: 560px) { .tm-features { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .tm-features { grid-template-columns: repeat(4, 1fr); } }
.tm-feature { text-align: left; }
.tm-feature__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 50px; height: 50px; border-radius: 14px;
	background: var(--tm-primary); color: #fff; margin-bottom: 12px;
	box-shadow: 0 6px 16px rgba(31,107,46,.28);
}
.tm-feature__title { margin: 0 0 6px; font-size: 1.1rem; color: var(--tm-primary-d); }
.tm-feature__desc { margin: 0; color: var(--tm-muted); font-size: .95rem; }

/* ---- Reviews ---- */
.tm-reviews { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 760px) { .tm-reviews { grid-template-columns: repeat(3, 1fr); } }
.tm-review {
	margin: 0; background: var(--tm-surface); border: 1px solid #e6ede7; border-radius: var(--tm-radius);
	padding: 22px; box-shadow: 0 8px 20px rgba(20,50,25,.06);
}
.tm-review__stars { color: #f4a400; letter-spacing: 2px; font-size: 1.05rem; margin-bottom: 8px; }
.tm-review__text { margin: 0 0 12px; font-size: 1.02rem; line-height: 1.55; }
.tm-review__cite { font-style: normal; font-weight: 700; color: var(--tm-primary-d); }

/* ---- Transformations strip ---- */
.tm-transform { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 700px) { .tm-transform { grid-template-columns: repeat(3, 1fr); } }
.tm-transform__item { margin: 0; }
.tm-transform__item img {
	width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
	border-radius: var(--tm-radius); box-shadow: 0 8px 20px rgba(20,50,25,.10);
}
.tm-transform__item figcaption { margin-top: 10px; font-weight: 600; color: var(--tm-ink); }

/* ---- FAQ accordion ---- */
.tm-faq__list { max-width: 820px; }
.tm-faq__item { border: 1px solid var(--tm-border); border-radius: 10px; margin-bottom: 10px; background: var(--tm-surface); overflow: hidden; }
.tm-faq__item[open] { border-color: #cfe0d2; box-shadow: 0 6px 16px rgba(20,50,25,.06); }
.tm-faq__q {
	cursor: pointer; list-style: none; padding: 16px 46px 16px 18px; position: relative;
	font-weight: 700; color: var(--tm-primary-d);
}
.tm-faq__q::-webkit-details-marker { display: none; }
.tm-faq__q::after {
	content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
	font-size: 1.4rem; font-weight: 400; color: var(--tm-primary); line-height: 1;
}
.tm-faq__item[open] .tm-faq__q::after { content: "\2212"; }
.tm-faq__a { padding: 0 18px 16px; color: var(--tm-muted); }
.tm-faq__a p { margin: 0; }

/* ---------- Lead popup ---------- */
.tm-popup { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; }
.tm-popup[hidden] { display: none; }
.tm-popup__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.5); border: 0; cursor: pointer; }
.tm-popup__panel {
	position: relative;
	z-index: 1;
	background: #fff;
	border-radius: var(--tm-radius);
	width: min(440px, 92vw);
	max-height: 90vh;
	overflow-y: auto;
	padding: 8px;
	box-shadow: 0 12px 40px rgba(0,0,0,.25);
	transform: translateY(12px);
	opacity: 0;
	transition: transform .2s ease, opacity .2s ease;
}
.tm-popup.is-open .tm-popup__panel { transform: translateY(0); opacity: 1; }
.tm-popup__close {
	position: absolute; top: 8px; right: 8px;
	width: 40px; height: 40px; min-width: 40px;
	background: transparent; border: 0; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--tm-ink);
}
.tm-popup .tm-form { border: 0; margin: 0; }

/* ---------- Sale pricing ---------- */
.tm-badge--sale { display: inline-block; background: var(--tm-cta); color: #fff; font-size: .72rem; font-weight: 700; padding: 3px 8px; border-radius: 999px; vertical-align: middle; }
.tm-price--sale .tm-price__was { color: var(--tm-muted); font-weight: 400; }
.tm-price--sale .tm-price__now { color: var(--tm-cta); font-weight: 800; }

/* ---------- Misc ---------- */
.tm-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.tm-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; min-height: 44px; padding: 0 12px;
	border: 1px solid var(--tm-border); border-radius: 8px;
	text-decoration: none; color: var(--tm-ink);
}
.tm-pagination .page-numbers.current { background: var(--tm-primary); color: #fff; border-color: var(--tm-primary); }
.tm-pagination .page-numbers:hover, .tm-pagination .page-numbers:focus-visible { background: var(--tm-sage); }
.tm-pagination .page-numbers.dots { border: 0; min-width: 0; padding: 0 4px; }
.tm-404__links { line-height: 2; }
.tm-article__image img,
.tm-article__image { border-radius: var(--tm-radius); margin-bottom: 16px; }
.tm-article__meta { color: var(--tm-muted); }

/* =====================================================================
   Homepage v2 — premium dark hero + wireframe sections (loaded last)
   ===================================================================== */
:root { --tm-lime: #a8d832; --tm-lime2: #c0f040; --tm-display: "Space Grotesk", "Cabinet Grotesk", system-ui, sans-serif; }

.tm-section__title, .tm-xhero__h1, .tm-xstat__num, .tm-finalcta h2, .tm-varcard__price { font-family: var(--tm-display); }
.tm-section__title--center { text-align: center; }
.tm-section__cta--center { text-align: center; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---- Buttons (lime + glass) ---- */
.tm-btn--lime { background: var(--tm-lime); color: #0f1f12; font-weight: 800; box-shadow: 0 4px 20px rgba(168,216,50,.3); border: 0; }
.tm-btn--lime:hover, .tm-btn--lime:focus { background: var(--tm-lime2); color: #0f1f12; transform: translateY(-2px); }
.tm-btn__arrow { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(15,31,18,.18); margin-left: 8px; font-weight: 700; }
.tm-btn--glass { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.24); }
.tm-btn--glass:hover, .tm-btn--glass:focus { background: rgba(255,255,255,.2); color: #fff; }

/* ---- Hero ---- */
.tm-xhero { position: relative; overflow: hidden; background: #060e07; color: #fff; min-height: 86vh; display: flex; align-items: center; }
.tm-xhero__sky { position: absolute; inset: 0; z-index: 0; background: linear-gradient(to bottom, #06150d 0%, #0a2414 46%, #0c2e16 70%, #06140a 100%); }
.tm-xhero__sun { position: absolute; top: -12%; right: 6%; width: 520px; height: 520px; max-width: 60vw; z-index: 0; pointer-events: none; background: radial-gradient(circle, rgba(168,216,50,.20), rgba(168,216,50,.06) 38%, transparent 70%); }
.tm-xhero__grass { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 40%; pointer-events: none; }
.tm-xhero__grass svg { width: 100%; height: 100%; }
.tm-blade { transform-origin: bottom center; }
@keyframes tmsw { 0%,100% { transform: rotate(var(--a)); } 50% { transform: rotate(var(--b)); } }
.sw1 { --a:-2deg;  --b:2deg;  animation: tmsw 3.4s ease-in-out infinite; }
.sw2 { --a:1.6deg; --b:-2.4deg; animation: tmsw 2.9s ease-in-out infinite; }
.sw3 { --a:-1deg;  --b:2.8deg; animation: tmsw 3.8s ease-in-out infinite; }
.sw4 { --a:2deg;   --b:-1.6deg; animation: tmsw 3.1s ease-in-out .3s infinite; }
.sw5 { --a:-2.4deg;--b:1.8deg; animation: tmsw 4.1s ease-in-out .5s infinite; }
.sw6 { --a:1.2deg; --b:-2.8deg; animation: tmsw 2.7s ease-in-out .7s infinite; }
@media (prefers-reduced-motion: reduce) { .tm-blade { animation: none !important; } }
.tm-xhero__inner { position: relative; z-index: 2; width: 100%; }
.tm-xhero__body { max-width: 680px; padding: 64px 0; }
.tm-xhero__kicker { display: inline-flex; align-items: center; gap: 10px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); border-radius: 50px; padding: .4rem 1rem .4rem .5rem; font-size: .8rem; font-weight: 600; color: rgba(255,255,255,.9); margin: 0 0 1.4rem; }
.tm-xhero__kicker-dot { width: 22px; height: 22px; border-radius: 50%; background: var(--tm-lime); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.tm-xhero__kicker-dot svg { width: 11px; height: 11px; }
.tm-xhero__h1 { font-size: clamp(2.6rem, 6vw, 5rem); font-weight: 800; line-height: 1.04; letter-spacing: -.02em; margin: 0 0 1.2rem; color: #fff; }
.tm-xhero__accent { color: var(--tm-lime); }
.tm-xhero__sub { font-size: 1.05rem; line-height: 1.7; color: rgba(255,255,255,.66); max-width: 520px; margin: 0 0 2rem; }
.tm-xhero__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 2.4rem; }
.tm-xhero__stats { display: flex; }
.tm-xstat { padding-right: 1.8rem; margin-right: 1.8rem; border-right: 1px solid rgba(255,255,255,.14); }
.tm-xstat:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.tm-xstat__num { display: block; font-size: 1.9rem; font-weight: 800; line-height: 1; }
.tm-xstat__label { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.45); margin-top: 5px; }
.tm-xhero__review { position: absolute; right: 4%; bottom: 8%; z-index: 3; width: 262px; background: rgba(255,255,255,.97); color: #1a2a1e; border-radius: 16px; padding: 1.2rem 1.4rem; box-shadow: 0 20px 50px rgba(0,0,0,.32); }
.tm-xreview__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .7rem; }
.tm-xreview__avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg,#2e7d3a,#4caf60); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .8rem; }
.tm-xreview__stars { color: #f5a623; letter-spacing: 1px; }
.tm-xreview__quote { font-style: italic; font-size: .85rem; line-height: 1.5; margin: 0 0 .7rem; }
.tm-xreview__meta { font-size: .75rem; color: #5a6a5e; }
.tm-xhero__strip { position: absolute; right: 0; top: 50%; transform: translateY(-50%); z-index: 3; display: flex; flex-direction: column; gap: 3px; }
.tm-vpill { display: flex; align-items: center; gap: 8px; min-width: 210px; background: rgba(0,0,0,.42); border: 1px solid rgba(255,255,255,.1); border-right: 0; border-radius: 8px 0 0 8px; padding: .5rem .9rem; text-decoration: none; transition: background .2s; }
.tm-vpill:hover { background: rgba(168,216,50,.18); }
.tm-vpill__swatch { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.tm-vpill__name { font-size: .74rem; font-weight: 600; color: rgba(255,255,255,.82); }
.tm-vpill__price { margin-left: auto; font-size: .74rem; font-weight: 800; color: var(--tm-lime); }
@media (max-width: 1180px) { .tm-xhero__strip { display: none; } }
@media (max-width: 1024px) { .tm-xhero__review { display: none; } }
@media (max-width: 600px) { .tm-xstat { padding-right: 1rem; margin-right: 1rem; } .tm-xstat__num { font-size: 1.5rem; } .tm-xhero { min-height: 78vh; } }

/* ---- Hero: animated sunrise / sunset scene ---- */
.tm-sunrise__sky { position: absolute; inset: 0; z-index: 0; background: linear-gradient(to bottom,#05090f 0%,#0d1a22 20%,#121e12 45%,#0c2010 58%,#08160a 72%,#050c06 100%); transition: background .06s linear; }
.tm-sunrise__sun { position: absolute; top: 78%; left: 70%; transform: translate(-50%,-50%); z-index: 1; pointer-events: none; }
.tm-sunrise__corona { position: absolute; border-radius: 50%; transform: translate(-50%,-50%); left: 50%; top: 50%; opacity: 0; }
.tm-sunrise__corona.c4 { width: 540px; height: 540px; max-width: 70vw; background: radial-gradient(circle,rgba(255,200,60,.07) 0%,transparent 70%); }
.tm-sunrise__corona.c3 { width: 320px; height: 320px; max-width: 46vw; background: radial-gradient(circle,rgba(255,210,80,.13) 0%,transparent 70%); }
.tm-sunrise__corona.c2 { width: 170px; height: 170px; background: radial-gradient(circle,rgba(255,230,120,.22) 0%,transparent 70%); }
.tm-sunrise__corona.c1 { width: 96px; height: 96px; background: radial-gradient(circle,rgba(255,245,180,.4) 0%,transparent 70%); animation: tm-cpulse 4s ease-in-out infinite; }
@keyframes tm-cpulse { 0%,100% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-50%) scale(1.12); } }
.tm-sunrise__disc { width: 60px; height: 60px; border-radius: 50%; opacity: 0; background: radial-gradient(circle,#fff8e8 0%,#ffe87a 45%,#ffb830 100%); box-shadow: 0 0 0 4px rgba(255,220,80,.3),0 0 32px 14px rgba(255,180,40,.25); animation: tm-dpulse 4s ease-in-out infinite; }
@keyframes tm-dpulse { 0%,100% { box-shadow: 0 0 0 4px rgba(255,220,80,.3),0 0 32px 14px rgba(255,180,40,.25); } 50% { box-shadow: 0 0 0 6px rgba(255,220,80,.4),0 0 48px 22px rgba(255,180,40,.4); } }
.tm-sunrise__rays { position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: screen; opacity: 0; }
.tm-sunrise__glow { position: absolute; left: 0; right: 0; height: 90px; transform: translateY(-50%); z-index: 1; pointer-events: none; }
.tm-xhero.tm-sunrise .tm-xhero__grass { z-index: 2; }
.tm-xhero.tm-sunrise .tm-xhero__inner { z-index: 3; }
.tm-xhero.tm-sunrise .tm-xhero__review,
.tm-xhero.tm-sunrise .tm-xhero__strip { z-index: 4; }
@media (prefers-reduced-motion: reduce) { .tm-sunrise__corona.c1, .tm-sunrise__disc { animation: none !important; } }
/* Hero mobile fit: let the flex child shrink + keep the headline inside the viewport. */
.tm-xhero__inner { min-width: 0; }
.tm-xhero__h1 { overflow-wrap: break-word; }
@media (max-width: 600px) {
	.tm-xhero__h1 { font-size: clamp(1.85rem, 7.4vw, 2.5rem); }
	.tm-xhero__body { max-width: 100%; padding: 46px 0 36px; }
	.tm-xhero__sub { font-size: 1rem; max-width: 100%; }
	.tm-xhero__ctas { gap: .7rem; }
	.tm-xhero__ctas .tm-btn { flex: 1 1 46%; justify-content: center; }
}

/* ---- Trust bar ---- */
.tm-trustbar { background: var(--tm-primary-d); color: #fff; }
.tm-trustbar__inner { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 16px 24px; padding: 18px 0; }
.tm-trustbar__item { text-align: center; }
.tm-trustbar__item strong { display: block; font-size: 1.02rem; }
.tm-trustbar__item span { font-size: .8rem; color: rgba(255,255,255,.7); }

/* ---- Intent router ---- */
.tm-router { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 560px) { .tm-router { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .tm-router { grid-template-columns: repeat(4, 1fr); } }
.tm-router__card { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 14px; text-decoration: none; color: var(--tm-ink); box-shadow: 0 8px 20px rgba(20,50,25,.05); transition: transform .18s, box-shadow .18s; }
.tm-router__card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(20,50,25,.12); }
.tm-router__icon { font-size: 2rem; }
.tm-router__title { font-weight: 800; font-size: 1.15rem; color: var(--tm-primary-d); }
.tm-router__desc { color: var(--tm-muted); font-size: .92rem; flex: 1; }
.tm-router__cta { font-weight: 700; color: var(--tm-primary); }

/* ---- Variety grid ---- */
.tm-vargrid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 560px) { .tm-vargrid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .tm-vargrid { grid-template-columns: repeat(3, 1fr); } }
.tm-varcard { background: var(--tm-surface); border: 1px solid #e6ede7; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 8px 20px rgba(20,50,25,.06); transition: transform .18s, box-shadow .18s; }
.tm-varcard:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(20,50,25,.14); }
.tm-varcard__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.tm-varcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.tm-varcard:hover .tm-varcard__media img { transform: scale(1.05); }
.tm-varcard__badge { position: absolute; top: 10px; left: 10px; background: var(--tm-cta); color: #fff; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 5px 10px; border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.tm-varcard__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.tm-varcard__name { margin: 0; font-size: 1.2rem; color: var(--tm-ink); }
.tm-varcard__price { margin: 0; font-size: 1.5rem; font-weight: 800; color: var(--tm-primary-d); }
.tm-varcard__price span { font-size: .9rem; font-weight: 600; color: var(--tm-muted); }
.tm-varcard__attrs { list-style: none; margin: 0; padding: 0; font-size: .88rem; color: var(--tm-muted); }
.tm-varcard__attrs li { padding: 2px 0; }
.tm-varcard__body .tm-btn { margin-top: auto; }

/* ---- Services 2x2 ---- */
.tm-svc2 { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 760px) { .tm-svc2 { grid-template-columns: 1fr 1fr; } }
.tm-svccard { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 14px; padding: 24px; box-shadow: 0 8px 20px rgba(20,50,25,.05); }
.tm-svccard__icon { font-size: 1.8rem; }
.tm-svccard__title { margin: .5rem 0 .4rem; color: var(--tm-primary-d); }
.tm-svccard__desc { color: var(--tm-muted); margin: 0 0 8px; }
.tm-svccard__price { font-weight: 800; color: var(--tm-primary); margin: 0 0 12px; }

/* ---- Product strip ---- */
.tm-prodstrip { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 480px) { .tm-prodstrip { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 760px) { .tm-prodstrip { grid-template-columns: repeat(5, 1fr); } }
.tm-prodcard { display: flex; flex-direction: column; gap: 6px; padding: 14px; background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 12px; text-decoration: none; color: var(--tm-ink); text-align: center; align-items: center; box-shadow: 0 6px 16px rgba(20,50,25,.05); transition: transform .18s; }
.tm-prodcard:hover { transform: translateY(-3px); }
.tm-prodcard__ph { width: 100%; aspect-ratio: 1; border-radius: 8px; background: linear-gradient(140deg,#dceccf,#b6d79e); }
.tm-prodcard__name { font-size: .85rem; font-weight: 600; }
.tm-prodcard__price { font-weight: 800; color: var(--tm-primary); }

/* ---- Why features (emoji) ---- */
.tm-feature__emoji { font-size: 2rem; display: block; margin-bottom: 8px; }

/* ---- Delivery zones ---- */
.tm-delivery { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 820px) { .tm-delivery { grid-template-columns: 1fr 1fr; } }
.tm-delivery__pricing, .tm-delivery__suburbs { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 14px; padding: 22px; }
.tm-delivery h3 { margin-top: 0; color: var(--tm-primary-d); }
.tm-deltable { width: 100%; border-collapse: collapse; margin: 10px 0; }
.tm-deltable td { padding: 8px 0; border-bottom: 1px solid var(--tm-border); }
.tm-deltable td:last-child { text-align: right; font-weight: 700; color: var(--tm-primary-d); }
.tm-suburb-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 16px; }
.tm-suburb-tag { background: var(--tm-sage); color: var(--tm-primary-d); border-radius: 999px; padding: 6px 12px; font-size: .85rem; text-decoration: none; }
.tm-suburb-tag:hover { background: #d8ebdb; }

/* ---- Final CTA ---- */
.tm-finalcta { background: linear-gradient(125deg, #143a1f, #235c34); color: #fff; padding: 56px 0; }
.tm-finalcta__inner { text-align: center; }
.tm-finalcta h2 { font-size: 2.1rem; color: #fff; margin: 0 0 10px; }
.tm-finalcta p { color: rgba(255,255,255,.82); max-width: 62ch; margin: 0 auto 20px; }
.tm-finalcta__ctas { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-bottom: 18px; }
.tm-finalcta__trust { font-size: .9rem; color: rgba(255,255,255,.72); }

/* =====================================================================
   Turf category + product (PDP) pages
   ===================================================================== */
/* Compact page hero (category / inner pages). */
.tm-pagehero { background: linear-gradient(125deg, #143a1f, #235c34); color: #fff; padding: 46px 0 40px; }
.tm-pagehero__kicker { text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; font-weight: 700; color: #bfe6c8; margin: 0 0 10px; }
.tm-pagehero__title { font-family: var(--tm-display); font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 800; line-height: 1.1; margin: 0 0 12px; color: #fff; }
.tm-pagehero__sub { color: rgba(255,255,255,.82); max-width: 70ch; margin: 0; }

/* PDP layout. */
.tm-pdp__top { display: grid; grid-template-columns: 1fr; gap: 28px; margin: 18px 0 8px; }
@media (min-width: 860px) { .tm-pdp__top { grid-template-columns: 1.05fr 1fr; align-items: start; } }
.tm-pdp__main { position: relative; border-radius: var(--tm-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--tm-bg); box-shadow: 0 10px 28px rgba(20,50,25,.10); }
.tm-pdp__img { width: 100%; height: 100%; object-fit: cover; }
.tm-pdp__stockflag { position: absolute; top: 12px; left: 12px; padding: 6px 12px; border-radius: 999px; font-size: .75rem; font-weight: 800; color: #fff; }
.tm-pdp__stockflag--out { background: #b3261e; }
.tm-pdp__thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 8px; }
.tm-pdp__thumb { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.tm-pdp__title { font-family: var(--tm-display); font-size: clamp(1.7rem, 3.4vw, 2.4rem); font-weight: 800; line-height: 1.12; margin: 0 0 6px; }
.tm-pdp__tagline { color: var(--tm-muted); margin: 0 0 10px; }
.tm-pdp__rating { display: flex; align-items: center; gap: 8px; font-size: .9rem; color: var(--tm-muted); margin: 0 0 12px; }
.tm-pdp__stars { color: #f5a623; letter-spacing: 1px; }
.tm-pdp__price { font-family: var(--tm-display); font-size: 2rem; font-weight: 800; color: var(--tm-primary-d); margin: 0 0 14px; }
.tm-pdp__price span { font-family: inherit; font-size: .9rem; font-weight: 600; color: var(--tm-muted); }
.tm-pdp__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.tm-chip { background: var(--tm-sage); color: var(--tm-primary-d); border-radius: 999px; padding: 5px 12px; font-size: .82rem; }
.tm-chip strong { font-weight: 700; }
.tm-pdp__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.tm-pdp__facts { list-style: none; margin: 14px 0 0; padding: 16px 0 0; border-top: 1px solid var(--tm-border); display: grid; grid-template-columns: 1fr 1fr; gap: 8px; font-size: .88rem; color: var(--tm-ink); }
.tm-pdp__section { margin-top: 36px; }
.tm-pdp__section > h2 { font-family: var(--tm-display); color: var(--tm-primary-d); }

/* Install upsell band. */
.tm-pdp__installcta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 32px 0; padding: 24px 28px; border-radius: var(--tm-radius); background: var(--tm-sage); }
.tm-pdp__installcta h2 { margin: 0 0 4px; color: var(--tm-primary-d); font-size: 1.3rem; }
.tm-pdp__installcta p { margin: 0; color: var(--tm-primary-d); opacity: .85; }
.tm-pdp__installcta--wide { margin: 0; border-radius: 0; padding: 36px 0; }
.tm-pdp__installcta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }

/* Spec table. */
.tm-spectable { width: 100%; border-collapse: collapse; max-width: 620px; }
.tm-spectable th, .tm-spectable td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--tm-border); }
.tm-spectable th { width: 45%; color: var(--tm-muted); font-weight: 600; }
.tm-spectable tr:nth-child(even) { background: #f6faf6; }

/* ---------- Cookie consent banner ---------- */
.tm-consent {
	position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 200;
	max-width: 720px; margin: 0 auto;
	background: var(--tm-surface); border: 1px solid var(--tm-border);
	border-radius: 14px; box-shadow: 0 16px 40px rgba(20,50,25,.18);
	padding: 16px 18px; display: flex; flex-wrap: wrap; align-items: center;
	gap: 12px 16px;
}
.tm-consent[hidden] { display: none; }
.tm-consent__text { margin: 0; flex: 1 1 280px; font-size: .9rem; color: var(--tm-ink); }
.tm-consent__actions { display: flex; gap: 10px; margin-left: auto; }

/* ============ Turf category (/turf/) — Wireframe A ============ */
.tm-crumbs { background: var(--tm-bg); border-bottom: 1px solid var(--tm-border); font-size: .82rem; color: var(--tm-muted); }
.tm-crumbs .tm-container { padding-top: 10px; padding-bottom: 10px; }
.tm-crumbs a { color: var(--tm-primary); text-decoration: none; }
.tm-crumbs span { margin: 0 4px; color: var(--tm-border); }

.tm-cathero { background: linear-gradient(180deg, var(--tm-sage), var(--tm-bg)); padding: 40px 0 34px; text-align: center; }
.tm-cathero__kicker { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tm-primary); margin: 0 0 .5rem; }
.tm-cathero__title { font-family: var(--tm-display, inherit); font-size: clamp(1.8rem, 4.5vw, 2.8rem); font-weight: 800; letter-spacing: -.02em; color: var(--tm-primary-d); margin: 0 0 .6rem; }
.tm-cathero__sub { max-width: 640px; margin: 0 auto 1.3rem; color: var(--tm-ink); line-height: 1.65; }
.tm-cathero__ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 1.2rem; }
.tm-cathero__trust { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.4rem; justify-content: center; flex-wrap: wrap; font-size: .84rem; color: var(--tm-muted); font-weight: 600; }
.tm-cathero__trust li { display: inline-flex; align-items: center; gap: 6px; }
.tm-stars { color: #f5a623; letter-spacing: 1px; }

.tm-catbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; background: var(--tm-bg); border: 1px solid var(--tm-border); border-radius: 12px; padding: 10px 12px; margin-bottom: 22px; }
.tm-catbar__filters { display: flex; gap: 7px; flex-wrap: wrap; }
.tm-fchip { font: inherit; font-size: .82rem; font-weight: 600; padding: .42rem .9rem; border-radius: 50px; border: 1.5px solid var(--tm-border); background: var(--tm-surface); color: var(--tm-ink); cursor: pointer; transition: all .15s; }
.tm-fchip:hover { border-color: var(--tm-primary-2); }
.tm-fchip.is-on { background: var(--tm-primary); border-color: var(--tm-primary); color: #fff; }
.tm-catbar__sort { display: flex; align-items: center; gap: 8px; }
.tm-catbar__sortlabel { font-size: .78rem; font-weight: 700; color: var(--tm-muted); }
.tm-catbar__select { font: inherit; font-size: .82rem; padding: .42rem 2rem .42rem .7rem; border: 1.5px solid var(--tm-border); border-radius: 8px; background: var(--tm-surface); color: var(--tm-ink); cursor: pointer; }
.tm-catbar__count { font-size: .78rem; color: var(--tm-muted); }

/* enrich the variety cards */
.tm-varcard__media { position: relative; }
.tm-varcard__badge--pop { background: var(--tm-cta); color: #fff; }
.tm-varcard__badge--lux { background: var(--tm-primary-d); color: var(--tm-lime, #a8d832); }
.tm-varcard__compare { display: inline-flex; align-items: center; gap: 6px; font-size: .76rem; font-weight: 600; color: var(--tm-muted); cursor: pointer; margin-bottom: .4rem; }
.tm-varcard__compare input { width: 15px; height: 15px; accent-color: var(--tm-primary); }
.tm-varcard__desc { font-size: .82rem; color: var(--tm-muted); line-height: 1.5; margin: .2rem 0 .7rem; }
.tm-varcard__actions { display: flex; flex-direction: column; gap: 7px; }

/* sticky compare bar */
.tm-comparebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; background: var(--tm-primary-d); color: #fff; box-shadow: 0 -6px 20px rgba(0,0,0,.18); }
.tm-comparebar__inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 12px; padding-bottom: 12px; }
.tm-comparebar__label { font-size: .88rem; }
.tm-comparebar__label strong { color: var(--tm-lime, #a8d832); }
.tm-comparebar__actions { display: flex; gap: 8px; }

/* delivery info strip */
.tm-delivstrip { background: var(--tm-primary-d); color: #fff; }
.tm-delivstrip__inner { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding-top: 26px; padding-bottom: 26px; }
.tm-delivstrip__text h2 { font-size: 1.15rem; margin: 0 0 .35rem; color: #fff; }
.tm-delivstrip__text p { margin: 0; color: rgba(255,255,255,.82); font-size: .9rem; line-height: 1.6; max-width: 720px; }
.tm-delivstrip .tm-btn--ghost { color: #fff; border-color: rgba(255,255,255,.4); }
.tm-delivstrip .tm-btn--ghost:hover { background: rgba(255,255,255,.12); }
@media (max-width: 600px) { .tm-catbar { flex-direction: column; align-items: stretch; } .tm-catbar__sort { justify-content: space-between; } }

/* ============ Turf PDP (Wireframe B) additions ============ */
.tm-pdp__eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tm-cta); margin: 0 0 .3rem; }
.tm-pdp__attrs { list-style: none; margin: .9rem 0 1.1rem; padding: 0; display: grid; gap: 7px; }
.tm-pdp__attrs li { font-size: .92rem; color: var(--tm-ink); }
.tm-trustbar2 { list-style: none; margin: 26px 0 0; padding: 16px; display: grid; grid-template-columns: 1fr; gap: 10px; background: var(--tm-sage); border: 1px solid var(--tm-border); border-radius: 12px; font-size: .86rem; font-weight: 600; color: var(--tm-primary-d); }
@media (min-width: 560px) { .tm-trustbar2 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 880px) { .tm-trustbar2 { grid-template-columns: repeat(3, 1fr); } }
.tm-pdp__specsplit { display: grid; grid-template-columns: 1fr; gap: 28px; margin-top: 34px; }
@media (min-width: 820px) { .tm-pdp__specsplit { grid-template-columns: 1.3fr 1fr; align-items: start; } }
.tm-pdp__about h2, .tm-pdp__specs h2 { font-size: 1.4rem; margin: 0 0 .7rem; color: var(--tm-primary-d); }
.tm-care4 { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 6px; }
@media (min-width: 560px) { .tm-care4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .tm-care4 { grid-template-columns: repeat(4, 1fr); } }
.tm-carecard { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 12px; padding: 16px; }
.tm-carecard__ic { font-size: 1.5rem; }
.tm-carecard h3 { font-size: .95rem; margin: .4rem 0 .3rem; color: var(--tm-primary-d); }
.tm-carecard p { font-size: .84rem; color: var(--tm-muted); line-height: 1.55; margin: 0; }
.tm-pdp__careclink { margin-top: 14px; }
.tm-pdp__careclink a { color: var(--tm-primary); font-weight: 700; text-decoration: none; }

/* ============ Services hub (Wireframe C) ============ */
.tm-svcgrid { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 620px) { .tm-svcgrid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .tm-svcgrid { grid-template-columns: repeat(3, 1fr); } }
.tm-svccard { display: flex; flex-direction: column; background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 14px; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.tm-svccard:hover { box-shadow: 0 10px 28px rgba(26,50,32,.1); transform: translateY(-3px); }
.tm-svccard--pop { border-color: var(--tm-primary); box-shadow: 0 6px 20px rgba(31,107,46,.12); }
.tm-svccard__head { position: relative; min-height: 96px; display: flex; align-items: center; justify-content: center; background: var(--tm-sage); }
.tm-svccard__media { display: block; width: 100%; }
.tm-svccard__media img { width: 100%; height: 150px; object-fit: cover; display: block; }
.tm-svccard__icon { font-size: 2.6rem; }
.tm-svccard__badges { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; justify-content: space-between; gap: 6px; }
.tm-svccard__badge { font-size: .66rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 3px 9px; border-radius: 50px; }
.tm-svccard__badge--pop { background: var(--tm-cta); color: #fff; }
.tm-svccard__badge--price { background: var(--tm-primary-d); color: #fff; margin-left: auto; }
.tm-svccard__body { display: flex; flex-direction: column; gap: 8px; padding: 16px; flex: 1; }
.tm-svccard__title { font-size: 1.1rem; margin: 0; }
.tm-svccard__title a { color: var(--tm-primary-d); text-decoration: none; }
.tm-svccard__desc { font-size: .85rem; color: var(--tm-muted); line-height: 1.55; margin: 0; }
.tm-svccard__inc { list-style: none; margin: 4px 0 8px; padding: 0; display: grid; gap: 4px; font-size: .82rem; color: var(--tm-ink); }
.tm-svccard__body .tm-btn { margin-top: auto; }
.tm-areagrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (min-width: 760px) { .tm-areagrid { grid-template-columns: repeat(4, 1fr); } }
.tm-areacard { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 12px; padding: 16px; }
.tm-areacard h3 { font-size: .95rem; margin: 0 0 .3rem; color: var(--tm-primary); }
.tm-areacard p { font-size: .84rem; color: var(--tm-muted); margin: 0; line-height: 1.5; }

/* ============ Service single (Wireframe D) ============ */
.tm-service__hero2 { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: center; padding: 8px 0 24px; }
@media (min-width: 820px) { .tm-service__hero2 { grid-template-columns: 1.2fr 1fr; } }
.tm-service__eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tm-cta); margin: 0 0 .3rem; }
.tm-service__lede { font-size: 1.02rem; color: var(--tm-ink); line-height: 1.6; margin: .4rem 0 .7rem; }
.tm-service__rating { font-size: .9rem; color: var(--tm-muted); margin: 0 0 .8rem; }
.tm-service__ticks { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: 6px; font-size: .92rem; color: var(--tm-ink); }
.tm-service__herocard { }
.tm-service__heroimg { width: 100%; border-radius: 16px; display: block; }
.tm-service__herofacts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--tm-border); border: 1px solid var(--tm-border); border-radius: 16px; overflow: hidden; }
.tm-service__herofact { background: var(--tm-primary-d); color: #fff; padding: 18px; text-align: center; }
.tm-service__herofact strong { display: block; font-size: 1.4rem; color: var(--tm-lime, #a8d832); }
.tm-service__herofact span { font-size: .72rem; color: rgba(255,255,255,.7); }
.tm-inc6 { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 560px) { .tm-inc6 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .tm-inc6 { grid-template-columns: repeat(3, 1fr); } }
.tm-inccard { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 12px; padding: 16px; }
.tm-inccard h3 { font-size: .95rem; margin: 0 0 .35rem; color: var(--tm-primary-d); }
.tm-inccard p { font-size: .84rem; color: var(--tm-muted); line-height: 1.55; margin: 0; }
.tm-vpills { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 10px; }
.tm-vpill2 { display: inline-flex; align-items: center; gap: 7px; padding: .5rem .95rem; border-radius: 50px; border: 1.5px solid var(--tm-border); background: var(--tm-surface); color: var(--tm-ink); text-decoration: none; font-size: .84rem; font-weight: 600; transition: border-color .15s; }
.tm-vpill2:hover { border-color: var(--tm-primary); }
.tm-vpill2 strong { color: var(--tm-primary); }
.tm-service__areas p { color: var(--tm-ink); line-height: 1.7; }

/* Professional-icon colour for homepage router/service icon slots. */
.tm-router__icon .tm-ic{color:#1a3320}
.tm-svccard__icon .tm-ic{color:#3a6b44}
.tm-varcard__attrs .tm-ic{color:#4e7d55;vertical-align:-2px}

/* ============================================================================
 * Premium v2 chrome — header, topbar, dropdown nav, footer.
 * Appended last so it overrides the v1 chrome rules above without disturbing
 * the global --tm-* token system used by older templates.
 * ========================================================================== */
:root{
	--tm-forest:#1a3320; --tm-forest-2:#243d28; --tm-forest-3:#2e5035;
	--tm-lime:#a8d832; --tm-orange:#e05a18; --tm-orange-3:#f07030;
	--tm-cream:#f5f0e8; --tm-cream-2:#ede8de; --tm-cream-3:#e4ddd0;
	--tm-ink2:#1a2018; --tm-ink-soft:#2e3828; --tm-mu2:#6b7a62; --tm-bd2:#d4cec4;
	--tm-gold:#f5a623;
	--tm-header-h:64px;
}
html{scroll-padding-top:calc(var(--tm-header-h) + 12px);}
body{font-family:'Bricolage Grotesque',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}

/* ---- topbar (forest, scrolls away) ---- */
.tm-topbar{background:var(--tm-forest);color:rgba(245,240,232,.85);border-bottom:1px solid rgba(255,255,255,.06);font-size:.82rem;}
.tm-topbar__inner{display:flex;align-items:center;gap:1rem;min-height:40px;}
.tm-topbar__phone{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:700;text-decoration:none;}
.tm-topbar__phone .tm-ic,.tm-topbar__ic{color:var(--tm-lime);}
.tm-topbar__note{color:rgba(245,240,232,.55);flex:1 1 auto;font-weight:500;}
.tm-topbar__right{display:inline-flex;align-items:center;gap:.9rem;margin-left:auto;}
.tm-topbar__rating{display:inline-flex;align-items:center;gap:6px;color:rgba(245,240,232,.82);text-decoration:none;font-weight:600;white-space:nowrap;}
.tm-topbar__rating:hover{color:#fff;}
.tm-topbar__star{color:var(--tm-gold);}
.tm-topbar .tm-btn--cta,.tm-topbar__cta{background:var(--tm-orange);color:#fff;padding:8px 16px;min-height:auto;border-radius:50px;font-weight:700;}
.tm-topbar .tm-btn--cta:hover,.tm-topbar .tm-btn--cta:focus{background:var(--tm-orange-3);color:#fff;}
@media (max-width:640px){.tm-topbar__note,.tm-topbar__rating{display:none;}}

/* ---- header bar (cream, sticky shadow-only) ---- */
.tm-header{background:var(--tm-cream);border-bottom:1.5px solid var(--tm-bd2);}
.tm-header.is-stuck{box-shadow:0 4px 20px rgba(26,50,32,.1);}
.tm-header__inner{min-height:var(--tm-header-h);gap:1.2rem;}
.tm-logo{font-family:'Bricolage Grotesque',sans-serif;font-size:1.35rem;font-weight:800;letter-spacing:-.01em;color:var(--tm-forest);text-decoration:none;}
.tm-account-link,.tm-cart-icon{color:var(--tm-forest);}
.tm-account-link:hover,.tm-cart-icon:hover{color:var(--tm-orange);}

/* ---- primary nav: desktop row + dropdown flyouts ---- */
.tm-nav__list{list-style:none;margin:0;padding:0;}
.tm-nav__item{position:relative;}
.tm-nav__link{display:inline-flex;align-items:center;gap:5px;color:var(--tm-ink2);font-weight:600;font-size:.92rem;text-decoration:none;border-radius:8px;}
.tm-nav__link:hover,.tm-nav__link:focus{color:var(--tm-forest);}
.tm-nav__item--has-children > .tm-nav__link::after{content:"";display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.55;margin-left:2px;transition:transform .2s ease;}
.tm-nav__group{display:block;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--tm-mu2);padding:.2rem 0 .35rem;}
.tm-nav__subitem{list-style:none;}
.tm-nav__submenu a,.tm-nav__subitem a{display:block;color:var(--tm-ink-soft);font-weight:600;font-size:.86rem;text-decoration:none;padding:.4rem .2rem;border-radius:6px;}
.tm-nav__submenu a:hover,.tm-nav__submenu a:focus{color:var(--tm-orange);}
.tm-nav__subtoggle{display:none;}

/* desktop ≥900: horizontal nav + absolute flyout panels */
@media (min-width:900px){
	.tm-nav{display:flex;align-items:center;}
	.tm-nav__list{display:flex;align-items:center;gap:1.5rem;}
	.tm-nav__link{padding:.55rem 0;}
	.tm-nav__submenu{position:absolute;top:100%;left:-1rem;min-width:240px;background:#fff;border:1.5px solid var(--tm-bd2);border-radius:14px;box-shadow:0 16px 40px rgba(26,50,32,.14);padding:1rem 1.1rem;margin:0;list-style:none;display:flex;flex-direction:column;gap:1px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:120;}
	.tm-nav__item--has-children:hover > .tm-nav__submenu,
	.tm-nav__item--has-children:focus-within > .tm-nav__submenu{opacity:1;visibility:visible;transform:translateY(0);}
	.tm-nav__item--has-children:hover > .tm-nav__link::after,
	.tm-nav__item--has-children:focus-within > .tm-nav__link::after{transform:rotate(225deg) translateY(2px);}
	.tm-nav__group:not(:first-child){margin-top:.6rem;border-top:1px solid var(--tm-cream-3);padding-top:.6rem;}
}

/* mobile <900: drawer + accordion */
@media (max-width:899px){
	.tm-nav.is-open .tm-nav__list{display:flex;flex-direction:column;gap:2px;}
	.tm-nav__item{display:flex;flex-wrap:wrap;align-items:center;}
	.tm-nav__link{flex:1;padding:.7rem 12px;font-size:1rem;}
	.tm-nav__item--has-children > .tm-nav__link::after{display:none;}
	.tm-nav__subtoggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;border-radius:8px;cursor:pointer;color:var(--tm-mu2);flex-shrink:0;}
	.tm-nav__subtoggle::after{content:"";display:inline-block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease;}
	.tm-nav__subtoggle[aria-expanded="true"]::after{transform:rotate(225deg) translateY(2px);}
	.tm-nav__submenu{flex-basis:100%;list-style:none;margin:0;padding:.2rem 0 .5rem 1.4rem;border-left:2px solid var(--tm-cream-3);}
	.tm-nav__submenu.is-collapsed{display:none;}
	.tm-nav__submenu a{padding:.5rem .2rem;font-size:.92rem;}
	.tm-nav__group{padding-top:.5rem;}
}

/* ---- footer v2 (forest, 4-col + quote) ---- */
.tm-footer{background:var(--tm-forest);color:rgba(245,240,232,.7);}
.tm-footer__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.4fr;gap:2.5rem;padding:3.5rem 16px 2.5rem;}
.tm-footer__title{font-family:'Bricolage Grotesque',sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.04em;color:var(--tm-lime);margin:0 0 1rem;text-transform:none;}
.tm-footer a{color:rgba(245,240,232,.7);text-decoration:none;transition:color .15s ease;}
.tm-footer a:hover{color:#fff;}
.tm-footer__address{font-style:normal;display:flex;flex-direction:column;gap:.55rem;}
.tm-footer__line{display:flex;align-items:flex-start;gap:8px;font-size:.86rem;line-height:1.5;color:rgba(245,240,232,.7);}
.tm-footer__ic{color:var(--tm-lime);flex-shrink:0;margin-top:1px;}
.tm-footer__abn,.tm-footer__since{margin-top:.8rem;color:rgba(245,240,232,.45);font-size:.8rem;}
.tm-footer__social{display:flex;gap:.6rem;margin-top:1.1rem;}
.tm-footer__soc{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.16);color:rgba(245,240,232,.8);}
.tm-footer__soc:hover{background:rgba(168,216,50,.15);border-color:var(--tm-lime);color:#fff;}
.tm-footer__col{min-width:0;}
.tm-footer__menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.86rem;}
.tm-footer__quote p{font-size:.86rem;color:rgba(245,240,232,.55);line-height:1.65;margin:0 0 1.1rem;}
.tm-footer__quote .tm-btn{display:flex;justify-content:center;width:100%;margin:0 0 .6rem;}
.tm-footer .tm-btn--cta{background:var(--tm-orange);color:#fff;border-radius:50px;}
.tm-footer .tm-btn--cta:hover{background:var(--tm-orange-3);color:#fff;}
.tm-footer .tm-btn--ghost{border:1.5px solid rgba(255,255,255,.25);color:rgba(245,240,232,.85);background:transparent;border-radius:50px;}
.tm-footer .tm-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;}
.tm-footer__reviews{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;color:rgba(245,240,232,.7);margin-top:.4rem;}
.tm-footer__star{color:var(--tm-gold);}
.tm-footer__bar{background:#12271a;border-top:1px solid rgba(255,255,255,.06);}
.tm-footer__bar-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem 16px;}
.tm-footer__bar p{margin:0;font-size:.8rem;color:rgba(245,240,232,.45);text-align:left;}
.tm-footer__legal{display:inline-flex;align-items:center;gap:8px;}
.tm-footer__legal a{color:rgba(245,240,232,.6);}
@media (max-width:1000px){.tm-footer__top{grid-template-columns:1fr 1fr;gap:2rem;}.tm-footer__quote{grid-column:1/-1;}}
@media (max-width:560px){.tm-footer__top{grid-template-columns:1fr;}}

/* ---- a11y: focus + reduced motion ---- */
.tm-nav__link:focus-visible,.tm-nav__subtoggle:focus-visible,.tm-footer a:focus-visible,.tm-topbar a:focus-visible{outline:2px solid var(--tm-orange);outline-offset:2px;border-radius:6px;}
@media (prefers-reduced-motion:reduce){
	.tm-nav__submenu,.tm-nav__subtoggle::after,.tm-nav__item--has-children > .tm-nav__link::after{transition:none !important;}
}

/* Custom Logo (the_custom_logo) sizing in the header brand slot. */
.tm-header__brand .custom-logo-link{display:inline-flex;align-items:center;line-height:0;}
.tm-header__brand .custom-logo{height:auto;max-height:48px;width:auto;display:block;}

/* ============================================================================
 * Homepage "What can we help you with?" — bento grid (scoped .tm-help).
 * ========================================================================== */
.tm-help__top{text-align:center;margin-bottom:2.6rem;}
.tm-help__ey{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tm-forest-3);display:block;margin-bottom:.6rem;}
.tm-help__h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.9rem,3.8vw,2.8rem);font-weight:800;color:var(--tm-forest);letter-spacing:-.03em;line-height:1.06;margin:0;}
.tm-help__h2 em{font-family:'Lora',serif;font-style:italic;font-weight:600;color:var(--tm-orange);}

.tm-help__bento{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.tm-help__c1{grid-column:1/4;grid-row:1;}
.tm-help__c2{grid-column:4/7;grid-row:1;}
.tm-help__c3{grid-column:1/3;grid-row:2;}
.tm-help__c4{grid-column:3/5;grid-row:2;}
.tm-help__c5{grid-column:5/7;grid-row:2;}

.tm-help__card{border-radius:22px;padding:2rem 1.8rem;display:flex;flex-direction:column;text-decoration:none;position:relative;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease;}
.tm-help__card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.12);}
.tm-help__card:focus-visible{outline:2px solid var(--tm-orange);outline-offset:3px;}
.tm-help__card::before{content:"";position:absolute;border-radius:50%;opacity:.12;pointer-events:none;transition:transform .4s ease,opacity .3s ease;}
.tm-help__card:hover::before{transform:scale(1.18);opacity:.2;}

.tm-help__ic{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.3rem;flex-shrink:0;position:relative;z-index:1;}
.tm-help__title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:800;margin-bottom:.4rem;line-height:1.2;position:relative;z-index:1;}
.tm-help__desc{font-size:.83rem;line-height:1.68;flex:1;margin-bottom:1.2rem;position:relative;z-index:1;}
.tm-help__cta{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:800;padding:7px 16px;border-radius:50px;width:fit-content;position:relative;z-index:1;transition:gap .18s ease,transform .18s ease;}
.tm-help__card:hover .tm-help__cta{gap:10px;transform:translateX(2px);}

.tm-help__wide{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex:1;}
.tm-help__wtext{flex:1;}
.tm-help__c1 .tm-help__title,.tm-help__c2 .tm-help__title{font-size:clamp(1.2rem,2.2vw,1.55rem);}

.tm-help__stats{display:flex;gap:1.5rem;margin-top:.8rem;}
.tm-help__sval{font-size:1.25rem;font-weight:800;color:var(--tm-lime);display:block;line-height:1;}
.tm-help__slbl{font-size:.66rem;color:rgba(255,255,255,.4);font-weight:500;margin-top:2px;display:block;}

.tm-help__diy{position:absolute;top:1.2rem;right:1.2rem;background:rgba(245,166,35,.22);border:1px solid rgba(245,166,35,.35);color:#f5a623;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:4px;z-index:2;}

.tm-help__card--forest{background:var(--tm-forest);color:#fff;}
.tm-help__card--forest::before{width:240px;height:240px;background:var(--tm-lime);top:-70px;right:-70px;}
.tm-help__card--forest .tm-help__ic{background:rgba(168,216,50,.14);border:1px solid rgba(168,216,50,.24);color:var(--tm-lime);}
.tm-help__card--forest .tm-help__desc{color:rgba(255,255,255,.5);}
.tm-help__card--forest .tm-help__cta{background:var(--tm-lime);color:var(--tm-forest);}

.tm-help__card--orange{background:var(--tm-orange);color:#fff;}
.tm-help__card--orange::before{width:210px;height:210px;background:#fff;top:-50px;right:-50px;}
.tm-help__card--orange .tm-help__ic{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;}
.tm-help__card--orange .tm-help__desc{color:rgba(255,255,255,.58);}
.tm-help__card--orange .tm-help__cta{background:#fff;color:var(--tm-orange);}

.tm-help__card--cream{background:#fff;border:1.5px solid var(--tm-bd2);color:var(--tm-forest);}
.tm-help__card--cream::before{width:160px;height:160px;background:var(--tm-forest);bottom:-30px;right:-30px;}
.tm-help__card--cream .tm-help__ic{background:var(--tm-cream);border:1px solid var(--tm-bd2);color:var(--tm-forest-3);}
.tm-help__card--cream .tm-help__desc{color:var(--tm-mu2);}
.tm-help__card--cream .tm-help__cta{background:var(--tm-forest);color:#fff;}

.tm-help__card--lime{background:var(--tm-lime);color:var(--tm-forest);}
.tm-help__card--lime::before{width:180px;height:180px;background:#fff;bottom:-40px;left:-40px;}
.tm-help__card--lime .tm-help__ic{background:rgba(26,51,32,.1);border:1px solid rgba(26,51,32,.15);color:var(--tm-forest);}
.tm-help__card--lime .tm-help__desc{color:rgba(26,51,32,.6);}
.tm-help__card--lime .tm-help__cta{background:var(--tm-forest);color:var(--tm-lime);}

.tm-help__card--amber{background:#7a3a00;color:#fff;}
.tm-help__card--amber::before{width:200px;height:200px;background:#f5a623;bottom:-50px;right:-50px;}
.tm-help__card--amber .tm-help__ic{background:rgba(245,166,35,.15);border:1px solid rgba(245,166,35,.28);color:#f5a623;}
.tm-help__card--amber .tm-help__desc{color:rgba(255,255,255,.52);}
.tm-help__card--amber .tm-help__cta{background:#f5a623;color:#3a1800;}

@media(max-width:940px){
	.tm-help__bento{grid-template-columns:1fr 1fr;gap:12px;}
	.tm-help__c1{grid-column:1/3;grid-row:1;}
	.tm-help__c2{grid-column:1/3;grid-row:2;}
	.tm-help__c3{grid-column:1/2;grid-row:3;}
	.tm-help__c4{grid-column:2/3;grid-row:3;}
	.tm-help__c5{grid-column:1/3;grid-row:4;}
	.tm-help__c1 .tm-help__wide,.tm-help__c2 .tm-help__wide{flex-direction:column;align-items:flex-start;gap:1rem;}
}
@media(max-width:560px){
	.tm-help__bento{grid-template-columns:1fr;}
	.tm-help__c1,.tm-help__c2,.tm-help__c3,.tm-help__c4,.tm-help__c5{grid-column:1;grid-row:auto;}
	.tm-help__wide{flex-direction:column !important;align-items:flex-start !important;gap:1rem;}
	.tm-help__stats{gap:1.1rem;}
}
@media (prefers-reduced-motion:reduce){
	.tm-help__card,.tm-help__card::before,.tm-help__cta{transition:none !important;}
}

/* ============================================================================
 * Homepage "Perth Turf Varieties" — filterable grid (scoped .tm-tv).
 * ========================================================================== */
.tm-tv__head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-bottom:1.6rem;border-bottom:1.5px solid var(--tm-bd2);margin-bottom:1.2rem;}
.tm-tv__ey{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tm-forest-3);display:block;margin-bottom:.5rem;}
.tm-tv__h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:800;color:var(--tm-forest);letter-spacing:-.03em;line-height:1.06;margin:0;}
.tm-tv__h2 em{font-family:'Lora',serif;font-style:italic;font-weight:600;color:var(--tm-orange);}
.tm-tv__headright{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;}
.tm-tv__sub{font-size:.86rem;color:var(--tm-mu2);text-align:right;line-height:1.6;max-width:320px;margin:0;}
.tm-tv__compare{font-size:.8rem;font-weight:700;color:var(--tm-forest-3);text-decoration:none;border-bottom:1.5px solid rgba(58,107,68,.28);padding-bottom:1px;transition:color .2s;}
.tm-tv__compare:hover{color:var(--tm-orange);}

.tm-tv__filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:0 0 1.6rem;}
.tm-tv__flabel{font-size:.72rem;font-weight:600;color:var(--tm-mu2);margin-right:.3rem;}
.tm-tv__fp{padding:.4rem 1rem;border-radius:50px;font-size:.76rem;font-weight:600;background:transparent;border:1.5px solid var(--tm-bd2);color:var(--tm-mu2);cursor:pointer;font-family:inherit;transition:background .18s,border-color .18s,color .18s;}
.tm-tv__fp:hover{border-color:var(--tm-forest-3);color:var(--tm-forest-3);}
.tm-tv__fp.is-on{background:var(--tm-forest);border-color:var(--tm-forest);color:#fff;}
.tm-tv__fp:focus-visible{outline:2px solid var(--tm-orange);outline-offset:2px;}

.tm-tv__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.tm-tv__card{border-radius:18px;overflow:hidden;border:2px solid var(--tm-bd2);background:#fff;transition:border-color .22s,transform .22s,box-shadow .22s;display:flex;flex-direction:column;}
.tm-tv__card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(26,50,32,.1);border-color:var(--tm-forest-3);}
.tm-tv__card[hidden]{display:none;}

.tm-tv__media{display:block;height:175px;position:relative;overflow:hidden;}
.tm-tv__media img{width:100%;height:100%;object-fit:cover;display:block;}
.tm-tv__media::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(0,0,0,.5),transparent 60%);pointer-events:none;}
.tm-tv__media--1{background:linear-gradient(155deg,#1f6b35,#0d3018,#1a5828);}
.tm-tv__media--2{background:linear-gradient(148deg,#2d7a3c,#143820,#256632);}
.tm-tv__media--3{background:linear-gradient(158deg,#1a5c2a,#0a2810,#1e5226);}
.tm-tv__media--4{background:linear-gradient(150deg,#246030,#0e3018,#204e28);}
.tm-tv__media--5{background:linear-gradient(153deg,#236b38,#112818,#1f5a30);}
.tm-tv__media--6{background:linear-gradient(147deg,#1e5c28,#0f2a15,#1a5024);}
.tm-tv__badge{position:absolute;bottom:.8rem;left:.85rem;z-index:3;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:20px;}
.tm-tv__badge.is-pop{background:var(--tm-lime);color:var(--tm-ink2);}
.tm-tv__badge.is-val{background:var(--tm-gold);color:#3a1800;}
.tm-tv__badge.is-bud{background:var(--tm-cream-3);color:var(--tm-ink-soft);border:1px solid var(--tm-bd2);}
.tm-tv__badge.is-sport{background:#2f7fc4;color:#fff;}

.tm-tv__body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;flex:1;}
.tm-tv__name{font-family:'Bricolage Grotesque',sans-serif;font-size:.98rem;font-weight:800;color:var(--tm-forest);margin:0 0 .2rem;}
.tm-tv__price{font-size:1.35rem;font-weight:800;color:var(--tm-orange);letter-spacing:-.02em;line-height:1;margin:0 0 .75rem;}
.tm-tv__price span{font-size:.74rem;font-weight:500;color:var(--tm-mu2);}
.tm-tv__attrs{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;flex:1;align-content:flex-start;}
.tm-tv__attrs li{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:600;background:var(--tm-cream-2);border:1px solid var(--tm-bd2);color:var(--tm-ink-soft);padding:3px 9px;border-radius:50px;}
.tm-tv__attrs li .tm-ic{color:var(--tm-forest-3);}
.tm-tv__choose{display:flex;align-items:center;justify-content:center;gap:6px;padding:.72rem .9rem;border-radius:10px;background:var(--tm-forest);font-size:.8rem;font-weight:800;color:#fff;text-decoration:none;transition:background .2s,transform .2s;margin-top:auto;}
.tm-tv__choose:hover{background:var(--tm-forest-3);transform:translateY(-1px);color:#fff;}
.tm-tv__arr{transition:transform .18s;}
.tm-tv__choose:hover .tm-tv__arr{transform:translateX(3px);}

.tm-tv__bottom{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border-top:1.5px solid var(--tm-bd2);margin-top:2rem;padding-top:1.8rem;}
.tm-tv__quiz{display:inline-flex;align-items:center;gap:9px;background:var(--tm-forest);color:#fff;padding:.82rem 1.6rem;border-radius:50px;font-size:.86rem;font-weight:700;text-decoration:none;transition:background .22s,transform .22s;}
.tm-tv__quiz:hover{background:var(--tm-forest-2);transform:translateY(-2px);color:#fff;}
.tm-tv__quizic{width:24px;height:24px;border-radius:50%;background:var(--tm-lime);display:flex;align-items:center;justify-content:center;color:var(--tm-forest);flex-shrink:0;}
.tm-tv__stats{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;}
.tm-tv__stat{text-align:center;}
.tm-tv__sn{font-size:1.3rem;font-weight:800;color:var(--tm-forest);display:block;line-height:1;letter-spacing:-.02em;}
.tm-tv__sl{font-size:.66rem;color:var(--tm-mu2);font-weight:500;}
.tm-tv__sdiv{width:1px;height:30px;background:var(--tm-bd2);}

@media(max-width:880px){
	.tm-tv__head{flex-direction:column;align-items:flex-start;}
	.tm-tv__headright{align-items:flex-start;}
	.tm-tv__sub{text-align:left;}
	.tm-tv__grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:500px){.tm-tv__grid{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){.tm-tv__card,.tm-tv__choose,.tm-tv__arr,.tm-tv__quiz,.tm-tv__fp{transition:none !important;}}

/* ============================================================================
 * Turf Cost Calculator — split hero variant (.tm-calcx). Real-data calculator
 * rendered by [turfman_calculator variant="split"].
 * ========================================================================== */
.tm-calcx{background:var(--tm-forest);position:relative;overflow:hidden;padding:4.5rem 1.5rem 5rem;}
.tm-calcx::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.022) 1px,transparent 1px);background-size:26px 26px;pointer-events:none;}
.tm-calcx [hidden]{display:none !important;}
.tm-calcx__inner{max-width:1160px;margin:0 auto;position:relative;z-index:1;}
.tm-calcx__split{display:grid;grid-template-columns:1fr 1fr;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.1);}

.tm-calcx__left{background:rgba(168,216,50,.08);border-right:1px solid rgba(255,255,255,.08);padding:3rem 2.5rem;display:flex;flex-direction:column;position:relative;overflow:hidden;}
.tm-calcx__left::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(168,216,50,.12),transparent 70%);bottom:-80px;right:-80px;pointer-events:none;}
.tm-calcx__ey{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(168,216,50,.7);display:block;margin-bottom:.6rem;position:relative;z-index:1;}
.tm-calcx__h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1.07;margin:0 0 .7rem;position:relative;z-index:1;}
.tm-calcx__h2 em{font-family:'Lora',serif;font-style:italic;font-weight:600;color:var(--tm-lime);}
.tm-calcx__sub{font-size:.9rem;color:rgba(255,255,255,.48);line-height:1.72;margin:0 0 1.8rem;position:relative;z-index:1;}
.tm-calcx__checks{list-style:none;margin:0 0 2rem;padding:0;display:flex;flex-direction:column;gap:.7rem;position:relative;z-index:1;}
.tm-calcx__checks li{display:flex;align-items:flex-start;gap:.7rem;font-size:.84rem;color:rgba(255,255,255,.6);line-height:1.5;}
.tm-calcx__chk{width:20px;height:20px;border-radius:50%;flex-shrink:0;background:rgba(168,216,50,.2);border:1px solid rgba(168,216,50,.35);display:flex;align-items:center;justify-content:center;color:var(--tm-lime);margin-top:1px;}
.tm-calcx__chk svg{width:10px;height:10px;}

.tm-calcx__live{margin-top:auto;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.4rem 1.5rem;position:relative;z-index:1;}
.tm-calcx__idle{font-size:.88rem;color:rgba(255,255,255,.32);font-style:italic;}
.tm-calcx__rlabel{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:.3rem;}
.tm-calcx__total{font-family:'Bricolage Grotesque',sans-serif;font-size:2.6rem;font-weight:800;color:var(--tm-lime);letter-spacing:-.04em;line-height:1;margin-bottom:1rem;}
.tm-calcx__bd{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.08);}
.tm-calcx__row{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;}
.tm-calcx__rk{color:rgba(255,255,255,.42);}
.tm-calcx__rv{font-weight:700;color:#fff;text-align:right;}
.tm-calcx__rnote{font-size:.72rem;color:rgba(255,255,255,.38);line-height:1.5;margin:0 0 1rem;}
.tm-calcx__rcta{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--tm-lime);color:var(--tm-ink2);padding:.78rem 1rem;border-radius:10px;font-size:.86rem;font-weight:800;text-decoration:none;transition:background .2s,transform .2s;}
.tm-calcx__rcta:hover{background:var(--tm-lime-2,#c4f040);transform:translateY(-1px);color:var(--tm-ink2);}

.tm-calcx__right{background:rgba(255,255,255,.03);padding:3rem 2.5rem;}
.tm-calcx__rptitle{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:1.8rem;}
.tm-calcx__step{margin-bottom:1.4rem;padding-bottom:1.4rem;border-bottom:1px solid rgba(255,255,255,.07);}
.tm-calcx__step:last-of-type{border-bottom:none;}
.tm-calcx__sfrow{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem;}
.tm-calcx__sfnum{width:26px;height:26px;border-radius:50%;flex-shrink:0;background:rgba(168,216,50,.12);border:1px solid rgba(168,216,50,.2);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;color:var(--tm-lime);}
.tm-calcx__sflabel{font-size:.82rem;font-weight:700;color:rgba(255,255,255,.72);}
.tm-calcx__input,.tm-calcx__select{width:100%;padding:.82rem 1rem;background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.1);border-radius:10px;font-size:.92rem;font-family:inherit;color:#fff;outline:none;transition:border-color .2s,background .2s;appearance:none;-webkit-appearance:none;}
.tm-calcx__input::placeholder{color:rgba(255,255,255,.25);}
.tm-calcx__input:focus,.tm-calcx__select:focus{border-color:var(--tm-lime);background:rgba(255,255,255,.1);}
.tm-calcx__select option,.tm-calcx__select optgroup{background:var(--tm-forest-2);color:#fff;}
.tm-calcx__selwrap{position:relative;}
.tm-calcx__selwrap::after{content:"";position:absolute;right:1rem;top:50%;transform:translateY(-30%);border:5px solid transparent;border-top-color:rgba(255,255,255,.4);pointer-events:none;}
.tm-calcx__pills{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem;}
.tm-calcx__pill{padding:.32rem .8rem;border-radius:50px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:.72rem;font-weight:600;color:rgba(255,255,255,.55);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s;}
.tm-calcx__pill:hover{background:rgba(168,216,50,.15);border-color:rgba(168,216,50,.3);color:var(--tm-lime);}
.tm-calcx__toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding:1rem 1.1rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;}
.tm-calcx__ttitle{font-size:.84rem;font-weight:700;color:#fff;display:block;margin-bottom:1px;}
.tm-calcx__tsub{font-size:.72rem;color:rgba(255,255,255,.4);}
.tm-calcx__switch{position:relative;width:44px;height:24px;flex-shrink:0;cursor:pointer;display:inline-block;}
.tm-calcx__switch input{opacity:0;width:0;height:0;position:absolute;}
.tm-calcx__slider{position:absolute;inset:0;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);transition:background .25s,border-color .25s;}
.tm-calcx__slider::before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.5);top:2px;left:2px;transition:transform .25s,background .25s;}
.tm-calcx__switch input:checked + .tm-calcx__slider{background:rgba(168,216,50,.28);border-color:var(--tm-lime);}
.tm-calcx__switch input:checked + .tm-calcx__slider::before{transform:translateX(20px);background:var(--tm-lime);}
.tm-calcx__switch input:focus-visible + .tm-calcx__slider{outline:2px solid var(--tm-lime);outline-offset:2px;}
.tm-calcx__call{display:flex;align-items:center;gap:.6rem;margin-top:1.5rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.07);}
.tm-calcx__calltext{font-size:.8rem;color:rgba(255,255,255,.38);}
.tm-calcx__calllink{font-size:.88rem;font-weight:800;color:#fff;text-decoration:none;transition:color .2s;}
.tm-calcx__calllink:hover{color:var(--tm-lime);}
.tm-calcx__trust{display:flex;justify-content:center;gap:2rem;margin-top:2rem;flex-wrap:wrap;}
.tm-calcx__trust span{display:inline-flex;align-items:center;gap:.45rem;font-size:.75rem;color:rgba(255,255,255,.32);}
.tm-calcx__trust span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--tm-lime);opacity:.55;}

@media(max-width:860px){
	.tm-calcx__split{grid-template-columns:1fr;border-radius:20px;}
	.tm-calcx__left{border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding:2rem 1.5rem;}
	.tm-calcx__right{padding:2rem 1.5rem;}
}
@media(max-width:480px){.tm-calcx{padding:3rem 1rem 3.5rem;}.tm-calcx__trust{gap:1rem;}}
@media (prefers-reduced-motion:reduce){.tm-calcx__rcta,.tm-calcx__pill,.tm-calcx__slider,.tm-calcx__slider::before,.tm-calcx__calllink{transition:none !important;}}
/* Prevent grid-item min-content overflow on mobile (heading/selects). */
.tm-calcx__split{min-width:0;}
.tm-calcx__left,.tm-calcx__right{min-width:0;}
.tm-calcx__h2,.tm-calcx__total{overflow-wrap:anywhere;}
.tm-calcx__select{max-width:100%;text-overflow:ellipsis;}
@media(max-width:860px){.tm-calcx__split{display:block;}.tm-calcx__inner{overflow:hidden;}}

/* ============================================================================
 * Homepage "Perth Lawn Services" — accent-card grid (scoped .tm-svc2).
 * ========================================================================== */
.tm-svc2__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.6rem;}
.tm-svc2__ey{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tm-forest-3);display:block;margin-bottom:.5rem;}
.tm-svc2__h2{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.8rem,3.5vw,2.7rem);font-weight:800;color:var(--tm-forest);letter-spacing:-.03em;line-height:1.06;margin:0;}
.tm-svc2__h2 em{font-family:'Lora',serif;font-style:italic;font-weight:600;color:var(--tm-orange);}
.tm-svc2__viewlink{font-size:.84rem;font-weight:700;color:var(--tm-forest-3);text-decoration:none;border-bottom:1.5px solid rgba(58,107,68,.28);padding-bottom:1px;white-space:nowrap;transition:color .2s,border-color .2s;}
.tm-svc2__viewlink:hover{color:var(--tm-orange);border-color:rgba(224,90,24,.3);}

.tm-svc2__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.tm-svc2__card{background:#fff;border:1.5px solid var(--tm-bd2);border-radius:22px;padding:2.2rem 2rem 2rem;display:flex;flex-direction:column;text-decoration:none;position:relative;overflow:hidden;transition:border-color .22s,transform .22s,box-shadow .22s;min-width:0;}
.tm-svc2__card:hover{transform:translateY(-4px);box-shadow:0 16px 44px rgba(26,50,32,.1);border-color:var(--tm-lime);}
.tm-svc2__card:focus-visible{outline:2px solid var(--tm-orange);outline-offset:3px;}
.tm-svc2__card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;opacity:0;transition:opacity .22s;}
.tm-svc2__card:hover::before{opacity:1;}
.tm-svc2__ic{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem;flex-shrink:0;}
.tm-svc2__title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.15rem;font-weight:800;color:var(--tm-forest);margin:0 0 .4rem;line-height:1.2;}
.tm-svc2__desc{font-size:.86rem;color:var(--tm-mu2);line-height:1.7;flex:1;margin:0 0 .85rem;}
.tm-svc2__badge{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:800;padding:.3rem .85rem;border-radius:50px;margin-bottom:1.2rem;width:fit-content;max-width:100%;}
.tm-svc2__cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.82rem 1.2rem;border-radius:12px;font-size:.88rem;font-weight:700;border:1.5px solid;transition:background .22s,border-color .22s,color .22s;margin-top:auto;}
.tm-svc2__arr{font-size:.82rem;transition:transform .18s;}
.tm-svc2__card:hover .tm-svc2__arr{transform:translateX(4px);}

/* themes */
.tm-svc2__card--green::before{background:var(--tm-forest-3);}
.tm-svc2__card--green .tm-svc2__ic{background:rgba(58,107,68,.08);border:1.5px solid rgba(58,107,68,.15);color:var(--tm-forest-3);}
.tm-svc2__card--green .tm-svc2__badge{background:rgba(58,107,68,.08);color:var(--tm-forest-3);}
.tm-svc2__card--green .tm-svc2__cta{background:var(--tm-forest);color:#fff;border-color:var(--tm-forest);}
.tm-svc2__card--green:hover .tm-svc2__cta{background:var(--tm-forest-2);}
.tm-svc2__card--orange::before{background:var(--tm-orange);}
.tm-svc2__card--orange .tm-svc2__ic{background:rgba(224,90,24,.08);border:1.5px solid rgba(224,90,24,.16);color:var(--tm-orange);}
.tm-svc2__card--orange .tm-svc2__badge{background:rgba(224,90,24,.08);color:var(--tm-orange);}
.tm-svc2__card--orange .tm-svc2__cta{background:var(--tm-orange);color:#fff;border-color:var(--tm-orange);}
.tm-svc2__card--orange:hover .tm-svc2__cta{background:#c84b0f;}
.tm-svc2__card--teal::before{background:#1d9e75;}
.tm-svc2__card--teal .tm-svc2__ic{background:rgba(29,158,117,.08);border:1.5px solid rgba(29,158,117,.18);color:#0f6e56;}
.tm-svc2__card--teal .tm-svc2__badge{background:rgba(29,158,117,.08);color:#0f6e56;}
.tm-svc2__card--teal .tm-svc2__cta{background:#1d9e75;color:#fff;border-color:#1d9e75;}
.tm-svc2__card--teal:hover .tm-svc2__cta{background:#0f6e56;}
.tm-svc2__card--gold::before{background:var(--tm-gold);}
.tm-svc2__card--gold .tm-svc2__ic{background:rgba(245,166,35,.1);border:1.5px solid rgba(245,166,35,.22);color:#b07c00;}
.tm-svc2__card--gold .tm-svc2__badge{background:rgba(245,166,35,.1);color:#7a5500;}
.tm-svc2__card--gold .tm-svc2__cta{background:transparent;color:var(--tm-ink-soft);border-color:var(--tm-bd2);}
.tm-svc2__card--gold:hover .tm-svc2__cta{background:var(--tm-cream-2);border-color:var(--tm-bd2);}

.tm-svc2__bottom{display:flex;justify-content:center;margin-top:2.5rem;}
.tm-svc2__viewbtn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1.5px solid var(--tm-bd2);color:var(--tm-ink-soft);padding:.82rem 2rem;border-radius:50px;font-size:.88rem;font-weight:700;text-decoration:none;transition:background .22s,color .22s,border-color .22s;}
.tm-svc2__viewbtn:hover{background:var(--tm-forest);color:#fff;border-color:var(--tm-forest);}

@media(max-width:760px){.tm-svc2__grid{grid-template-columns:1fr;}.tm-svc2__head{flex-direction:column;align-items:flex-start;}}
@media (prefers-reduced-motion:reduce){.tm-svc2__card,.tm-svc2__card::before,.tm-svc2__arr,.tm-svc2__cta,.tm-svc2__viewbtn,.tm-svc2__viewlink{transition:none !important;}}
