/* TheLonelyBrave theme styles. Colours and fonts come from theme.json presets. */

:root {
	--tlb-accent: var(--wp--preset--color--accent-1, #5BE36B);
	--tlb-accent-soft: var(--wp--preset--color--accent-3, #A8F0B2);
	--tlb-ink: var(--wp--preset--color--ink, #091628);
	--tlb-bg: var(--wp--preset--color--base, #071424);
	--tlb-deep: var(--wp--preset--color--accent-5, #050E1A);
	--tlb-card: var(--wp--preset--color--accent-2, #0C1F35);
	--tlb-text: var(--wp--preset--color--contrast, #F7FBFD);
	--tlb-muted: rgba(247, 251, 253, 0.66);
	--tlb-line: rgba(255, 255, 255, 0.08);
	/* Corners: square by default; one large radius for signature panels. Flip here. */
	--tlb-r: 0px;
	--tlb-r-btn: 0px;
	--tlb-r-panel: 32px;
	--tlb-ease: 200ms ease-out;
	/* Height of the sticky header: 20px padding, 52px logo, 20px padding, 1px border (73px on phones). */
	--tlb-header-h: 93px;
	--tlb-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M13 5l7 7-7 7'/%3E%3C/svg%3E");
	--tlb-nudge: 4px; /* Hover movement of an arrow, in the direction it points. */
}

/* Right-to-left languages (Arabic, Hebrew): layout uses logical properties (inline-start/end) and
   mirrors by itself; arrows point the other way. The hero scene is a diagram and stays as drawn. */
[dir="rtl"] {
	--tlb-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12H4'/%3E%3Cpath d='M11 5l-7 7 7 7'/%3E%3C/svg%3E");
	--tlb-nudge: -4px;
}

/* Barlow has no Arabic or Hebrew letters: those come from the system's fonts, Latin letters and
   numbers stay in Barlow. Letter-spacing would pull Arabic's joined letters apart. */
:root:lang(ar) { --wp--preset--font-family--barlow: Barlow, "Noto Sans Arabic", "Segoe UI", Tahoma, "Geeza Pro", sans-serif; }
:root:lang(he) { --wp--preset--font-family--barlow: Barlow, "Noto Sans Hebrew", "Segoe UI", Arial, "Arial Hebrew", sans-serif; }
:lang(ar) * { letter-spacing: 0 !important; }

body {
	/* Gutter = WordPress root padding (theme.json styles.spacing.padding), defined on body. */
	--tlb-gutter: var(--wp--style--root--padding-left, clamp(20px, 4vw, 80px));
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

::selection {
	background: var(--tlb-accent);
	color: var(--tlb-ink);
}

:focus-visible {
	outline: 2px solid var(--tlb-accent);
	outline-offset: 3px;
}

/* SVG colour hooks */
.tlb-fill-accent { fill: var(--tlb-accent); }
.tlb-fill-ink { fill: var(--tlb-ink); }
.tlb-stroke-accent { stroke: var(--tlb-accent); }

/* Content is at most wide-size (1760px) between the gutters, matching WordPress's
   constrained layouts (shop, cart, search), so header, content and footer share edges. */
.tlb-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--wp--style--global--wide-size, 1760px) + 2 * var(--tlb-gutter));
	margin-inline: auto;
	padding-inline: var(--tlb-gutter);
}

/* ---------- Header ---------- */
.tlb-header {
	position: relative;
	z-index: 20;
	background: var(--tlb-deep);
	border-bottom: 1px solid var(--tlb-line);
}

/* Sticky header; site.js adds a shadow once the page has scrolled. */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	transition: box-shadow 300ms ease-out;
}

/* The open mobile menu lives inside the header, so lift the header above fixed notices. */
.wp-site-blocks > header.wp-block-template-part:has(.is-menu-open) { z-index: 100000; }

/* Below 600px the admin bar scrolls away with the page, so the header sticks to the very top. */
@media (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part { top: 0; }
}

/* Keep skip-link targets, notices and focused elements clear of the sticky header. */
html { scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 112px); }

.wp-site-blocks > header.is-scrolled { box-shadow: 0 10px 30px rgba(2, 8, 16, 0.55); }

/* Scroll reveal, added by site.js only when motion is allowed. */
.tlb-js .tlb-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 700ms ease-out, transform 700ms ease-out;
}

.tlb-js .tlb-reveal.is-inview { opacity: 1; transform: none; }

@media print {
	.tlb-js .tlb-reveal { opacity: 1; transform: none; }
	.wp-site-blocks > header.wp-block-template-part { position: static; }
}

.tlb-header__bar {
	gap: 24px;
	padding-block: 20px;
}

.tlb-logo {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
	color: var(--tlb-text);
	text-decoration: none;
}

.tlb-logo:hover { color: var(--tlb-text); }

.tlb-logo__mark { display: block; flex-shrink: 0; object-fit: contain; }

.tlb-logo__text {
	display: flex;
	flex-direction: column;
	gap: 5px;
	line-height: 1;
}

.tlb-logo__name {
	font-size: 22px;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.tlb-footer .tlb-logo__name { font-size: 20px; }
/* Main navigation */
.tlb-mainnav {
	--navigation-layout-justification-setting: center;
	gap: 26px;
	font-size: 15.5px;
	font-weight: 600;
}

.tlb-mainnav .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	min-height: 44px;
	color: var(--tlb-text);
	text-decoration: none;
	transition: color var(--tlb-ease);
}

.tlb-mainnav .wp-block-navigation-item__content:hover { color: var(--tlb-accent-soft); }
.tlb-mainnav .wp-block-navigation-item__content[aria-current="page"] { color: var(--tlb-accent); }

.tlb-mainnav .wp-block-navigation__responsive-container-open,
.tlb-mainnav .wp-block-navigation__responsive-container-close {
	color: var(--tlb-text);
}

.tlb-mainnav .wp-block-navigation__responsive-container-open {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--tlb-accent);
	color: var(--tlb-ink);
}

.tlb-mainnav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px var(--tlb-gutter);
	overflow-y: auto;
}

.tlb-mainnav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; }

.tlb-mainnav .is-menu-open .wp-block-navigation__container {
	gap: 0;
	width: 100%;
	font-size: 20px;
	align-items: stretch !important;
}

.tlb-mainnav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	padding-block: 6px;
	border-bottom: 1px solid var(--tlb-line);
	align-items: flex-start !important;
}

/* Account and Contact sit in the header bar on wide screens; the open menu offers them on small ones. */
.tlb-mainnav li.tlb-mainnav__extra { display: none; }
.tlb-mainnav .is-menu-open li.tlb-mainnav__extra { display: flex; }
.tlb-mainnav .is-menu-open .wp-block-navigation__container > li.tlb-mainnav__cta { padding-top: 24px; border-bottom: 0; }

.tlb-mainnav .is-menu-open .tlb-mainnav__cta .wp-block-navigation-item__content {
	justify-content: center;
	width: 100%;
	min-height: 48px;
	box-sizing: border-box;
	padding: 0.8rem 1.75rem;
	border-radius: var(--tlb-r-btn);
	background: var(--tlb-accent);
	color: var(--tlb-ink);
	font-size: 16px;
}

.tlb-mainnav .is-menu-open .tlb-mainnav__cta .wp-block-navigation-item__content:hover { background: var(--tlb-accent-soft); color: var(--tlb-ink); }

/* Header tools */
.tlb-header__tools {
	gap: 4px;
	flex-shrink: 0;
}

/* Search, account and cart share one 44px square button and the same hover. */
.tlb-header__tools .wc-block-mini-cart__button,
.tlb-header__tools .wp-block-woocommerce-customer-account a,
.tlb-search .wp-block-search__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-width: 44px;
	height: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--tlb-r-btn);
	background: transparent;
	color: var(--tlb-text);
	transition: background-color var(--tlb-ease), color var(--tlb-ease);
}

.tlb-header__tools .wc-block-mini-cart__button:hover,
.tlb-header__tools .wp-block-woocommerce-customer-account a:hover,
.tlb-search .wp-block-search__button:hover {
	background: rgba(255, 255, 255, 0.07);
	color: var(--tlb-accent);
}

/* Optical match: the core search glyph is drawn smaller inside its 24px box than the
   WooCommerce account and cart glyphs inside theirs, so scale it to the same ~20px. */
.tlb-header__tools .wc-block-mini-cart__button svg,
.tlb-header__tools .wp-block-woocommerce-customer-account svg { width: 32px; height: 32px; }
.tlb-search .wp-block-search__button svg { display: block; width: 34px; height: 34px; fill: currentColor; }

.tlb-header__tools .wc-block-mini-cart__badge {
	background: var(--tlb-accent);
	color: var(--tlb-ink);
}

.tlb-header__cta { margin: 0 !important; margin-inline-start: 8px !important; }

/* Language switcher (sites in several languages): a dropdown among the header tools. */
.tlb-lang { position: relative; }

.tlb-lang summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 44px;
	padding: 0 10px;
	border-radius: var(--tlb-r-btn);
	color: var(--tlb-text);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	list-style: none;
	cursor: pointer;
	transition: background-color var(--tlb-ease), color var(--tlb-ease);
}

.tlb-lang summary::-webkit-details-marker { display: none; }
.tlb-lang summary:hover,
.tlb-lang[open] summary { background: rgba(255, 255, 255, 0.07); color: var(--tlb-accent); }

.tlb-lang__list {
	position: absolute;
	z-index: 60;
	top: calc(100% + 6px);
	inset-inline-end: 0;
	min-width: 190px;
	margin: 0;
	padding: 6px;
	border: 1px solid var(--tlb-line);
	border-radius: var(--tlb-r);
	background: var(--tlb-deep);
	box-shadow: 0 18px 40px rgba(2, 8, 16, 0.6);
	list-style: none;
}

.tlb-lang__list a {
	display: block;
	padding: 9px 12px;
	color: var(--tlb-text);
	font-size: 15px;
	text-decoration: none;
}

.tlb-lang__list a:hover { background: rgba(255, 255, 255, 0.06); color: var(--tlb-accent); }
.tlb-lang__list a[aria-current] { color: var(--tlb-accent); }

/* The open menu lists the other languages only on phones, where the switcher leaves the bar. */
.tlb-mainnav .is-menu-open li.tlb-mainnav__lang { display: none; }

@media (max-width: 640px) {
	.tlb-header__tools .tlb-lang { display: none; }
	.tlb-mainnav .is-menu-open li.tlb-mainnav__lang { display: flex; }
}

/* 1024-1279px with a language switcher: the logo mark alone, so the full navigation still fits. */
@media (max-width: 1279px) and (min-width: 1024px) {
	.tlb-header__bar:has(.tlb-lang) .tlb-logo__text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

.tlb-header__cta .wp-block-button__link {
	min-height: 42px;
	padding: 0.55rem 1.2rem;
	font-size: 14.5px;
}

.tlb-search { display: flex; align-items: center; margin: 0; }
.tlb-search .wp-block-search__inside-wrapper {
	display: flex;
	align-items: center;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
}

.tlb-search .wp-block-search__input {
	min-width: 0;
	height: 40px;
	margin-inline-end: 4px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--tlb-r-btn);
	background: var(--tlb-card);
	color: var(--tlb-text);
	font-family: inherit;
	font-size: 14px;
}

.tlb-search .wp-block-search__input:focus { outline: none; border-color: var(--tlb-accent); }
.tlb-search .wp-block-search__input::placeholder { color: rgba(247, 251, 253, 0.5); }

/* Collapse the main navigation earlier than core's 600px breakpoint. */
@media (max-width: 1023px) {
	.tlb-header__bar .tlb-mainnav { order: 3; }
	.tlb-header__bar .tlb-header__tools { margin-inline-start: auto; }
	.tlb-mainnav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.tlb-mainnav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.tlb-mainnav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
}

@media (max-width: 899px) {
	.tlb-header .tlb-header__cta { display: none !important; }
}

@media (max-width: 1279px) and (min-width: 1024px) {
	/* Narrower gaps toward 1024px leave room for longer labels (German, French) before the menu folds. */
	.tlb-mainnav { gap: clamp(12px, 1.4vw, 20px); font-size: 15px; }
}

/* ---------- Shared building blocks ---------- */
.tlb-home { margin-block: 0; }
.tlb-home > * { margin-block-start: 0; }

.tlb-section {
	position: relative;
	margin-block-start: clamp(88px, 7.5vw, 168px);
}

.tlb-eyebrow {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tlb-accent);
}

.tlb-display,
.tlb-section__title {
	font-weight: 200;
	letter-spacing: 0.005em;
	text-wrap: balance;
}

.tlb-section__title {
	max-width: 1100px;
	margin: 24px 0 0;
	font-size: clamp(2.25rem, 4vw, 5.25rem);
	line-height: 1.12;
}

.tlb-textlink {
	margin-top: auto !important;
	padding-top: 32px;
	font-size: 15px;
	font-weight: 600;
}

.tlb-textlink a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--tlb-accent);
	text-decoration: none;
}

.tlb-textlink a:hover { text-decoration: underline; text-underline-offset: 4px; }

.tlb-textlink a::after,
.wp-block-button.is-style-outline .wp-block-button__link::after {
	content: "";
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: var(--tlb-arrow) center / contain no-repeat;
	mask: var(--tlb-arrow) center / contain no-repeat;
	transition: transform var(--tlb-ease);
}

.tlb-textlink a:hover::after,
.wp-block-button__link:hover::after { transform: translateX(var(--tlb-nudge)); }

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	box-sizing: border-box;
	transition: transform var(--tlb-ease), background-color var(--tlb-ease), color var(--tlb-ease);
}

.wp-block-button__link:hover { transform: translateY(-1px); }

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid var(--tlb-accent);
	background: transparent;
	color: var(--tlb-accent);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: rgba(91, 227, 107, 0.12);
	color: var(--tlb-accent);
}

/* ---------- Hero ---------- */
/* The first screen: all of the window below the header (and the admin bar when logged in). The
   content is centred in it and scales with it, the scene also with its height (see below), so the
   scene, readouts and caption stay on the first screen. */
.tlb-hero {
	--tlb-hero-h: calc(100svh - var(--wp-admin--admin-bar--height, 0px) - var(--tlb-header-h));
	--tlb-hero-pad: clamp(32px, 7svh, 104px);
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: var(--tlb-hero-h);
	overflow: hidden;
	background:
		radial-gradient(50% 60% at 78% 45%, rgba(3, 82, 127, 0.45) 0%, rgba(3, 82, 127, 0) 70%),
		radial-gradient(60% 80% at 0% 0%, rgba(17, 47, 79, 0.6) 0%, rgba(17, 47, 79, 0) 70%),
		var(--tlb-bg);
}

.tlb-hero__inner {
	position: relative;
	flex: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	align-content: center;
	align-items: center;
	gap: clamp(40px, 3.6vw, 88px);
	padding-block: var(--tlb-hero-pad);
}

.tlb-hero__inner > *,
.tlb-hero__copy > * { margin-block: 0; }
.tlb-hero__copy { container-type: inline-size; }
.tlb-hero .tlb-eyebrow { font-size: clamp(13px, 0.5rem + 0.4vw, 16px); }
/* As large as the column allows with one sentence per line, and no taller than the window allows.
   A Barlow letter is about 0.47em wide; --tlb-hero-chars is the longest sentence of the headline in
   the current language (functions.php). Arabic letters are narrower and simply get more room; Hebrew
   ones come from the system's fonts and are wider (0.48em in Noto Sans Hebrew, more in some others). */
.tlb-hero .tlb-display { margin-top: clamp(16px, 2.2svh, 28px); font-size: clamp(2.5rem, min(100cqi / (var(--tlb-hero-chars, 18) * var(--tlb-hero-em, 0.47)), 9svh), 7.5rem); text-wrap: balance; }
:lang(he) .tlb-hero { --tlb-hero-em: 0.52; }
.tlb-hero .tlb-lead { max-width: 38em; margin-top: clamp(20px, 3svh, 36px) !important; font-size: clamp(1.05rem, 0.55rem + 0.75vw, 1.75rem); }
.tlb-hero__actions { margin-top: clamp(28px, 4.5svh, 52px) !important; gap: 12px; }
.tlb-hero__actions .wp-block-button__link { padding: 0.9em 1.8em; font-size: clamp(15px, 0.6rem + 0.4vw, 18px); }
.tlb-hero__actions .wp-block-button__link::after { width: 1.05em; height: 1.05em; }

/* Side by side: the scene is as wide as its column, unless the window is too short for it, the
   readouts (at most 180px with the caption) and the padding; then it is narrower, on the right. */
@media (min-width: 901px) {
	.tlb-hero__demo { justify-self: end; width: min(100%, (var(--tlb-hero-h) - 2 * var(--tlb-hero-pad) - 180px) * 1.6); }
}

/* Scene: sunlight from the left passes a glass panel into the room on the right. */
/* The demo is a size container so the mode switch can sit over the scene's bottom edge. */
.tlb-hero__demo {
	position: relative;
	margin: 0;
	container-type: inline-size;
}

.tlb-hero__scene {
	position: relative;
	aspect-ratio: 8 / 5;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: var(--tlb-r-panel);
	background: #081729;
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.7);
	isolation: isolate;
}

.tlb-hero__art {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	direction: ltr; /* A diagram: its labels keep their places in right-to-left languages too. */
}

/* Centred on the rays' origin (70, 250 in the 800 × 500 viewBox). */
.tlb-hero__sun {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 8.75%;
	width: 46%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 244, 205, 1) 0%, rgba(255, 216, 140, 0.6) 12%, rgba(255, 170, 90, 0.14) 38%, rgba(255, 170, 90, 0) 70%);
	mix-blend-mode: screen;
	pointer-events: none;
	transform: translate(-50%, -50%);
}

.tlb-hero__outside { fill: #0E2744; }
.tlb-hero__inside { fill: #071222; }
.tlb-hero__heat { fill: #FF6B3D; opacity: 0.18; transition: opacity 1.4s ease; }
.tlb-hero__cool { fill: #5BE36B; opacity: 0; transition: opacity 1.4s ease; }
.is-coated .tlb-hero__heat { opacity: 0; }
.is-coated .tlb-hero__cool { opacity: 0.05; }

.tlb-hero__room {
	fill: none;
	stroke: rgba(247, 251, 253, 0.22);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tlb-ray { transition: opacity 0.3s ease var(--tlb-d, 0ms); }
.tlb-ray--uv { --tlb-band: #A58BFF; }
.tlb-ray--light { --tlb-band: #FFE7A0; }
.tlb-ray--ir { --tlb-band: #FF7A45; }

.tlb-ray path {
	fill: none;
	stroke: var(--tlb-band);
	stroke-width: 1.5;
	stroke-linecap: round;
	opacity: 0.35;
}

.tlb-ray .tlb-ray__photons {
	stroke-width: 4;
	stroke-dasharray: 0.1 24;
	opacity: 1;
}

/* Coated: UV and infrared bounce back, a little infrared and most daylight get through. */
.tlb-ray--reflect,
.is-coated .tlb-ray--uv.tlb-ray--through { opacity: 0; }
.is-coated .tlb-ray--reflect { opacity: 1; }
.is-coated .tlb-ray--ir.tlb-ray--through { opacity: 0.15; }
.is-coated .tlb-ray--light.tlb-ray--through { opacity: 0.8; }

.tlb-hero__pane { fill: rgba(170, 215, 255, 0.12); stroke: rgba(225, 242, 255, 0.7); stroke-width: 1.5; stroke-linejoin: round; }
.tlb-hero__edge { fill: rgba(225, 242, 255, 0.35); }
.tlb-hero__shine { fill: none; stroke: rgba(255, 255, 255, 0.5); stroke-width: 3; stroke-linecap: round; }
.tlb-hero__film { fill: rgba(91, 227, 107, 0.24); }
.tlb-hero__film-edge { fill: none; stroke: var(--tlb-accent); stroke-width: 2.5; filter: drop-shadow(0 0 6px rgba(91, 227, 107, 0.9)); }

/* The coating sweeps down the panel; removing it clears from the top as well. */
.tlb-hero__spray-area {
	transform: scaleY(0);
	transform-box: fill-box;
	transform-origin: bottom;
	transition: transform 1.4s linear;
}

.is-coated .tlb-hero__spray-area { transform: scaleY(1); transform-origin: top; }

.tlb-hero__nozzle {
	fill: var(--tlb-accent);
	opacity: 0;
	filter: drop-shadow(0 0 8px rgba(91, 227, 107, 0.9));
}

.tlb-hero__tag {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	fill: rgba(247, 251, 253, 0.7);
}

.tlb-hero__temp { font-size: 44px; font-weight: 300; fill: #FF9A6B; transition: fill 1.4s ease; }
.is-coated .tlb-hero__temp { fill: var(--tlb-accent); }

.tlb-hero__modes {
	--tlb-mode-h: clamp(34px, 4.4cqi, 46px);
	--tlb-inset: clamp(12px, 1.8cqi, 20px);
	position: absolute;
	z-index: 2;
	top: calc(62.5cqw - var(--tlb-mode-h) - 10px - var(--tlb-inset)); /* Scene height (8:5) minus the switch (buttons, padding, border) and the inset. */
	inset-inline-start: var(--tlb-inset);
	display: flex;
	gap: 2px;
	padding: 4px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--tlb-r-btn);
	background: rgba(5, 14, 26, 0.75);
	backdrop-filter: blur(6px);
}

.tlb-hero__mode {
	min-height: var(--tlb-mode-h);
	padding: 6px clamp(12px, 1.8cqi, 20px);
	border: 0;
	border-radius: var(--tlb-r-btn);
	background: transparent;
	color: var(--tlb-muted);
	font: inherit;
	font-size: clamp(13px, 1.6cqi, 16px);
	font-weight: 600;
	cursor: pointer;
	transition: background-color var(--tlb-ease), color var(--tlb-ease);
}

.tlb-hero__mode:hover { color: var(--tlb-text); }
.tlb-hero__mode[aria-pressed="true"] { background: var(--tlb-text); color: var(--tlb-ink); }
.tlb-hero__mode[data-mode="coated"][aria-pressed="true"] { background: var(--tlb-accent); }

.tlb-hero__mode:focus-visible,
.tlb-hero__pause:focus-visible { outline: 3px solid var(--tlb-accent); outline-offset: 2px; }

.tlb-hero__pause {
	position: absolute;
	z-index: 2;
	inset-inline-end: clamp(12px, 1.8cqi, 20px);
	bottom: clamp(12px, 1.8cqi, 20px);
	display: grid;
	place-items: center;
	width: clamp(32px, 4.2cqi, 44px);
	height: clamp(32px, 4.2cqi, 44px);
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: rgba(5, 14, 26, 0.7);
	color: var(--tlb-text);
	cursor: pointer;
}

.tlb-hero__play,
.tlb-hero__scene.is-paused .tlb-hero__pause-bars { display: none; }
.tlb-hero__scene.is-paused .tlb-hero__play { display: inline; }

@media (prefers-reduced-motion: no-preference) {
	.tlb-ray__photons { animation: tlb-ray-flow 1.1s linear infinite; }
	.tlb-hero__sun { animation: tlb-sun 6s ease-in-out infinite alternate; }
	.is-coated .tlb-hero__nozzle { animation: tlb-spray 1.4s linear; }
	.tlb-hero__scene.is-paused *,
	.tlb-hero__scene.is-offscreen * { animation-play-state: paused; }
}

@media (prefers-reduced-motion: reduce) {
	.tlb-hero__pause { display: none; }
}

@keyframes tlb-ray-flow { to { stroke-dashoffset: -24; } }
@keyframes tlb-sun { to { opacity: 0.8; } }

@keyframes tlb-spray {
	0% { opacity: 1; transform: translateY(0); }
	92% { opacity: 1; }
	100% { opacity: 0; transform: translateY(380px); }
}

.tlb-hero__readouts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(8px, 1.4cqi, 16px);
	margin: clamp(14px, 2.2cqi, 24px) 0 0;
}

/* A column with the value at the bottom: values stay level when a translated label wraps. */
.tlb-hero__readout {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: clamp(4px, 0.8cqi, 8px);
	padding: clamp(12px, 1.8cqi, 20px) clamp(12px, 2cqi, 22px) clamp(14px, 2cqi, 22px);
	border-radius: var(--tlb-r);
	background: rgba(255, 255, 255, 0.04);
	overflow: hidden;
}

.tlb-hero__readout dt {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: clamp(12px, 1.6cqi, 15px);
	color: var(--tlb-muted);
}

.tlb-hero__readout dt::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--tlb-band);
}

.tlb-hero__readout dd {
	margin: auto 0 0;
	font-size: clamp(1.375rem, 4.2cqi, 2.75rem);
	font-weight: 300;
	font-variant-numeric: tabular-nums;
	line-height: 1.1;
}

.tlb-hero__readout::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	bottom: 0;
	width: var(--tlb-v, 0%);
	height: 3px;
	background: var(--tlb-band);
}

.tlb-hero__readout--ir { --tlb-band: #FF7A45; }
.tlb-hero__readout--uv { --tlb-band: #A58BFF; }
.tlb-hero__readout--light { --tlb-band: #FFE7A0; }

.tlb-hero__caption {
	margin-top: 14px;
	font-size: clamp(13px, 1.55cqi, 15px);
	color: var(--tlb-muted);
}

.tlb-display {
	line-height: 1.08;
	letter-spacing: 0.01em;
}

.tlb-lead {
	max-width: 640px;
	margin-top: 28px !important;
	font-size: clamp(1.05rem, 1.15vw, 1.5rem);
	font-weight: 300;
	line-height: 1.65;
	color: rgba(247, 251, 253, 0.85);
}

/* ---------- Footer ---------- */
.tlb-footer {
	margin-top: 80px;
	padding-block: 64px;
	background: var(--tlb-deep);
	border-top: 1px solid var(--tlb-line);
}

.tlb-footer .tlb-wrap > * { margin-block: 0; }

.tlb-footer__grid {
	display: grid;
	grid-template-columns: minmax(240px, 2fr) repeat(2, minmax(0, 1fr));
	gap: 48px 32px;
}

.tlb-footer__about {
	max-width: 300px;
	margin-top: 20px !important;
	font-size: 14px;
	line-height: 1.7;
	color: rgba(247, 251, 253, 0.66);
}

@media (max-width: 1100px) {
	.tlb-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tlb-footer__brand { grid-column: 1 / -1; }
}

.tlb-footer__grid > *,
.tlb-footer__brand > *,
.tlb-footer__col > * { margin-block: 0; }

.tlb-footer__address {
	overflow-wrap: anywhere;
	margin-top: 24px !important;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(247, 251, 253, 0.58);
}

.tlb-footer__title {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: rgba(247, 251, 253, 0.5);
}

.tlb-footer__links {
	margin-top: 16px !important;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.tlb-footer__links li { margin: 0; }

.tlb-footer__links a {
	display: inline-flex;
	padding: 6px 0;
	font-size: 15px;
	font-weight: 600;
	color: rgba(247, 251, 253, 0.88);
	text-decoration: none;
	transition: color var(--tlb-ease);
}

.tlb-footer__links a:hover { color: var(--tlb-accent-soft); }

.tlb-footer__bottom {
	margin-top: 56px !important;
	padding-top: 28px;
	border-top: 1px solid rgba(247, 251, 253, 0.14);
	gap: 20px;
}

.tlb-footer__copy {
	margin: 0;
	font-size: 14px;
	color: rgba(247, 251, 253, 0.55);
}

.tlb-totop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 999px;
	background: var(--tlb-accent);
	color: var(--tlb-ink);
	transition: transform var(--tlb-ease), filter var(--tlb-ease);
}

.tlb-totop:hover { color: var(--tlb-ink); transform: scale(1.06); filter: brightness(0.93); }

/* ---------- Inner pages ---------- */
.tlb-page { margin-block: 0; }
/* Remove WordPress's default block gap without erasing each section's own spacing. */
.tlb-page__content > :where(:not(.tlb-section)) { margin-block-start: 0; }

.tlb-section--tight { margin-block-start: 80px; }
.tlb-page .tlb-split-section { margin-block-start: 96px; }

.tlb-section__intro {
	max-width: 720px;
	margin-top: 16px !important;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.7;
	color: rgba(247, 251, 253, 0.72);
}

.tlb-section .tlb-wrap > .tlb-section__title + :is(.tlb-grid,
.wp-block-table,
.tlb-faq,
.tlb-statband),
.tlb-section .tlb-wrap > .tlb-section__intro + :is(.tlb-grid,
.wp-block-table,
.tlb-faq,
.tlb-statband) { margin-top: 48px !important; }

/* Inner pages use smaller section titles than the homepage. */
.tlb-page .tlb-section__title { font-size: clamp(2rem, 3.2vw, 4.25rem); }

/* Page hero */
.tlb-pagehero {
	position: relative;
	overflow: hidden;
	padding-block: 56px 88px;
	background:
		radial-gradient(50% 80% at 85% 30%, rgba(3, 82, 127, 0.45) 0%, rgba(3, 82, 127, 0) 70%),
		radial-gradient(60% 90% at 0% 0%, rgba(17, 47, 79, 0.6) 0%, rgba(17, 47, 79, 0) 70%),
		var(--tlb-bg);
	border-bottom: 1px solid var(--tlb-line);
}

.tlb-pagehero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 48px;
}
.tlb-pagehero__inner > *,
.tlb-pagehero__copy > * { margin-block: 0; }

.tlb-breadcrumb {
	margin-bottom: 28px !important;
	font-size: 13.5px;
	color: rgba(247, 251, 253, 0.55);
}

.tlb-breadcrumb a { color: rgba(247, 251, 253, 0.78); text-decoration: none; }
.tlb-breadcrumb a:hover { color: var(--tlb-accent-soft); }
.tlb-breadcrumb__sep { margin-inline: 6px; color: rgba(247, 251, 253, 0.35); }

.tlb-pagehero__title {
	max-width: 900px;
	margin-top: 20px !important;
	font-size: clamp(2.4rem, 5vw, 4.25rem);
	font-weight: 200;
	line-height: 1.1;
	letter-spacing: 0.005em;
	text-wrap: balance;
}

.tlb-pagehero__copy > .tlb-breadcrumb + .tlb-pagehero__title { margin-top: 0 !important; }
.tlb-pagehero__lead { max-width: 640px; margin-top: 24px !important; }
.tlb-pagehero__actions { margin-top: 32px !important; gap: 12px; }

/* Search form on the search results and 404 pages (colours and corners: theme.json core/search). */
.tlb-searchform { max-width: 640px; margin-top: 32px !important; }
.tlb-searchform .wp-block-search__input { min-height: 48px; font: inherit; font-size: 16px; }
.tlb-searchform .wp-block-search__input::placeholder { color: rgba(247, 251, 253, 0.5); }

.tlb-illustration { margin: 0; }

.tlb-illustration img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--tlb-r);
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35);
}

/* Grids and tiles */
.tlb-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(var(--tlb-cols, 3), minmax(0, 1fr));
}

.tlb-grid--2 { --tlb-cols: 2; }
.tlb-grid--3 { --tlb-cols: 3; }
.tlb-grid > * { margin-block: 0 !important; }
.tlb-wrap > .tlb-grid { margin-top: 48px; }

.tlb-tile {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	padding: 24px;
	border: 1px solid var(--tlb-line);
	border-radius: var(--tlb-r);
	background: var(--tlb-card);
	transition: border-color var(--tlb-ease), transform var(--tlb-ease);
}

.tlb-tile:hover { border-color: rgba(91, 227, 107, 0.45); transform: translateY(-2px); }
.tlb-tile > * { margin-block: 0; }

.tlb-tile__media { margin: -24px -24px 20px !important; }

.tlb-tile__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--tlb-r);
}

.tlb-tile__media img[src*="/products/"],
.tlb-tile--product .tlb-tile__media img { aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }

.tlb-tile__meta {
	margin-bottom: 8px !important;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tlb-accent);
}

.tlb-tile__title {
	font-size: 21px;
	font-weight: 500;
	line-height: 1.3;
}

.tlb-tile__title a { color: var(--tlb-text); text-decoration: none; }
.tlb-tile__title a:hover { color: var(--tlb-accent-soft); }

.tlb-tile__text {
	margin-top: 10px !important;
	font-size: 15px;
	line-height: 1.65;
	color: rgba(247, 251, 253, 0.66);
}

.tlb-tile .tlb-textlink { padding-top: 20px; }
.tlb-grid--contact .tlb-tile__text { font-size: 14px; }

/* Features: numbered rows under a hairline, no boxes */
.tlb-features { counter-reset: feature; gap: 48px clamp(32px, 3vw, 64px); }

.tlb-feature {
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	counter-increment: feature;
}

.tlb-feature > * { margin-block: 0; }

.tlb-feature__title {
	font-size: 19px;
	font-weight: 500;
	line-height: 1.35;
}

/* Step numbers only inside a feature list; the class is also reused for plain headings (Contact page). */
.tlb-feature .tlb-feature__title::before {
	content: counter(feature, decimal-leading-zero);
	display: block;
	margin-bottom: 14px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--tlb-accent);
}

.tlb-feature__text {
	margin-top: 10px !important;
	font-size: 15px;
	line-height: 1.65;
	color: rgba(247, 251, 253, 0.68);
}

/* Split */
.tlb-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: 64px;
}

.tlb-split > *,
.tlb-split__copy > * { margin-block: 0; }
.tlb-split--reverse .tlb-split__media { order: 2; }

.tlb-split__title {
	margin-top: 20px !important;
	font-size: clamp(1.9rem, 3vw, 2.75rem);
	font-weight: 200;
	line-height: 1.15;
}

.tlb-split__text {
	margin-top: 18px !important;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.7;
	color: rgba(247, 251, 253, 0.75);
}

.tlb-checklist {
	margin-top: 24px !important;
	padding: 0;
	list-style: none;
}

.tlb-checklist li {
	position: relative;
	margin: 0;
	padding: 10px 0;
	padding-inline-start: 34px;
	border-bottom: 1px solid var(--tlb-line);
	font-size: 15.5px;
}

.tlb-checklist li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 13px;
	width: 20px;
	height: 20px;
	border-radius: 999px;
	background: rgba(91, 227, 107, 0.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235BE36B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.tlb-split__actions { margin-top: 32px !important; gap: 12px; }

@media (max-width: 640px) {
	.tlb-hero__tag { font-size: 28px; }
	.tlb-hero__modes { position: static; display: inline-flex; margin-top: 12px; }
	.tlb-hero__mode { font-size: 13px; }
	.tlb-hero__temp { font-size: 64px; }
	.tlb-hero__readouts { gap: 8px; }
	.tlb-hero__readout { padding: 12px; }
	.tlb-hero__readout dt { font-size: 12px; }
	.tlb-hero__readout dd { font-size: 22px; }
}

/* Stats: an open strip with vertical dividers */
.tlb-statband {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.tlb-wrap > .tlb-statband:not(:first-child) { margin-top: 64px; }
.tlb-statband > * { margin: 0 !important; }

.tlb-statband__item {
	padding: 28px clamp(20px, 2vw, 40px) 0;
	border-inline-start: 1px solid var(--tlb-line);
}

.tlb-statband__item:first-child { padding-inline-start: 0; border-inline-start: 0; }

.tlb-statband__item > * { margin-block: 0; }

.tlb-statband__value {
	font-size: clamp(2.25rem, 3.4vw, 4rem);
	font-weight: 200;
	line-height: 1;
	color: var(--tlb-accent);
}

.tlb-statband__label {
	margin-top: 10px !important;
	font-size: 14.5px;
	color: rgba(247, 251, 253, 0.66);
}

/* Call to action band */
.tlb-cta__box {
	position: relative;
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	column-gap: clamp(32px, 5vw, 120px);
	padding: clamp(40px, 5vw, 104px);
	border-radius: var(--tlb-r-panel);
	background:
		radial-gradient(60% 120% at 100% 0%, rgba(91, 227, 107, 0.18) 0%, rgba(91, 227, 107, 0) 60%),
		linear-gradient(160deg, #0F2643 0%, #0C1F35 60%, #0A1A2E 100%);
	border: 1px solid rgba(91, 227, 107, 0.25);
}

.tlb-cta__box > * { margin-block: 0; }

.tlb-cta__title {
	grid-column: 1;
	max-width: 900px;
	font-size: clamp(1.75rem, 3.2vw, 4rem);
	font-weight: 300;
	line-height: 1.2;
}

.tlb-cta__text {
	grid-column: 1;
	max-width: 640px;
	margin-top: 14px !important;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.7;
	color: rgba(247, 251, 253, 0.75);
}

.tlb-cta__actions { grid-column: 2; grid-row: 1 / span 2; gap: 12px; }

/* Tables */
.tlb-table { margin: 0; overflow-x: auto; }

.tlb-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.tlb-table th,
.tlb-table td {
	padding: 14px 16px;
	border: 0;
	border-bottom: 1px solid rgba(247, 251, 253, 0.12);
	text-align: start;
	vertical-align: top;
}

.tlb-table thead th {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(247, 251, 253, 0.6);
	border-bottom-color: rgba(91, 227, 107, 0.4);
}

.tlb-table tbody th {
	font-weight: 500;
	color: rgba(247, 251, 253, 0.78);
}

.tlb-table tbody tr:hover { background: rgba(255, 255, 255, 0.025); }
/* The label column 180px and four product columns 120px, padding included 820px: the article width. */
.tlb-table--compare thead th:not(:first-child) { min-width: 120px; }
.tlb-table--compare :is(thead th:first-child, tbody th) { min-width: 180px; }
:is(:lang(de), :lang(fr), :lang(es)) .tlb-table :is(th, td) { hyphens: auto; } /* Long German, French and Spanish words break at a syllable rather than widen the table. */
:is(:lang(fr), :lang(es)) .tlb-table :is(th, td) { hyphenate-limit-chars: 10 4 4; } /* Only long words: not novembre, nor names such as Retrofit. German needs its 10-letter words broken too. */
.tlb-table a { color: var(--tlb-accent); }

/* FAQ */
.tlb-faq { display: grid; gap: 0; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.tlb-faq > * { margin-block: 0 !important; }

.tlb-faq__item {
	border-bottom: 1px solid var(--tlb-line);
}

.tlb-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 0;
	cursor: pointer;
	font-size: clamp(17px, 1.2vw, 21px);
	font-weight: 500;
	list-style: none;
	transition: color var(--tlb-ease);
}

/* A plus/minus on the right instead of the browser triangle, so text lines up with the rules. */
.tlb-faq__item summary::-webkit-details-marker { display: none; }

.tlb-faq__item summary::after {
	content: "+" / ""; /* Decoration: not part of the question's accessible name. */
	flex-shrink: 0;
	width: 24px;
	font-size: 26px;
	font-weight: 300;
	line-height: 1;
	text-align: center;
	color: var(--tlb-accent);
}

.tlb-faq__item[open] summary::after { content: "\2212" / ""; }
.tlb-faq__item summary:hover { color: var(--tlb-accent-soft); }
.tlb-faq__item summary:focus:not(:focus-visible) { outline: none; }

.tlb-faq__item[open] summary { color: var(--tlb-accent-soft); }

.tlb-faq__item > p {
	margin: 0 0 20px;
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba(247, 251, 253, 0.75);
}

/* Testimonial */
.tlb-testimonial {
	max-width: 920px;
	margin: 64px auto 0 !important;
	padding: 0 !important;
	border: 0 !important;
	text-align: center;
}

.tlb-section .tlb-wrap > .tlb-testimonial:first-child { margin-top: 0 !important; }

.tlb-testimonial p {
	font-size: clamp(1.4rem, 2.4vw, 2rem);
	font-weight: 200;
	line-height: 1.45;
}

.tlb-testimonial p::before { content: "“"; color: var(--tlb-accent); }
.tlb-testimonial p::after { content: "”"; color: var(--tlb-accent); }

.tlb-testimonial cite {
	display: block;
	margin-top: 18px;
	font-size: 14px;
	font-style: normal;
	letter-spacing: 0.04em;
	color: rgba(247, 251, 253, 0.6);
}

/* Contact layout and enquiry form */
.tlb-contact-layout__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

.tlb-contact-layout__grid > * { margin-block: 0 !important; }

.tlb-contact-layout__form {
	padding: 40px;
	border: 1px solid var(--tlb-line);
	border-radius: var(--tlb-r);
	background: var(--tlb-card);
}

.tlb-contact-layout__form > * { margin-block: 0; }
.tlb-contact-layout__title { margin-bottom: 24px !important; font-size: 28px; font-weight: 300; }
.tlb-contact-layout__aside { padding-top: 12px; }

.tlb-contact-layout__address {
	overflow-wrap: anywhere;
	margin-top: 16px !important;
	font-size: 15.5px;
	line-height: 1.8;
	color: rgba(247, 251, 253, 0.75);
}

.tlb-example-notice {
	padding: 16px 20px;
	border-inline-start: 3px solid var(--tlb-green, #5be36b);
	background: rgba(91, 227, 107, 0.06);
	font-size: 14px;
	line-height: 1.7;
}

.tlb-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}

.tlb-form__field { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.tlb-form__field--wide { grid-column: 1 / -1; }

.tlb-form label {
	font-size: 14px;
	font-weight: 500;
	color: rgba(247, 251, 253, 0.82);
}

.tlb-form input[type="text"],
.tlb-form input[type="email"],
.tlb-form input[type="tel"],
.tlb-form select,
.tlb-form textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--tlb-r);
	background: var(--tlb-deep);
	color: var(--tlb-text);
	font: inherit;
	font-size: 15px;
}

.tlb-form textarea { resize: vertical; min-height: 140px; }

.tlb-form input:focus,
.tlb-form select:focus,
.tlb-form textarea:focus {
	outline: none;
	border-color: var(--tlb-accent);
	box-shadow: 0 0 0 3px rgba(91, 227, 107, 0.2);
}

.tlb-form__consent { flex-direction: row; align-items: flex-start; gap: 10px; }
.tlb-form__consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--tlb-accent); }
.tlb-form__consent label { font-weight: 400; line-height: 1.5; }
.tlb-form__actions { margin: 24px 0 0; }
.tlb-form__actions button { border: 0; cursor: pointer; font-family: inherit; }

.tlb-form__trap {
	position: absolute !important;
	inset-inline-start: -9999px; /* Off the start edge, the side a page never scrolls to (left would scroll in RTL). */
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.tlb-form__error {
	margin: 0 0 20px;
	padding: 12px 16px;
	border: 1px solid rgba(255, 120, 120, 0.5);
	border-radius: var(--tlb-r);
	background: rgba(255, 90, 90, 0.12);
	color: #FFC9C9;
}

.tlb-form__sent {
	margin: 0 0 20px;
	padding: 12px 16px;
	border: 1px solid rgba(91, 227, 107, 0.5);
	border-radius: var(--tlb-r);
	background: rgba(91, 227, 107, 0.12);
	color: #CFF7D4;
}

/* Blog / news templates from Twenty Twenty-Five */
.wp-block-post-title a,
.wp-block-post-terms a { text-decoration: none; }
.wp-block-post-featured-image img { border-radius: var(--tlb-r); }
.wp-block-post-content .tlb-table { margin-block: 24px; }

.wp-block-post-content .tlb-testimonial { margin-block: 40px !important; text-align: start; }

/* Responsive for inner pages */
@media (max-width: 900px) {
	.tlb-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 40px; min-height: 0; padding-block: 40px 56px; }
	.tlb-hero__demo { order: -1; }
	.tlb-hero .tlb-display { font-size: clamp(2.5rem, 7.2cqi, 4rem); }
	.tlb-split,
.tlb-contact-layout__grid { grid-template-columns: minmax(0, 1fr); }
	.tlb-split--reverse .tlb-split__media { order: 0; }
	.tlb-grid--3 { --tlb-cols: 2; }
}

@media (max-width: 640px) {
	.tlb-grid--2,
.tlb-grid--3 { --tlb-cols: 1; }
	.tlb-cta__box,
.tlb-contact-layout__form { padding: 28px; }
	.tlb-form__grid { grid-template-columns: minmax(0, 1fr); }
	.tlb-section--tight { margin-block-start: 64px; }
	.tlb-page .tlb-split-section { margin-block-start: 64px; }
	.tlb-pagehero { padding-block: 32px 56px; }
	.tlb-table :is(th, td) { padding-inline: 10px; } /* A four-column schedule then fits a 390px screen without scrolling. */
}

/* ---------- Product page ---------- */
.tlb-productpage { margin-block: 0; padding-block: 32px 0; }
.tlb-productpage .tlb-wrap > * { margin-block-start: 0; }

.tlb-productpage .woocommerce-breadcrumb {
	margin: 0 0 28px;
	font-size: 13.5px;
	color: rgba(247, 251, 253, 0.55);
}

.tlb-productpage .woocommerce-breadcrumb a { color: rgba(247, 251, 253, 0.78); text-decoration: none; }

.tlb-productpage__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: start;
}

.tlb-productpage__top > * { margin: 0 !important; }

.tlb-productpage__gallery {
	--tlb-gallery-height: clamp(360px, 58svh, 620px);
	--tlb-gallery-thumb: 72px;
	min-width: 0;
}

/* WooCommerce caps this block at 512px even inside our wider product column. */
.woocommerce .tlb-productpage__gallery .wp-block-woocommerce-product-image-gallery { position: relative; width: 100%; max-width: none; }
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery.images {
	position: relative;
	float: none;
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}

.tlb-productpage__gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper,
.tlb-productpage__gallery .woocommerce-product-gallery .flex-viewport {
	height: var(--tlb-gallery-height) !important; /* Overrides FlexSlider's inline measured height. */
	overflow: hidden;
	border-radius: var(--tlb-r-panel);
	background: #fff;
}

.tlb-productpage__gallery .woocommerce-product-gallery__image,
.tlb-productpage__gallery .woocommerce-product-gallery__image--placeholder { height: var(--tlb-gallery-height); }
/* Start moving immediately; WooCommerce's default curve stalls at the start.
   FlexSlider retains control of duration, using 0s while following a finger. */
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery.images .woocommerce-product-gallery__wrapper {
	transition-property: transform;
	transition-timing-function: cubic-bezier(.2, .7, .2, 1);
}
@media (prefers-reduced-motion: reduce) {
	.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery.images .woocommerce-product-gallery__wrapper { transition-duration: 0s !important; }
}
.tlb-productpage__gallery .woocommerce-product-gallery__image > a { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .woocommerce-product-gallery__image > a > img,
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .woocommerce-product-gallery__image--placeholder > img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: contain;
	object-position: center;
	background: #fff;
	border-radius: 0;
}

.tlb-productpage__gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) { display: none; }

.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs {
	position: static;
	display: flex;
	flex-direction: row;
	gap: 10px;
	width: 100%;
	height: calc(var(--tlb-gallery-thumb) + 10px);
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	touch-action: pan-x pan-y pinch-zoom;
	user-select: none;
	cursor: grab;
	scrollbar-width: thin;
	scrollbar-color: var(--tlb-line) transparent;
}
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs li {
	flex: 0 0 var(--tlb-gallery-thumb);
	width: var(--tlb-gallery-thumb);
	height: var(--tlb-gallery-thumb);
	float: none;
	margin: 0;
}
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs img {
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	object-fit: contain;
	background: #fff;
	border: 2px solid transparent;
	border-radius: var(--tlb-r);
	opacity: 0.7;
	cursor: inherit;
}
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs img:is(.flex-active, :hover, :focus-visible) { border-color: var(--tlb-accent); opacity: 1; }
.woocommerce .tlb-productpage__gallery .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs.is-dragging { cursor: grabbing; }

.tlb-gallery-controls {
	position: absolute;
	top: calc(var(--tlb-gallery-height) / 2);
	inset-inline: 12px;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	transform: translateY(-50%);
	pointer-events: none;
}
.tlb-gallery-controls button {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background: rgba(6, 21, 36, 0.88);
	color: #fff;
	cursor: pointer;
	pointer-events: auto;
}
.tlb-gallery-controls button:hover:not(:disabled) { background: var(--tlb-accent); color: var(--tlb-ink); }
.tlb-gallery-controls button:focus-visible { outline: 3px solid var(--tlb-accent); outline-offset: 3px; }
.tlb-gallery-controls button:disabled { opacity: 0.3; cursor: default; }
.tlb-gallery-controls svg { width: 22px; height: 22px; }
[dir="rtl"] .tlb-gallery-controls svg { transform: rotate(180deg); }

/* The fullscreen lightbox must also cover the sticky header and store notice. */
body > .pswp { z-index: 100010; }

@media (max-width: 900px) {
	.tlb-productpage__gallery { --tlb-gallery-height: clamp(260px, 85vw, 520px); --tlb-gallery-thumb: 64px; }
}
.tlb-catalog-enquiry { margin-block: 24px; }
.tlb-catalog-intro { margin-block: 20px 36px; color: var(--tlb-muted); }
.tlb-catalog-intro > p { max-width: 880px; }
.tlb-catalog-intro nav ul { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 0; margin-block: 20px 0; list-style: none; }
.tlb-article__publisher { font-size: 14px; margin-block: 12px 0; }
.tlb-catalog-table { overflow-x: auto; margin-block: 20px; }
.tlb-catalog-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tlb-catalog-table :is(th, td) { padding: 12px; text-align: start; border-bottom: 1px solid rgba(255, 255, 255, 0.15); vertical-align: top; }
.tlb-catalog-table th { color: var(--tlb-accent); }
.tlb-catalog-videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-block: 20px; }
.tlb-catalog-videos figure { margin: 0; }
.tlb-catalog-videos video { display: block; width: 100%; max-height: 450px; aspect-ratio: 9 / 16; background: #020b13; border-radius: var(--tlb-r); }
.tlb-catalog-videos figcaption { padding-block: 10px; font-size: 13px; line-height: 1.5; color: rgba(247, 251, 253, 0.7); }
.tlb-catalog-documents li { margin-block: 8px; }

.tlb-productpage__summary > * { margin-block: 0; }

.tlb-productpage__cat a {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tlb-accent);
	text-decoration: none;
}

.tlb-productpage__title {
	margin-top: 12px !important;
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	font-weight: 200;
	line-height: 1.1;
}

.tlb-productpage__price {
	margin-top: 18px !important;
	font-size: 24px;
	font-weight: 500;
	color: var(--tlb-text);
}

.tlb-productpage__excerpt {
	margin-top: 16px !important;
	font-size: 17px;
	font-weight: 300;
	line-height: 1.7;
	color: rgba(247, 251, 253, 0.78);
}

.tlb-productpage__summary .wp-block-add-to-cart-form {
	margin-top: 28px !important;
	padding: 24px;
	border: 1px solid var(--tlb-line);
	border-radius: var(--tlb-r);
	background: var(--tlb-card);
}

.tlb-productpage form.cart { margin: 0; }
.tlb-productpage table.variations { width: 100%; margin: 0 0 16px; border-collapse: collapse; }
.tlb-productpage table.variations th,
.tlb-productpage table.variations td { padding: 0 0 12px; border: 0; text-align: start; vertical-align: middle; }
.tlb-productpage table.variations th { width: 1%; padding-inline-end: 16px !important; white-space: nowrap; }
.tlb-productpage table.variations th label { font-size: 14px; font-weight: 500; color: rgba(247, 251, 253, 0.8); }

.tlb-productpage select,
.tlb-productpage input.qty {
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--tlb-r);
	background: var(--tlb-deep);
	color: var(--tlb-text);
	font: inherit;
}

.tlb-productpage select {
	min-width: 160px;
	height: auto !important;
	margin-inline-end: 12px;
	padding-block: 10px !important;
	padding-inline: 14px 40px !important; /* Room for the arrow at the end, in either direction. */
	line-height: 1.4 !important;
	font-size: 15px !important;
	background-color: var(--tlb-deep) !important;
}

.tlb-productpage select option { background: var(--tlb-deep); color: var(--tlb-text); }
.tlb-productpage input.qty { width: 72px; font-size: 16px !important; text-align: center; }

.tlb-productpage .reset_variations {
	height: auto !important;
	min-height: 0 !important;
	padding: 6px 12px !important;
	font: inherit;
	line-height: 1.2 !important;
	font-size: 13px !important;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--tlb-r-btn);
	background: transparent;
	color: rgba(247, 251, 253, 0.75);
	cursor: pointer;
}

.tlb-productpage .woocommerce-variation-price { margin-bottom: 8px; font-size: 20px; }
.tlb-productpage .stock { margin: 0 0 12px; font-size: 14px; color: var(--tlb-accent-soft); }
.tlb-productpage .single_variation_wrap .woocommerce-variation-add-to-cart,
.tlb-productpage form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tlb-productpage .quantity { margin: 0 !important; }

.tlb-productpage button.single_add_to_cart_button,
.tlb-productpage .single_add_to_cart_button {
	min-height: 48px;
	padding: 0.8rem 1.75rem;
	border: 0;
	border-radius: var(--tlb-r-btn);
	background: var(--tlb-accent);
	color: var(--tlb-ink);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.tlb-productpage .single_add_to_cart_button:hover { background: var(--tlb-accent-soft); }

.tlb-productpage__meta {
	margin-top: 18px !important;
	font-size: 13.5px;
	color: rgba(247, 251, 253, 0.55);
}

.tlb-productpage__details {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 56px;
	margin-top: 88px !important;
	padding-top: 56px;
	border-top: 1px solid var(--tlb-line);
}

.tlb-productpage__details > *,
.tlb-productpage__description > *,
.tlb-productpage__specs > * { margin-block: 0; }

.tlb-productpage__heading {
	margin-bottom: 24px !important;
	font-size: 28px;
	font-weight: 300;
}

.tlb-productpage__description h3 { margin: 28px 0 10px; font-size: 18px; font-weight: 500; }
.tlb-productpage__description p,
.tlb-productpage__description li { font-size: 16px; line-height: 1.75; color: rgba(247, 251, 253, 0.8); }
.tlb-productpage__description ul { padding-inline-start: 1.2em; }

.wp-block-woocommerce-product-specifications table,
.wp-block-product-specifications table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
}

.wp-block-product-specifications-item th,
.wp-block-product-specifications-item td {
	padding: 13px 0;
	border: 0 !important;
	border-bottom: 1px solid rgba(247, 251, 253, 0.12) !important;
	font-size: 15px;
	text-align: start;
	vertical-align: top;
}

.wp-block-product-specifications-item__label { width: 55%; padding-inline-end: 16px !important; font-weight: 400; color: rgba(247, 251, 253, 0.65); }
.wp-block-product-specifications-item__value { font-weight: 500; }
.wp-block-product-specifications-item__value p { margin: 0; }
/* Variable products have per-pack weights; the parent row would only say N/A. */
.product-type-variable .wp-block-product-specifications-item-weight { display: none; }

/* Related products and WooCommerce product grids */
.tlb-productpage .wp-block-woocommerce-related-products,
.tlb-productpage .wp-block-woocommerce-product-collection { margin-top: 88px !important; }

.tlb-productpage :is(.wp-block-woocommerce-related-products, .wp-block-woocommerce-product-collection) h2 {
	margin-bottom: 28px;
	font-size: 28px;
	font-weight: 300;
}

.wc-block-product-template .wc-block-product,
ul.products li.product {
	padding: 0 0 20px !important;
	overflow: hidden;
	border: 1px solid var(--tlb-line);
	border-radius: var(--tlb-r);
	background: var(--tlb-card);
	text-align: center;
}

.wc-block-product-template .wc-block-product img,
ul.products li.product img { margin: 0 0 14px !important; border-radius: 0; }
/* Product cards contain portrait bottles and technical cards; preserve the whole source image.
   WooCommerce sets object-fit inline, so this override needs priority. */
.wc-block-product-template .wc-block-product img { object-fit: contain !important; background: #fff; }

.wc-block-product-template .wp-block-post-title a,
ul.products li.product .woocommerce-loop-product__title {
	color: var(--tlb-text);
	font-size: 17px;
	font-weight: 500;
	text-decoration: none;
}

ul.products li.product .price,
.wc-block-product-template .wc-block-components-product-price { color: rgba(247, 251, 253, 0.75); }

ul.products li.product .button,
.wc-block-product-template .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0.5rem 1.2rem;
	border-radius: var(--tlb-r-btn);
	background: var(--tlb-accent);
	color: var(--tlb-ink);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-ordering select,
.wc-block-catalog-sorting select {
	min-height: 40px;
	padding: 6px 12px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: var(--tlb-r);
	background: var(--tlb-card);
	color: var(--tlb-text);
	font: inherit;
}

.term-description,
.woocommerce-products-header__description { max-width: 720px; color: rgba(247, 251, 253, 0.72); }

/* ---------- News index, category archives and articles ---------- */
.tlb-catfilter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 28px 0 0 !important;
	padding: 0;
	list-style: none;
}

.tlb-catfilter li { margin: 0; }

.tlb-catfilter a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--tlb-r-btn);
	color: rgba(247, 251, 253, 0.85);
	font-size: 14px;
	text-decoration: none;
}

.tlb-catfilter a:hover,
.tlb-catfilter .current-cat a { border-color: var(--tlb-accent); color: var(--tlb-accent); }

.tlb-postcards { gap: 24px !important; }

.tlb-postcard {
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--tlb-line);
	border-radius: var(--tlb-r);
	background: var(--tlb-card);
}

.tlb-postcard > * { margin-block: 0; }
.tlb-postcard__image { margin: 0 !important; }
.tlb-postcard__image img { border-radius: 0 !important; }
.tlb-postcard__body { padding: 22px 24px 26px; }
.tlb-postcard__body > * { margin-block: 0; }

.tlb-postcard__cat a,
.tlb-article__cat a {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tlb-accent);
	text-decoration: none;
}

.tlb-postcard__title { margin-top: 10px !important; font-size: 21px; font-weight: 500; line-height: 1.3; }
.tlb-postcard__title a { color: var(--tlb-text); text-decoration: none; }
.tlb-postcard__title a:hover { color: var(--tlb-accent-soft); }
.tlb-postcard__excerpt { margin-top: 10px !important; font-size: 15px; line-height: 1.65; color: rgba(247, 251, 253, 0.68); }
.tlb-postcard__excerpt p { margin: 0; }
.tlb-postcard__date { margin-top: 14px !important; font-size: 13px; color: rgba(247, 251, 253, 0.5); }

/* Insights without a cover use the whole card for the article, with dates aligned below. */
.tlb-postquery--editorial .tlb-postcard {
	display: flex;
	flex-direction: column;
	transition: border-color .2s ease;
}
.tlb-postquery--editorial .tlb-postcard:has(a:hover, a:focus-visible) { border-color: var(--tlb-accent); }
.tlb-postquery--editorial .tlb-postcard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(24px, 2.2vw, 40px);
}
.tlb-postquery--editorial .tlb-postcard:not(:has(.tlb-postcard__image)) .tlb-postcard__body { min-height: 300px; }
.tlb-postquery--editorial .tlb-postcard__title { margin-top: 20px !important; min-height: 2.6em; font-size: clamp(22px, 1.6vw, 28px); font-weight: 400; }
.tlb-postquery--editorial .tlb-postcard__excerpt { margin-top: 16px !important; font-size: 16px; }
.tlb-postquery--editorial .tlb-postcard__date { margin-top: auto !important; padding-top: 28px; }

.tlb-pagination { margin-top: 48px !important; gap: 8px; }
.tlb-pagination a,
.tlb-pagination .page-numbers { padding: 6px 12px; border-radius: var(--tlb-r); color: var(--tlb-text); text-decoration: none; }
.tlb-pagination .current { background: var(--tlb-accent); color: var(--tlb-ink); }

.tlb-article__head > * { margin-block: 0; }
.tlb-article__cat { display: inline-flex; background: transparent; padding: 0; min-height: 0; }
.tlb-article__date { margin-top: 18px !important; font-size: 14px; color: rgba(247, 251, 253, 0.55); }

.tlb-article__body { max-width: calc(820px + 2 * var(--tlb-gutter)); }
.tlb-article__body > * { margin-block: 0; }
.tlb-article__image { margin-bottom: 40px !important; }
.tlb-article__image img { border-radius: var(--tlb-r); }

.tlb-article__content > * + * { margin-top: 1.1em; }
.tlb-article__content p,
.tlb-article__content li { font-size: 17px; line-height: 1.8; color: rgba(247, 251, 253, 0.82); }
.tlb-article__content h2 { margin-top: 1.8em; font-size: 28px; font-weight: 300; }
.tlb-article__content h3 { margin-top: 1.6em; font-size: 20px; font-weight: 500; }
.tlb-article__content h2 + h3 { margin-top: 0.9em; }
.tlb-article__content :is(ul, ol) { padding-inline-start: 1.4em; }
.tlb-article__content li + li { margin-top: 0.5em; }
.tlb-article__content li::marker { color: var(--tlb-accent); }
.tlb-article__content strong { font-weight: 600; color: var(--tlb-text); }
/* How a table's figures were measured, right under the table. */
.tlb-article__content .tlb-note { margin-top: -8px; font-size: 14px; line-height: 1.6; color: rgba(247, 251, 253, 0.55); }

.tlb-article__nav {
	margin-top: 64px !important;
	padding-top: 28px;
	border-top: 1px solid var(--tlb-line);
	font-size: 15px;
	gap: 24px;
}

.tlb-article__nav a { color: var(--tlb-accent); text-decoration: none; }

@media (max-width: 900px) {
	.tlb-productpage__top,
.tlb-productpage__details { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.tlb-postcards.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; }
	.tlb-postquery--editorial .tlb-postcard:not(:has(.tlb-postcard__image)) .tlb-postcard__body { min-height: 0; }
}

/* ---------- WooCommerce on the dark theme ---------- */
.wc-block-components-notice-banner { color: var(--tlb-ink); }

.woocommerce-store-notice,
p.demo_store {
	background: var(--tlb-card);
	color: var(--tlb-text);
	border-top: 2px solid var(--tlb-accent);
	font-size: 15px;
	/* woocommerce.css loads after the block-theme sheet and resets this to absolute. */
	position: fixed !important;
	top: auto !important;
	bottom: 0;
	/* As woocommerce.css has it, which the theme leaves out of pages outside the shop. */
	inset-inline: 0;
	z-index: 99998;
	width: 100%;
	margin: 0;
	padding: 1em 0;
	text-align: center;
	box-shadow: 0 1px 1em rgba(0, 0, 0, 0.2);
}

.woocommerce-store-notice a,
p.demo_store a { color: var(--tlb-accent); }

.woocommerce-store-notice__dismiss-link {
	margin-inline-start: 8px;
	padding: 2px 4px;
	border: 0;
	background: transparent;
	color: var(--tlb-accent);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* ---------- Responsive ---------- */

@media (max-width: 640px) {
	html { scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 88px); }
	.tlb-section { margin-block-start: 80px; }
	
	.tlb-logo__name { font-size: 18px; }
	.tlb-logo__mark { width: 40px; height: 40px; }
	.tlb-logo { gap: 10px; }
	
	.tlb-header__bar { padding-block: 14px; gap: 8px; }
	:root { --tlb-header-h: 73px; }
	.tlb-header__tools .wp-block-woocommerce-customer-account { display: none; }
	.tlb-header__tools { gap: 0; }
}

/* ---------- Home composition: each section gets its own layout ---------- */

/* Section head: title on the left, actions on the right. */
.tlb-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 64px;
}

.tlb-section__head > * { margin-block: 0 !important; }
.tlb-section__head .tlb-section__title { flex: 1 1 560px; margin: 0; }
.tlb-section__headactions { flex: 0 1 auto; max-width: 100%; gap: 12px; } /* Shrinks, so long labels wrap on phones. */
.tlb-wrap > .tlb-section__head + * { margin-top: clamp(40px, 4vw, 72px) !important; }

/* Product range: one lead product beside three compact rows, on a hairline grid. */
.tlb-range__grid {
	--tlb-range-padding: clamp(20px, 1.6vw, 32px);
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	grid-template-rows: repeat(3, 1fr);
	gap: 1px;
	border: 1px solid var(--tlb-line);
	background: var(--tlb-line);
}

.tlb-range__grid > * { margin: 0 !important; }
.tlb-range__grid .tlb-tile { min-width: 0; padding: var(--tlb-range-padding); border: 0; background: var(--tlb-bg); }
.tlb-range__grid .tlb-tile:hover { transform: none; background: var(--tlb-card); }
.tlb-range__grid .tlb-tile__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.tlb-range__grid .tlb-tile__body > * { margin: 0 !important; }
.tlb-range__grid .tlb-tile__title { overflow-wrap: anywhere; hyphens: auto; }
.tlb-range__grid .tlb-textlink { padding-top: 8px; }

/* A defined image frame contains the original artwork without letting its intrinsic
   size determine the card height. Keep the same inset around every product. */
.tlb-range__grid .tlb-tile__media { position: relative; min-width: 0; min-height: 0; margin: 0 !important; background: #fff; }
.tlb-range__grid .tlb-tile__media > a { position: absolute; inset: 0; display: block; }
.tlb-range__grid .tlb-tile__media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; box-sizing: border-box; padding: 12px; }
.tlb-range__grid .tlb-tile:first-child { display: grid; grid-row: 1 / -1; grid-template-rows: minmax(320px, 1fr) auto; gap: 24px; }
.tlb-range__grid .tlb-tile:first-child .tlb-tile__media img { padding: 24px; }
.tlb-range__grid .tlb-tile:first-child .tlb-tile__title { font-size: clamp(24px, 2vw, 36px); font-weight: 300; }
.tlb-range__grid .tlb-tile:first-child .tlb-tile__text { font-size: clamp(15px, 1vw, 18px); }

.tlb-range__grid .tlb-tile:not(:first-child) {
	display: grid;
	grid-template-columns: clamp(120px, 8vw, 152px) minmax(0, 1fr);
	gap: clamp(20px, 2vw, 36px);
	align-items: center;
}

.tlb-range__grid .tlb-tile:not(:first-child) .tlb-tile__media { aspect-ratio: 3 / 4; }
.tlb-range__grid .tlb-tile:not(:first-child) .tlb-tile__title { font-size: clamp(18px, 1.5vw, 23px); }

/* Full-bleed band: performance figures in a 2 × 2 hairline grid beside the headline. */
.tlb-band {
	padding-block: clamp(72px, 7vw, 150px);
	background: linear-gradient(180deg, var(--tlb-deep) 0%, #061223 100%);
	border-block: 1px solid var(--tlb-line);
}

.tlb-performance__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr);
	gap: clamp(40px, 6vw, 140px);
	align-items: start;
}

.tlb-performance__inner > *,
.tlb-performance__head > * { margin-block: 0 !important; }
.tlb-performance__head .tlb-section__title { margin: 0; }
.tlb-performance__head .tlb-section__intro { margin-top: 20px !important; }
.tlb-performance__head .tlb-section__headactions { margin-top: 36px !important; }

.tlb-figures {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.tlb-figures > * { margin: 0 !important; }

.tlb-figure {
	padding: clamp(28px, 2.6vw, 52px) 0;
	padding-inline-end: clamp(20px, 2.6vw, 52px);
	border-bottom: 1px solid var(--tlb-line);
}

.tlb-figure:nth-child(even) { padding-inline-start: clamp(20px, 2.6vw, 52px); border-inline-start: 1px solid var(--tlb-line); }
.tlb-figure > * { margin-block: 0; }

.tlb-figure__value {
	font-size: clamp(3rem, 5.4vw, 6.5rem);
	font-weight: 200;
	line-height: 1;
	letter-spacing: -0.01em;
	color: var(--tlb-accent);
}

.tlb-figure__title { margin-top: 18px !important; font-size: clamp(18px, 1.3vw, 22px); font-weight: 500; }
.tlb-figure__text { max-width: 38ch; margin-top: 8px !important; font-size: 15.5px; line-height: 1.65; color: rgba(247, 251, 253, 0.66); }

/* Applications: pick a situation on the left, see the answer on the right. */
.tlb-usecases {
	display: grid;
	grid-template-columns: minmax(260px, 0.75fr) minmax(0, 2fr);
	border: 1px solid var(--tlb-line);
}

.tlb-usecases__tabs {
	display: flex;
	flex-direction: column;
	border-inline-end: 1px solid var(--tlb-line);
}

.tlb-usecases:not(.is-ready) .tlb-usecases__tabs { display: none; }
.tlb-usecases:not(.is-ready) { grid-template-columns: minmax(0, 1fr); }

.tlb-usecases__tab {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 16px;
	flex: 1 1 0;
	align-content: center;
	padding: clamp(20px, 1.8vw, 32px) clamp(20px, 2vw, 36px);
	border: 0;
	border-bottom: 1px solid var(--tlb-line);
	background: transparent;
	color: var(--tlb-muted);
	font: inherit;
	text-align: start;
	cursor: pointer;
	transition: background-color var(--tlb-ease), color var(--tlb-ease);
}

.tlb-usecases__tab:last-child { border-bottom: 0; }
.tlb-usecases__tab::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline: 0 auto;
	width: 3px;
	background: var(--tlb-accent);
	transform: scaleY(0);
	transition: transform var(--tlb-ease);
}

.tlb-usecases__tab:hover { background: rgba(255, 255, 255, 0.03); color: var(--tlb-text); }
.tlb-usecases__tab[aria-selected="true"] { background: var(--tlb-card); color: var(--tlb-text); }
.tlb-usecases__tab[aria-selected="true"]::before { transform: scaleY(1); }
.tlb-usecases__tab:focus-visible { outline: 2px solid var(--tlb-accent); outline-offset: -2px; }
.tlb-usecases__tab:focus:not(:focus-visible) { outline: none; }

.tlb-usecases__num { grid-row: 1 / span 2; padding-top: 4px; font-size: 13px; font-weight: 600; letter-spacing: 0.1em; color: var(--tlb-accent); }
.tlb-usecases__name { font-size: clamp(18px, 1.35vw, 24px); font-weight: 500; line-height: 1.3; }
.tlb-usecases__hint { margin-top: 4px; font-size: 14px; line-height: 1.5; color: rgba(247, 251, 253, 0.55); }

.tlb-usecases__panel {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	height: 100%;
}

.tlb-usecases:not(.is-ready) .tlb-usecases__panel + .tlb-usecases__panel { border-top: 1px solid var(--tlb-line); }
/* All panels share one grid cell, so the component is as tall as the tallest panel and
   switching never changes its height; inactive panels are hidden but keep their size. */
.tlb-usecases.is-ready .tlb-usecases__panels { display: grid; }
.tlb-usecases.is-ready .tlb-usecases__panel { grid-area: 1 / 1; transition: opacity 250ms ease, visibility 0s; }

.tlb-usecases.is-ready .tlb-usecases__panel[hidden] {
	display: grid;
	visibility: hidden;
	opacity: 0;
	transition: opacity 250ms ease, visibility 0s 250ms;
}

.tlb-usecases__media { margin: 0; background: var(--tlb-card); }

.tlb-usecases__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
}

.tlb-usecases__body {
	display: flex;
	flex-direction: column;
	padding: clamp(28px, 3vw, 56px);
}

.tlb-usecases__body > * { margin: 0; }
.tlb-usecases__title { font-size: clamp(24px, 2vw, 36px); font-weight: 300; line-height: 1.2; }
/* With the tabs active, the selected tab already names the panel; keep the heading for screen readers. */
.tlb-usecases.is-ready .tlb-usecases__title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.tlb-usecases.is-ready .tlb-usecases__figure { margin-top: 0; }

.tlb-usecases__figure { margin-top: 24px; font-size: 15px; line-height: 1.5; color: rgba(247, 251, 253, 0.72); }

.tlb-usecases__figure strong {
	display: block;
	margin-bottom: 4px;
	font-size: clamp(2.5rem, 3.6vw, 4.25rem);
	font-weight: 200;
	line-height: 1;
	color: var(--tlb-accent);
}

.tlb-usecases__text { margin-top: 20px; font-size: 15.5px; line-height: 1.7; color: rgba(247, 251, 253, 0.72); }

.tlb-usecases__label {
	margin-top: 28px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(247, 251, 253, 0.55);
}

.tlb-usecases__products {
	display: grid;
	gap: 8px;
	margin-top: 12px;
	padding: 0;
	list-style: none;
}

.tlb-usecases__products a {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 10px;
	padding-inline-end: 16px;
	border: 1px solid var(--tlb-line);
	color: var(--tlb-text);
	text-decoration: none;
	transition: border-color var(--tlb-ease), background-color var(--tlb-ease);
}

.tlb-usecases__products a::after {
	content: "";
	width: 16px;
	height: 16px;
	margin-inline-start: auto;
	flex-shrink: 0;
	background: var(--tlb-accent);
	-webkit-mask: var(--tlb-arrow) center / contain no-repeat;
	mask: var(--tlb-arrow) center / contain no-repeat;
	transition: transform var(--tlb-ease);
}

.tlb-usecases__products a:hover { border-color: rgba(91, 227, 107, 0.5); background: rgba(91, 227, 107, 0.06); }
.tlb-usecases__products a:hover::after { transform: translateX(var(--tlb-nudge)); }
.tlb-usecases__products img { width: 48px; height: 48px; object-fit: cover; background: var(--tlb-card); }
.tlb-usecases__products a > span { display: grid; font-size: 13.5px; color: rgba(247, 251, 253, 0.6); }
.tlb-usecases__products strong { font-size: 16px; font-weight: 500; color: var(--tlb-text); }
.tlb-usecases__body .tlb-textlink { margin-top: auto !important; padding-top: 28px; }

/* Projects: case-study cards; the whole card is the link (stretched title link). */
.tlb-cases { margin: 0; }

.tlb-cases__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 1.6vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlb-cases__list > li { margin: 0; }
.tlb-cases__list > li:first-child { grid-column: 1 / -1; }

.tlb-casecard {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	border: 1px solid var(--tlb-line);
	background: var(--tlb-card);
	transition: border-color var(--tlb-ease);
}

.tlb-casecard > * { margin: 0 !important; }
.tlb-casecard__image { overflow: hidden; }

.tlb-casecard__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms ease-out;
}

.tlb-casecard__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: clamp(24px, 2.2vw, 40px);
}

.tlb-casecard__body > * { margin-block: 0; }

.tlb-casecard__kicker {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--tlb-accent);
}

.tlb-casecard__title { margin-top: 12px !important; font-size: clamp(20px, 1.5vw, 26px); font-weight: 400; line-height: 1.3; }
.tlb-casecard__title a { color: var(--tlb-text); text-decoration: none; }
.tlb-casecard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tlb-casecard__excerpt { margin-top: 12px !important; }
.tlb-casecard__excerpt p { margin: 0; font-size: 15.5px; line-height: 1.65; color: rgba(247, 251, 253, 0.68); }

.tlb-casecard__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto !important;
	padding-top: 24px;
	font-size: 15px;
	font-weight: 600;
	color: var(--tlb-accent);
}

.tlb-casecard__more::after {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--tlb-arrow) center / contain no-repeat;
	mask: var(--tlb-arrow) center / contain no-repeat;
	transition: transform var(--tlb-ease);
}

.tlb-casecard:hover { border-color: rgba(91, 227, 107, 0.5); }
.tlb-casecard:hover .tlb-casecard__image img { transform: scale(1.04); }
.tlb-casecard:hover .tlb-casecard__title a { color: var(--tlb-accent-soft); }
.tlb-casecard:hover .tlb-casecard__more::after { transform: translateX(var(--tlb-nudge)); }
.tlb-casecard:focus-within { outline: 2px solid var(--tlb-accent); outline-offset: 3px; }
.tlb-casecard__title a:focus-visible { outline: none; }

/* The newest case study: image beside the text, larger headline. */
@media (min-width: 901px) {
	.tlb-cases__list > li:first-child .tlb-casecard { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
	/* An explicit ratio, not the photo's own: a lazy image with sizes="auto" gets `contain: size` from the
	   browser's stylesheet (which no site CSS can override), and that drops the photo's proportions. */
	.tlb-cases__list > li:first-child .tlb-casecard__image img { aspect-ratio: 16 / 9 !important; min-height: 100%; }
	.tlb-cases__list > li:first-child .tlb-casecard__body { justify-content: center; padding: clamp(32px, 4vw, 80px); }
	.tlb-cases__list > li:first-child .tlb-casecard__title { font-size: clamp(26px, 2.4vw, 44px); font-weight: 300; }
	.tlb-cases__list > li:first-child .tlb-casecard__more { margin-top: 0 !important; padding-top: 32px; }
}

.tlb-projects .tlb-statband { margin-top: clamp(48px, 4vw, 80px) !important; }

/* Insights: headline column beside an editorial list. */
.tlb-news__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.5fr);
	gap: clamp(40px, 6vw, 140px);
	align-items: start;
}

.tlb-news__inner > *,
.tlb-news__head > * { margin-block: 0 !important; }
.tlb-news__head .tlb-section__title { margin: 0; }
.tlb-news__head .tlb-section__intro { margin-top: 20px !important; }
.tlb-news__head .tlb-section__headactions { margin-top: 36px !important; }

.tlb-postlist.wp-block-latest-posts {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.tlb-postlist.wp-block-latest-posts li {
	display: grid;
	grid-template-columns: clamp(120px, 13vw, 260px) minmax(0, 1fr);
	grid-template-rows: auto auto;
	align-content: center;
	column-gap: clamp(20px, 2.4vw, 48px);
	margin: 0;
	padding: clamp(20px, 1.8vw, 32px) 0;
	border-bottom: 1px solid var(--tlb-line);
}

.tlb-postlist .wp-block-latest-posts__featured-image { grid-row: 1 / span 2; margin: 0 !important; }

.tlb-postlist .wp-block-latest-posts__featured-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.tlb-postlist .wp-block-latest-posts__post-date {
	grid-row: 1;
	grid-column: 2;
	align-self: end;
	font-size: 13px;
	color: rgba(247, 251, 253, 0.55);
}

.tlb-postlist .wp-block-latest-posts__post-title {
	grid-row: 2;
	grid-column: 2;
	align-self: start;
	margin-top: 8px;
	font-size: clamp(19px, 1.6vw, 28px);
	font-weight: 300;
	line-height: 1.3;
	color: var(--tlb-text);
	text-decoration: none;
}

.tlb-postlist .wp-block-latest-posts__post-title:hover { color: var(--tlb-accent-soft); }

/* Removing a cover must also remove its column from the homepage article list. */
.tlb-postlist.wp-block-latest-posts li:not(:has(.wp-block-latest-posts__featured-image)) { grid-template-columns: minmax(0, 1fr); }
.tlb-postlist li:not(:has(.wp-block-latest-posts__featured-image)) :is(.wp-block-latest-posts__post-title, .wp-block-latest-posts__post-date) { grid-column: 1; }

/* Project listings: the newest card spans two columns, image beside text.
   Insights and search results (--uniform) keep every card the same size. */
@media (min-width: 1024px) {
	:where(body:not(.paged)) .tlb-postquery:not(.is-paged, .tlb-postquery--uniform) .tlb-postcards > li:first-child { grid-column: span 2; }
	:where(body:not(.paged)) .tlb-postquery:not(.is-paged, .tlb-postquery--uniform) .tlb-postcards > li:first-child .tlb-postcard { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
	:where(body:not(.paged)) .tlb-postquery:not(.is-paged, .tlb-postquery--uniform) .tlb-postcards > li:first-child .tlb-postcard__image { height: 100%; aspect-ratio: auto !important; }
	/* Explicit ratio for the same reason as the homepage case-study card; the image still fills a taller card. */
	:where(body:not(.paged)) .tlb-postquery:not(.is-paged, .tlb-postquery--uniform) .tlb-postcards > li:first-child .tlb-postcard__image img { height: 100%; aspect-ratio: 16 / 9 !important; }
	:where(body:not(.paged)) .tlb-postquery:not(.is-paged, .tlb-postquery--uniform) .tlb-postcards > li:first-child .tlb-postcard__body { align-self: center; padding: clamp(24px, 2.4vw, 48px); }
	:where(body:not(.paged)) .tlb-postquery:not(.is-paged, .tlb-postquery--uniform) .tlb-postcards > li:first-child .tlb-postcard__title { font-size: clamp(24px, 2vw, 34px); font-weight: 300; }
}

/* Home FAQ: the first questions from the FAQ page in two columns. */
.tlb-faq-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	column-gap: clamp(32px, 4vw, 96px);
}

/* Closing panel: three ways to buy, each one link with the same hover. */
.tlb-cta--paths .tlb-cta__box { grid-template-columns: minmax(0, 1fr); }
.tlb-cta--paths .tlb-cta__text a { color: var(--tlb-accent); font-weight: 600; }

.tlb-paths {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin: clamp(32px, 3vw, 56px) 0 0 !important;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.12);
	list-style: none;
}

.tlb-paths li { margin: 0; }

.tlb-path {
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	padding: clamp(24px, 2.4vw, 44px);
	background: rgba(7, 20, 36, 0.92);
	color: var(--tlb-text);
	text-decoration: none;
	transition: background-color var(--tlb-ease);
}

.tlb-path__num { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; color: var(--tlb-accent); }
.tlb-path__title { margin-top: 14px; font-size: clamp(22px, 1.8vw, 32px); font-weight: 300; line-height: 1.2; }
.tlb-path__text { margin-top: 12px; font-size: 15.5px; line-height: 1.65; color: rgba(247, 251, 253, 0.7); }

.tlb-path__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 28px;
	font-size: 15px;
	font-weight: 600;
	color: var(--tlb-accent);
}

.tlb-path__more::after {
	content: "";
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--tlb-arrow) center / contain no-repeat;
	mask: var(--tlb-arrow) center / contain no-repeat;
	transition: transform var(--tlb-ease);
}

.tlb-path:hover { background: rgba(15, 38, 67, 0.95); color: var(--tlb-text); }
.tlb-path:hover .tlb-path__more::after { transform: translateX(var(--tlb-nudge)); }
.tlb-path:focus-visible { outline: 2px solid var(--tlb-accent); outline-offset: -2px; }

@media (max-width: 900px) {
	.tlb-faq-columns,
	.tlb-paths { grid-template-columns: minmax(0, 1fr); }
	.tlb-faq-columns .tlb-faq + .tlb-faq { border-top: 0; }
}

/* Shop grids: more columns in the wider container. */
@media (min-width: 1400px) {
	.wc-block-product-template__responsive.columns-3 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}

@media (min-width: 2200px) {
	.wc-block-product-template__responsive.columns-3 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}

/* Wide screens: give body text room to breathe in the wider container. */
@media (min-width: 1800px) {
	.tlb-tile__title { font-size: 23px; }
	.tlb-tile__text,
.tlb-feature__text { font-size: 16.5px; }
	.tlb-section__intro { font-size: 19px; max-width: 800px; }
	.tlb-feature__title { font-size: 21px; }
}

@media (max-width: 1100px) {
	.tlb-performance__inner,
	.tlb-news__inner { grid-template-columns: minmax(0, 1fr); }
	.tlb-usecases { grid-template-columns: minmax(220px, 0.8fr) minmax(0, 2fr); }
	.tlb-usecases__panel { grid-template-columns: minmax(0, 1fr); }
	.tlb-usecases__media img { min-height: 0; aspect-ratio: 16 / 9; }
	.tlb-cta__box { grid-template-columns: minmax(0, 1fr); }
	.tlb-cta__actions { grid-column: 1; grid-row: auto; margin-top: 28px !important; }
	.tlb-statband { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
	.tlb-statband__item:nth-child(3) { padding-inline-start: 0; border-inline-start: 0; }
}

@media (max-width: 900px) {
	.tlb-range__grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
	.tlb-range__grid .tlb-tile:first-child { grid-row: auto; grid-template-rows: clamp(280px, 55vw, 420px) auto; }
	.tlb-usecases { grid-template-columns: minmax(0, 1fr); }
	.tlb-usecases__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-inline-end: 0; border-bottom: 1px solid var(--tlb-line); }
	.tlb-usecases__tab { border-inline-end: 1px solid var(--tlb-line); }
	.tlb-usecases__tab:nth-child(2n) { border-inline-end: 0; }
	.tlb-usecases__tab:nth-child(3) { border-bottom: 0; }
	.tlb-usecases__hint { display: none; }
}

@media (max-width: 640px) {
	.tlb-range__grid { --tlb-range-padding: 16px; }
	.tlb-range__grid .tlb-tile:not(:first-child) { grid-template-columns: clamp(88px, 24vw, 120px) minmax(0, 1fr); gap: 16px; }
	.tlb-range__grid .tlb-tile__media img { padding: 8px; }
	.tlb-range__grid .tlb-tile:not(:first-child) .tlb-tile__text { display: none; }
	.tlb-figures { grid-template-columns: minmax(0, 1fr); }
	.tlb-figure,
	.tlb-figure:nth-child(even) { padding: 24px 0; border-inline-start: 0; }
	.tlb-figure__text { display: none; }
	.tlb-cases__list { grid-template-columns: minmax(0, 1fr); }
	.tlb-usecases__tab { padding: 16px; column-gap: 10px; }
	.tlb-usecases__name { font-size: 16px; }
	.tlb-postlist.wp-block-latest-posts li { grid-template-columns: 96px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	*,
*::before,
*::after {
		transition: none !important;
		animation: none !important;
	}
}


/* Scene photographs share a stable crop across home, listings and article pages. */
.tlb-scene {
	min-width: 0;
	width: 100%;
	margin: 0;
	align-self: center;
	background: var(--tlb-card);
}
.tlb-scene__visual {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.tlb-scene__visual > a { display: block; height: 100%; }
.tlb-scene .tlb-scene__visual img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: 16 / 9 !important;
	object-fit: contain;
	border-radius: 0 !important;
	transform: none !important;
}
.tlb-scene--photo .tlb-scene__visual img { object-fit: cover; }
.tlb-scene .tlb-scene__caption {
	margin: 0;
	padding: 16px 24px;
	color: var(--tlb-muted);
	text-align: start;
	font-size: 12px;
	line-height: 1.5;
}
.tlb-usecases__media.tlb-scene { align-self: center; }
.tlb-casecard__image.tlb-scene { align-self: start; }
.tlb-postcard__image.tlb-scene { height: auto !important; align-self: center; }

/* Reviewed product knowledge: roomy cards, readable reports and native FAQ headings. */
.tlb-advantages {
	padding-block: clamp(52px, 5vw, 104px);
	background: radial-gradient(ellipse at 12% 0%, rgba(91, 227, 107, .09), transparent 58%), linear-gradient(120deg, #0c2036, #081625);
	border-block: 1px solid var(--tlb-line);
}
.tlb-advantages__intro { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 64px; margin-block-end: 40px; align-items: end; }
.tlb-advantages__intro > .tlb-eyebrow { grid-column: 1 / -1; margin: 0; }
.tlb-advantages__intro h2,
.tlb-home-testing h2 { margin: 20px 0; font-size: clamp(32px, 3.2vw, 52px); line-height: 1.12; font-weight: 300; text-wrap: balance; }
.tlb-advantages__intro h2 { margin: 0; }
.tlb-advantages__intro .tlb-lead { font-size: 18px; max-width: 58ch; margin: 0; }
.tlb-advantages__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding-block-end: 28px; }
.tlb-advantage { padding: clamp(24px, 2vw, 36px); border: 1px solid rgba(255,255,255,.13); background: rgba(19, 42, 64, .85); }
.tlb-advantage:nth-child(3n + 2) { transform: translateY(28px); background: rgba(26, 54, 65, .7); }
.tlb-advantage:nth-child(3) { background: #e5eee9; color: #102637; }
.tlb-advantage__top { display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--tlb-accent); }
.tlb-advantage__top svg { width: 30px; height: 30px; }
.tlb-advantage__top span { font-size: 13px; letter-spacing: .14em; opacity: .7; }
.tlb-advantage:nth-child(3) .tlb-advantage__top { color: #24683b; }
.tlb-advantage h3 { margin: 24px 0 12px; font-size: 22px; font-weight: 500; }
.tlb-advantage p { margin: 0; font-size: 16px; line-height: 1.65; color: rgba(240,248,251,.75); }
.tlb-advantage:nth-child(3) p { color: #40545d; }
.tlb-home-testing__box { padding: clamp(28px, 4vw, 72px); border: 1px solid var(--tlb-line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 90px); background: #0c1f35; overflow-wrap: anywhere; }
.tlb-home-testing__box > * { min-width: 0; }
.tlb-home-testing__box > div > p:not(.tlb-eyebrow) { color: rgba(240,248,251,.75); max-width: 58ch; }
.tlb-home-testing__box .wp-block-buttons { margin-top: 28px; }
.tlb-home-testing__measures { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; }
.tlb-home-testing__measures > div { padding-block-start: 16px; border-top: 1px solid rgba(91,227,107,.45); }
.tlb-home-testing__measures h3 { color: var(--tlb-accent); font-size: 23px; margin: 0 0 12px; }
.tlb-home-testing__measures p { color: rgba(240,248,251,.75); font-size: 15px; margin: 0; }
.tlb-faq__item summary h3 { font: inherit; margin: 0; color: inherit; }
.tlb-knowledge-question { border-top: 1px solid var(--tlb-line); padding-block: 28px; max-width: 1000px; }
.tlb-knowledge-question h3 { font-size: clamp(20px, 1.6vw, 26px); margin: 0 0 14px; font-weight: 500; }
.tlb-knowledge-question p { margin: 0; color: rgba(240,248,251,.75); max-width: 85ch; }
.tlb-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; }
.tlb-report-grid > * { margin-block: 0 !important; }
.tlb-report { display: flex; flex-direction: column; padding: clamp(24px, 3vw, 40px); background: #0c1f35; border: 1px solid var(--tlb-line); }
.tlb-report > .wp-block-buttons { margin-block-start: auto; }
.tlb-report h3 { margin: 0 0 20px; font-size: 26px; }
.tlb-report p { overflow-wrap: anywhere; }
.tlb-report .wp-block-table { margin-block: 24px; }
.tlb-report th { width: 31%; }
.tlb-knowledge-table { overflow-x: auto; }
.tlb-knowledge-table table { min-width: 640px; width: 100%; border-collapse: collapse; }
.tlb-knowledge-table :is(th,td), .tlb-report :is(th,td) { padding: 16px; text-align: start; vertical-align: top; border: 1px solid var(--tlb-line); }
.tlb-knowledge-table th { font-weight: 500; }
.tlb-knowledge-table td { font-size: 15px; }
.tlb-knowledge-table td:nth-child(2) { white-space: nowrap; }
.tlb-knowledge-table caption { text-align: start; margin-block-end: 16px; }
.tlb-report-notice { border-inline-start: 3px solid var(--tlb-accent); padding: 20px 24px; background: rgba(91,227,107,.05); }
@media (max-width: 1100px) {
	.tlb-advantages__intro { grid-template-columns: 1fr; }
	.tlb-advantages__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tlb-advantage:nth-child(n) { transform: none; }
	.tlb-advantage:nth-child(even) { transform: translateY(28px); }
	.tlb-advantages__intro .tlb-lead { max-width: 65ch; }
}
@media (max-width: 760px) {
	.tlb-advantages__grid, .tlb-home-testing__box, .tlb-report-grid { grid-template-columns: 1fr; }
	.tlb-advantages__grid { padding-block-end: 0; gap: 16px; }
	.tlb-advantage:nth-child(n) { transform: none; }
	.tlb-home-testing__measures { gap: 24px; }
	.tlb-report { min-width: 0; }
	.tlb-report :is(th,td) { padding: 12px 8px; font-size: 14px; }
}
@media (max-width: 420px) {
	.tlb-home-testing__measures { grid-template-columns: 1fr; }
}

/* Owner-supplied About photograph: preserve the complete frame and intrinsic proportions. */
.tlb-about-photo { margin-block-start: 40px; }
.tlb-about-photo__image { margin: 0; }
.tlb-about-photo__image img { display: block; width: 100%; height: auto; aspect-ratio: 1024 / 489; object-fit: contain; }
