/* =========================================================================
   THH Furniture - component layer on top of theme.json tokens
   Naming: .thh-block__element--modifier. Motion: transform/opacity only.
   ========================================================================= */

:root {
	--thh-radius-s: 8px;
	--thh-radius: 14px;
	--thh-radius-l: 22px;
	--thh-line: color-mix(in srgb, var(--wp--preset--color--forest-900) 14%, transparent);
	--thh-line-strong: color-mix(in srgb, var(--wp--preset--color--forest-900) 24%, transparent);
	--thh-ease: cubic-bezier(.2, .7, .2, 1);
	--thh-header-h: 72px;
	--thh-section: clamp(3.5rem, 8vw, 7rem);
}

html { scroll-padding-top: calc(var(--thh-header-h) + 1rem); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "ss01" 0; }
::selection { background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-950); }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--wp--preset--color--brand-600); outline-offset: 3px; border-radius: 4px; }
[hidden] { display: none !important; }
:where([class*="thh-"]), :where([class*="thh-"]) *, :where([class*="thh-"]) ::before, :where([class*="thh-"]) ::after { box-sizing: border-box; }
img { height: auto; }
h1, h2, h3 { text-wrap: pretty; } /* fill the line; balance made headings break early and leave empty space */
.thh-card__title { text-wrap: balance; }
h1 em, h2 em, h3 em, .thh-accent { font-family: var(--wp--preset--font-family--serif); font-style: italic; font-weight: 500; letter-spacing: -0.01em; color: var(--wp--preset--color--brand-600); }
.is-style-section-dark h1 em, .is-style-section-dark h2 em, .thh-hero h1 em { color: var(--wp--preset--color--brand-400); }

.thh-skip { position: absolute; left: 1rem; top: -100px; z-index: 100; padding: .75rem 1rem; background: var(--wp--preset--color--forest-900); color: #fff; border-radius: var(--thh-radius-s); }
.thh-skip:focus { top: 1rem; }


/* ---------------------------------------------------------------- language + line breaks */
/* Vietnamese pages: a typeface with complete Vietnamese diacritics coverage. */
html:lang(vi) { --wp--preset--font-family--sans: var(--wp--preset--font-family--sans-vi); }
html:lang(vi) body { font-family: var(--wp--preset--font-family--sans-vi); letter-spacing: 0; }
html:lang(vi) :where(h1, h2, h3, h4) { letter-spacing: -0.015em; line-height: 1.18; }
/* Words that must not split: numbers with units, hyphenated terms (added server-side). */
.thh-nw { white-space: nowrap; }
/* Paragraph-level orphan control on top of the server-side non-breaking spaces. */
p, li, dd, figcaption, .thh-card__text, .thh-cat-card__text, .thh-stat__label { text-wrap: pretty; }
h1, h2, h3, h4 { text-wrap: pretty; }
.thh-card__title, .thh-cat-card__title, .thh-stat__value { text-wrap: balance; }
:where(p, li, h1, h2, h3, h4, dd, td, th) { hyphens: manual; overflow-wrap: break-word; word-break: normal; }

/* ---------------------------------------------------------------- type */
.is-style-eyebrow {
	display: inline-flex; align-items: center; gap: .6rem;
	margin-bottom: 0 !important;
	font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--brand-600);
}
.is-style-eyebrow::before { content: ""; width: 1.75rem; height: 2px; background: currentColor; border-radius: 2px; }
.is-style-section-dark .is-style-eyebrow, .thh-hero .is-style-eyebrow { color: var(--wp--preset--color--brand-400); }
.is-style-lead { font-size: var(--wp--preset--font-size--lg); line-height: 1.55; color: var(--wp--preset--color--ink-600); max-width: 62ch; }
.is-style-section-dark .is-style-lead, .is-style-section-dark .thh-section__head p:not(.is-style-eyebrow) { color: color-mix(in srgb, #fff 80%, transparent); }

.is-style-checks { list-style: none; padding-left: 0; }
.is-style-checks li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; }
.is-style-checks li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--wp--preset--color--mint-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23237552' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/75% no-repeat; }

/* ---------------------------------------------------------------- buttons */
.thh-btn, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: .8rem 1.45rem;
	border: 1.5px solid transparent; border-radius: 999px;
	font-size: var(--wp--preset--font-size--sm); font-weight: 650; line-height: 1.2; text-decoration: none; white-space: nowrap;
	cursor: pointer; transition: background-color .2s var(--thh-ease), color .2s var(--thh-ease), border-color .2s var(--thh-ease), transform .2s var(--thh-ease);
}
.thh-btn:active { transform: translateY(1px); }
.thh-btn--primary { background: var(--wp--preset--color--forest-800); color: #fff; }
.thh-btn--primary:hover { background: var(--wp--preset--color--forest-950); color: #fff; }
.thh-btn--ghost, .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--forest-800); border-color: currentColor; }
.thh-btn--ghost:hover, .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--forest-800); border-color: var(--wp--preset--color--forest-800); color: #fff; }
.thh-btn--light { background: #fff; color: var(--wp--preset--color--forest-900); }
.thh-btn--light:hover { background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-950); }
.thh-btn--on-dark { background: transparent; color: #fff; border-color: color-mix(in srgb, #fff 60%, transparent); }
.thh-btn--on-dark:hover { background: #fff; color: var(--wp--preset--color--forest-900); }

.thh-link-arrow, .thh-link-quote { font-size: var(--wp--preset--font-size--sm); font-weight: 650; text-decoration: none; color: var(--wp--preset--color--forest-800); }
.thh-link-arrow::after { content: " →"; transition: margin .2s var(--thh-ease); }
.thh-link-arrow:hover::after { margin-left: .2rem; }
.thh-link-quote { color: var(--wp--preset--color--brand-600); }

.thh-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .7rem; border-radius: 999px; background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-800); font-size: var(--wp--preset--font-size--xs); font-weight: 650; line-height: 1.3; }
.thh-badge--quiet { background: transparent; border: 1px solid var(--thh-line-strong); color: var(--wp--preset--color--ink-600); }

/* ---------------------------------------------------------------- header */
.thh-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--ivory-50) 92%, transparent);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color .25s var(--thh-ease), box-shadow .25s var(--thh-ease);
}
.admin-bar .thh-header { top: var(--wp-admin--admin-bar--height, 32px); }
.thh-header.is-scrolled { border-bottom-color: var(--thh-line); box-shadow: 0 6px 20px -16px rgb(21 32 26 / 45%); }
.thh-header__inner { min-height: var(--thh-header-h); gap: 1.5rem; }
.thh-logo { display: inline-flex; flex-shrink: 0; }
.thh-logo img { display: block; width: clamp(148px, 14vw, 184px); height: auto; }
.thh-header__nav { gap: clamp(.75rem, 2vw, 1.75rem); }
.thh-nav .wp-block-navigation-item__content { padding: .5rem 0; color: var(--wp--preset--color--ink-900); text-decoration: none; }
.thh-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--brand-600); }
.thh-nav .wp-block-navigation__submenu-container { border: 1px solid var(--thh-line) !important; border-radius: var(--thh-radius); padding: .5rem !important; box-shadow: var(--wp--preset--shadow--card); min-width: 250px !important; }
.thh-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem; border-radius: var(--thh-radius-s); }
.thh-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-900); }
.thh-header__cta.thh-btn { min-height: 44px; padding: .65rem 1.2rem; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem clamp(1rem, 4vw, 2.5rem); background: var(--wp--preset--color--ivory-50) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--lg); font-weight: 650; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
/* Language switch */
.thh-lang { display: inline-flex; padding: 3px; border: 1px solid var(--thh-line-strong); border-radius: 999px; background: #fff; }
.thh-lang__item { display: inline-grid; place-items: center; min-width: 38px; min-height: 34px; padding: 0 .55rem; border-radius: 999px; font-size: .75rem; font-weight: 700; letter-spacing: .06em; color: var(--wp--preset--color--ink-600); text-decoration: none; }
.thh-lang__item:hover { color: var(--wp--preset--color--forest-900); background: var(--wp--preset--color--mint-100); }
.thh-lang__item[aria-current] { background: var(--wp--preset--color--forest-800); color: #fff; }
.thh-btn__short { display: none; }

/* Collapse the menu into the overlay below 1100px so labels never crowd or wrap (EN and VI). */
@media (max-width: 1099px) {
	.thh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.thh-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
	.thh-header__nav { gap: .6rem; }
}
@media (max-width: 599px) {
	.thh-logo img { width: 128px; }
	.thh-header__inner { gap: .5rem; }
	.thh-header__cta.thh-btn { padding: .5rem .9rem; min-height: 40px; }
	.thh-header__cta .thh-btn__long { display: none; }
	.thh-header__cta .thh-btn__short { display: inline; }
	.thh-lang__item { min-width: 34px; min-height: 32px; padding: 0 .4rem; }
}

/* ---------------------------------------------------------------- page scaffolding */
main { padding-bottom: var(--thh-section); }
.thh-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; margin: 0; padding: 1.25rem 0 0; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }
.thh-breadcrumbs li + li::before { content: "/"; margin-right: .35rem; color: var(--wp--preset--color--sand-300); }
.thh-breadcrumbs a { color: inherit; text-decoration: none; }
.thh-breadcrumbs a:hover { color: var(--wp--preset--color--brand-600); text-decoration: underline; }
.thh-breadcrumbs [aria-current] { color: var(--wp--preset--color--ink-900); font-weight: 600; }

.thh-page__head, .thh-archive__head { padding: clamp(1.75rem, 5vw, 3.5rem) 0 clamp(1.5rem, 4vw, 2.5rem); }
.thh-page__head > *, .thh-archive__head > * { max-width: 860px; }
.thh-page__head > * + *, .thh-archive__head > * + * { margin-top: 1rem; }
.thh-archive__head .wp-block-query-title { font-size: var(--wp--preset--font-size--xxxl); }
.thh-archive__chips-label { display: flex; flex-wrap: wrap; gap: .5rem; }
.thh-page__content > * + * { margin-top: 1.25rem; }

.thh-callout { margin-top: var(--thh-section); padding: clamp(1.5rem, 4vw, 2.5rem); gap: 1.5rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius-l); background: var(--wp--preset--color--ivory-100); }
.thh-callout h3 { font-size: var(--wp--preset--font-size--xl); margin: 0 0 .35rem; }
.thh-callout p { margin: 0; color: var(--wp--preset--color--ink-600); }

.is-style-section-dark {
	background: var(--wp--preset--color--forest-900);
	color: color-mix(in srgb, #fff 88%, transparent);
	border-radius: var(--thh-radius-l);
}
.is-style-section-dark :where(h1, h2, h3, h4) { color: #fff; }
.is-style-section-dark a:not(.thh-btn) { color: #fff; }
.is-style-panel { padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--thh-radius); background: #fff; border: 1px solid var(--thh-line); }

/* ---------------------------------------------------------------- category cards */
.thh-cat-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 1100px) { .thh-cat-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .thh-cat-cards { grid-template-columns: 1fr; } .thh-cat-card { min-height: 300px; } }
.thh-cat-card { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--thh-radius-l); background: var(--wp--preset--color--forest-900); color: #fff; text-decoration: none; isolation: isolate; min-height: 360px; }
.thh-cat-card__media { position: absolute; inset: 0; z-index: -1; }
.thh-cat-card__media img, .thh-cat-card__media .thh-img-placeholder { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--thh-ease); }
.thh-cat-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(14 42 30 / 0%) 30%, rgb(14 42 30 / 88%) 100%); }
.thh-cat-card:hover .thh-cat-card__media img { transform: scale(1.04); }
.thh-cat-card__body { margin-top: auto; padding: 1.5rem; display: grid; gap: .35rem; }
.thh-cat-card__title { font-size: var(--wp--preset--font-size--xl); font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.thh-cat-card__text { font-size: var(--wp--preset--font-size--sm); color: color-mix(in srgb, #fff 82%, transparent); }
.thh-cat-card__count { margin-top: .5rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--brand-400); }
.thh-cat-card__count::after { content: "  →"; }

/* ---------------------------------------------------------------- product cards */
.thh-archive__all { margin-top: var(--thh-section); }
.thh-archive__all h2, .thh-related h2 { margin-bottom: 1.5rem; }
.thh-product-grid { --cols: 4; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); }
@media (max-width: 1099px) { .thh-product-grid { --cols: 3; } }
@media (max-width: 799px) { .thh-product-grid { --cols: 2; } }
@media (max-width: 519px) { .thh-product-grid { --cols: 1; } }
.thh-card--cta { justify-content: center; gap: .6rem; padding: clamp(1.25rem, 3vw, 2rem); background: var(--wp--preset--color--forest-900) !important; border-color: transparent !important; color: #fff; }
.thh-card--cta:hover { transform: none; }
.thh-card--cta .thh-card__eyebrow { color: var(--wp--preset--color--brand-400); }
.thh-card--cta .thh-card__title { color: #fff; font-size: var(--wp--preset--font-size--xl); }
.thh-card--cta .thh-card__text { color: color-mix(in srgb, #fff 80%, transparent); max-width: 46ch; }
.thh-card--cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: .5rem; }
.thh-link-arrow--light { color: #fff !important; }
/* Span the CTA across whatever is left in the last row (quantity queries per column count). */
.thh-product-grid.has-cta > .thh-card--cta { grid-column: 1 / -1; }
@media (min-width: 1100px) {
	.thh-product-grid.has-cta > .thh-card:nth-child(4n+1):nth-last-child(2) ~ .thh-card--cta { grid-column: span 3; }
	.thh-product-grid.has-cta > .thh-card:nth-child(4n+2):nth-last-child(2) ~ .thh-card--cta { grid-column: span 2; }
	.thh-product-grid.has-cta > .thh-card:nth-child(4n+3):nth-last-child(2) ~ .thh-card--cta { grid-column: span 1; }
}
@media (min-width: 800px) and (max-width: 1099px) {
	.thh-product-grid.has-cta > .thh-card:nth-child(3n+1):nth-last-child(2) ~ .thh-card--cta { grid-column: span 2; }
	.thh-product-grid.has-cta > .thh-card:nth-child(3n+2):nth-last-child(2) ~ .thh-card--cta { grid-column: span 1; }
}
@media (min-width: 520px) and (max-width: 799px) {
	.thh-product-grid.has-cta > .thh-card:nth-child(2n+1):nth-last-child(2) ~ .thh-card--cta { grid-column: span 1; }
}
.thh-card { display: flex; flex-direction: column; min-width: 0; border-radius: var(--thh-radius); background: #fff; border: 1px solid var(--thh-line); overflow: hidden; transition: box-shadow .25s var(--thh-ease), transform .25s var(--thh-ease); }
.thh-card:hover { box-shadow: var(--wp--preset--shadow--card); transform: translateY(-2px); }
.thh-card__media { display: block; aspect-ratio: 4 / 3; background: var(--wp--preset--color--ivory-100); overflow: hidden; }
.thh-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--thh-ease); }
.thh-card__media img.is-cutout { object-fit: contain; padding: 8%; }
.thh-card:hover .thh-card__media img { transform: scale(1.03); }
.thh-card__body { display: flex; flex-direction: column; gap: .4rem; padding: 1.1rem 1.2rem 1.25rem; flex: 1; }
.thh-card__eyebrow { margin: 0; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-card__title { margin: 0; font-size: var(--wp--preset--font-size--lg); line-height: 1.25; }
.thh-card__title a { color: var(--wp--preset--color--forest-900); text-decoration: none; }
.thh-card__title a:hover { color: var(--wp--preset--color--brand-600); }
.thh-card__title a::after { content: ""; position: absolute; inset: 0; }
.thh-card { position: relative; }
.thh-card__text { margin: 0; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); line-height: 1.55; }
.thh-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: auto; padding-top: .6rem; }
.thh-card__sku { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); font-variant-numeric: tabular-nums; }
.thh-card__actions { display: flex; justify-content: space-between; gap: 1rem; padding-top: .8rem; margin-top: .4rem; border-top: 1px solid var(--thh-line); }
.thh-card__actions a { position: relative; z-index: 1; }
.thh-img-placeholder { display: block; width: 100%; height: 100%; min-height: 160px; background: repeating-linear-gradient(135deg, var(--wp--preset--color--ivory-100) 0 12px, var(--wp--preset--color--sand-300) 12px 13px); }

.thh-chips ul { display: flex; gap: .5rem; flex-wrap: wrap; list-style: none; margin: 0 0 1.75rem; padding: 0; }
.thh-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: .45rem 1rem; border: 1px solid var(--thh-line-strong); border-radius: 999px; font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--ink-900); text-decoration: none; }
.thh-chips a:hover { border-color: var(--wp--preset--color--forest-800); }
.thh-chips a[aria-current] { background: var(--wp--preset--color--forest-800); border-color: var(--wp--preset--color--forest-800); color: #fff; }
@media (max-width: 599px) {
	.thh-chips ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(-1 * clamp(1rem, 4vw, 2.5rem)); padding-inline: clamp(1rem, 4vw, 2.5rem); }
	.thh-chips li { flex-shrink: 0; }
}

/* ---------------------------------------------------------------- product detail */
.thh-product__hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding-top: clamp(1.25rem, 3vw, 2rem); align-items: start; }
@media (max-width: 900px) { .thh-product__hero { grid-template-columns: 1fr; } }
.thh-product__summary { position: sticky; top: calc(var(--thh-header-h) + 1.5rem); display: grid; gap: 1rem; }
@media (max-width: 900px) { .thh-product__summary { position: static; } }
.thh-product__cat { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.thh-product__cat a { color: var(--wp--preset--color--brand-600); text-decoration: none; }
.thh-product__title { font-size: var(--wp--preset--font-size--xxl); margin: 0; }
.thh-product__lead { font-size: var(--wp--preset--font-size--lg); color: var(--wp--preset--color--ink-600); line-height: 1.55; }
.thh-product__lead p { margin: 0; }

.thh-gallery__main { position: relative; aspect-ratio: 1 / 1; border-radius: var(--thh-radius-l); background: var(--wp--preset--color--ivory-100); overflow: hidden; }
.thh-gallery__slide { position: absolute; inset: 0; margin: 0; display: none; } /* display:none keeps lazy slides out of the first request wave */
.thh-gallery__slide.is-active { display: block; z-index: 1; animation: thh-fade-in .35s var(--thh-ease); }
@keyframes thh-fade-in { from { opacity: 0; } }
.thh-gallery__slide img { width: 100%; height: 100%; object-fit: cover; }
.thh-gallery__slide img.is-cutout { object-fit: contain; padding: 7%; }
.thh-gallery__thumbs { display: flex; gap: .6rem; list-style: none; margin: .75rem 0 0; padding: 0; overflow-x: auto; scrollbar-width: thin; }
.thh-gallery__thumb { display: block; width: 76px; height: 76px; padding: 0; border: 2px solid transparent; border-radius: var(--thh-radius-s); background: var(--wp--preset--color--ivory-100); overflow: hidden; cursor: pointer; }
.thh-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.thh-gallery__thumb img.is-cutout { object-fit: contain; }
.thh-gallery__thumb.is-active { border-color: var(--wp--preset--color--forest-800); }

.thh-facts { display: grid; gap: 1rem; padding: 1.4rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; }
.thh-facts__ref { margin: 0; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.thh-facts__badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.thh-facts__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.thh-facts__sla { margin: 0; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }

.thh-table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); }
.thh-table th, .thh-table td { padding: .7rem .25rem; border-bottom: 1px solid var(--thh-line); text-align: left; vertical-align: top; }
.thh-table th { width: 38%; font-weight: 600; color: var(--wp--preset--color--ink-600); padding-right: 1rem; }
.thh-table td { color: var(--wp--preset--color--ink-900); }
.thh-table tr:last-child > * { border-bottom: 0; }
.thh-table--compact th, .thh-table--compact td { padding: .55rem 0; }

.thh-product__content { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 4vw, 4rem); margin-top: var(--thh-section); }
@media (max-width: 900px) { .thh-product__content { grid-template-columns: 1fr; } }
.thh-product__story h2, .thh-specs__title { font-size: var(--wp--preset--font-size--xl); margin: 0 0 1rem; }
.thh-product__story p { color: var(--wp--preset--color--ink-600); }
.thh-specs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1rem 2rem; }
.thh-specs__subtitle { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: .75rem; list-style: none; margin: .75rem 0 0; padding: 0; }
.thh-swatches li { display: grid; gap: .4rem; font-size: var(--wp--preset--font-size--xs); font-weight: 600; text-align: center; }
.thh-swatches img { width: 100%; aspect-ratio: 1; object-fit: contain; border-radius: var(--thh-radius-s); background: var(--wp--preset--color--ivory-100); padding: .5rem; }
.thh-swatches__custom > span:first-child { display: grid; place-items: center; aspect-ratio: 1; border-radius: var(--thh-radius-s); border: 1.5px dashed var(--thh-line-strong); font-size: 1.5rem; color: var(--wp--preset--color--brand-600); }
.thh-specs > * + * { margin-top: 1.5rem; }

.thh-proof-links { gap: 1rem; margin-top: var(--thh-section); }
.thh-proof-link { padding: 1.4rem; border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); }
.thh-proof-link p:last-child { margin: .6rem 0 0; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-related { margin-top: var(--thh-section); }

/* ---------------------------------------------------------------- contact list */
.thh-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.thh-contact__item a, .thh-contact__item > span { display: grid; gap: .05rem; text-decoration: none; }
.thh-contact__label { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.thh-contact__value { font-weight: 600; }
.thh-contact--inline { display: flex; flex-wrap: wrap; gap: 1rem 1.75rem; }

/* ---------------------------------------------------------------- certificates */
.thh-certs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1.25rem; }
.thh-cert { display: grid; gap: .75rem; align-content: start; padding: 1.5rem; border-radius: var(--thh-radius); border: 1px solid var(--thh-line); background: #fff; }
.thh-cert__title { margin: 0; font-size: var(--wp--preset--font-size--lg); }
.thh-cert__text { margin: 0; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-cert__data { display: grid; gap: .4rem; margin: 0; font-size: var(--wp--preset--font-size--sm); }
.thh-cert__data div { display: grid; grid-template-columns: 5.5rem 1fr; gap: .75rem; padding-top: .4rem; border-top: 1px solid var(--thh-line); }
.thh-cert__data dt { font-weight: 600; color: var(--wp--preset--color--ink-600); }
.thh-cert__data dd { margin: 0; }
.thh-cert__links { display: flex; flex-wrap: wrap; gap: 1.25rem; }

/* ---------------------------------------------------------------- RFQ */
.thh-rfq-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding-top: clamp(1.5rem, 4vw, 3rem); align-items: start; }
@media (max-width: 900px) { .thh-rfq-layout { grid-template-columns: 1fr; } }
.thh-rfq-layout__main > .wp-block-post-title { margin-bottom: .75rem; }
.thh-rfq-layout__aside { position: sticky; top: calc(var(--thh-header-h) + 1.5rem); display: grid; gap: 1rem; }
@media (max-width: 900px) { .thh-rfq-layout__aside { position: static; } }
.thh-aside-card { padding: 1.5rem; border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); }
.thh-aside-card h2 { margin: 0 0 1rem; }

.thh-rfq { margin-top: 1.5rem; }
.thh-rfq__form { display: grid; gap: 1.5rem; padding: clamp(1.25rem, 3vw, 2.25rem); border: 1px solid var(--thh-line); border-radius: var(--thh-radius-l); background: #fff; }
.thh-rfq__progress { display: none; }
.thh-rfq__form.is-stepped .thh-rfq__progress { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; list-style: none; margin: 0; padding: 0; counter-reset: s; }
.thh-rfq__progress li { counter-increment: s; padding-top: .75rem; border-top: 3px solid var(--wp--preset--color--sand-300); font-size: var(--wp--preset--font-size--xs); font-weight: 650; color: var(--wp--preset--color--ink-600); }
.thh-rfq__progress li::before { content: counter(s) ". "; }
.thh-rfq__progress li.is-current { border-color: var(--wp--preset--color--forest-800); color: var(--wp--preset--color--forest-900); }
.thh-rfq__progress li.is-done { border-color: var(--wp--preset--color--brand-600); color: var(--wp--preset--color--brand-600); }
.thh-rfq__step { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 1.1rem; }
.thh-rfq__step + .thh-rfq__step { padding-top: 1.5rem; border-top: 1px solid var(--thh-line); }
.thh-rfq__form.is-stepped .thh-rfq__step + .thh-rfq__step { padding-top: 0; border-top: 0; }
.thh-rfq__step > legend { padding: 0; margin-bottom: 1.1rem; font-size: var(--wp--preset--font-size--xl); font-weight: 700; color: var(--wp--preset--color--forest-900); letter-spacing: -0.02em; }
.thh-rfq__count { display: block; margin-bottom: .25rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-rfq__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1.1rem 1.25rem; }
.thh-field { display: grid; gap: .4rem; align-content: start; min-width: 0; }
.thh-field > label, .thh-field--checks > legend { font-size: var(--wp--preset--font-size--sm); font-weight: 650; color: var(--wp--preset--color--ink-900); }
.thh-req { color: var(--wp--preset--color--acacia-600); }
.thh-opt { font-weight: 400; color: var(--wp--preset--color--ink-600); font-size: var(--wp--preset--font-size--xs); }
.thh-field input:not([type=checkbox]):not([type=file]), .thh-field select, .thh-field textarea {
	width: 100%; min-height: 48px; padding: .7rem .9rem;
	border: 1.5px solid var(--thh-line-strong); border-radius: var(--thh-radius-s); background: var(--wp--preset--color--ivory-50);
	font: inherit; font-size: 1rem; color: var(--wp--preset--color--ink-900);
	transition: border-color .15s, background-color .15s;
}
.thh-field textarea { min-height: 120px; resize: vertical; }
.thh-field :is(input, select, textarea):hover { border-color: var(--wp--preset--color--ink-600); }
.thh-field :is(input, select, textarea):focus { border-color: var(--wp--preset--color--forest-800); background: #fff; outline: 3px solid color-mix(in srgb, var(--wp--preset--color--brand-600) 25%, transparent); outline-offset: 0; }
.thh-field [aria-invalid=true] { border-color: #b3261e !important; background: #fdf3f2 !important; }
.thh-field input[type=file] { padding: .9rem; border: 1.5px dashed var(--thh-line-strong); border-radius: var(--thh-radius-s); background: var(--wp--preset--color--ivory-50); font-size: var(--wp--preset--font-size--sm); max-width: 100%; }
.thh-field--checks { border: 0; margin: 0; padding: 0; display: grid; gap: .5rem; }
.thh-field--checks label, .thh-field--consent label { display: flex; gap: .6rem; align-items: flex-start; font-size: var(--wp--preset--font-size--sm); font-weight: 400; line-height: 1.5; }
.thh-field input[type=checkbox] { width: 20px; height: 20px; margin-top: .1rem; accent-color: var(--wp--preset--color--forest-800); flex-shrink: 0; }
.thh-hint { margin: 0; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }
.thh-error { margin: 0; font-size: var(--wp--preset--font-size--xs); font-weight: 600; color: #b3261e; }
.thh-alert { padding: .9rem 1.1rem; border-radius: var(--thh-radius-s); background: #fdf3f2; border: 1px solid #f0c5c1; color: #8c1d18; font-weight: 600; font-size: var(--wp--preset--font-size--sm); }
.thh-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.thh-rfq__nav { display: flex; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.thh-rfq__nav [data-rfq-submit], .thh-rfq__nav [data-rfq-next] { margin-left: auto; }
.thh-rfq__sla { margin: 0; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }
.thh-rfq__done { padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--thh-radius-l); background: var(--wp--preset--color--mint-100); }
.thh-rfq__done h2 { margin: .5rem 0 1rem; font-size: var(--wp--preset--font-size--xxl); }
.thh-eyebrow { margin: 0; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }

.thh-steps { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .9rem; counter-reset: st; }
.thh-steps li { counter-increment: st; position: relative; padding-left: 2.75rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-steps li::before { content: counter(st, decimal-leading-zero); position: absolute; left: 0; top: 0; width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 50%; background: var(--wp--preset--color--forest-800); color: #fff; font-size: .75rem; font-weight: 700; }
.thh-steps li strong { display: block; color: var(--wp--preset--color--ink-900); }

/* ---------------------------------------------------------------- documents */
.thh-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1.25rem; margin-top: 1.5rem; }
.thh-doc { display: grid; gap: .6rem; align-content: start; padding: 1.5rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; }
.thh-doc__type { margin: 0; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-doc__title { margin: 0; font-size: var(--wp--preset--font-size--lg); line-height: 1.3; }
.thh-doc__text { margin: 0; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-doc__link { justify-self: start; margin-top: .5rem; }
.thh-doc__link span { font-weight: 400; opacity: .75; }

/* ---------------------------------------------------------------- flipbook */
.thh-flipbook { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 2rem); border-radius: var(--thh-radius-l); background: var(--wp--preset--color--forest-950); color: #fff; }
.thh-flipbook:fullscreen { display: flex; flex-direction: column; justify-content: center; border-radius: 0; }
.thh-flipbook__stage { position: relative; display: grid; place-items: center; min-height: clamp(320px, 55vw, 640px); }
.thh-flipbook__open { display: grid; justify-items: center; gap: 1rem; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.thh-flipbook__cover { display: block; width: min(340px, 70vw); aspect-ratio: 1 / 1.414; border-radius: 4px 12px 12px 4px; overflow: hidden; box-shadow: 0 30px 60px -30px #000, inset 6px 0 10px -6px rgb(0 0 0 / 50%); background: var(--wp--preset--color--forest-800); transition: transform .4s var(--thh-ease); transform: perspective(1200px) rotateY(-8deg); }
.thh-flipbook__open:hover .thh-flipbook__cover { transform: perspective(1200px) rotateY(-2deg) translateY(-4px); }
.thh-flipbook__cover img { width: 100%; height: 100%; object-fit: cover; }
.thh-flipbook__cover-fallback { display: grid; place-items: center; height: 100%; padding: 2rem; font-size: var(--wp--preset--font-size--xl); font-weight: 700; text-align: center; }
.thh-flipbook__open-label { display: inline-flex; min-height: 48px; align-items: center; padding: .8rem 1.5rem; border-radius: 999px; background: #fff; color: var(--wp--preset--color--forest-900); font-weight: 650; font-size: var(--wp--preset--font-size--sm); }
.thh-flipbook__book { width: 100%; max-width: 1100px; }
.thh-flipbook__page { background: #fff; }
.thh-flipbook__page canvas { display: block; width: 100%; height: 100%; }
.thh-flipbook__status { font-size: var(--wp--preset--font-size--sm); color: color-mix(in srgb, #fff 80%, transparent); }
.thh-flipbook__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1rem; }
.thh-flipbook__ctrl { min-width: 44px; min-height: 44px; padding: 0 .9rem; border: 1px solid color-mix(in srgb, #fff 35%, transparent); border-radius: 999px; background: transparent; color: #fff; font-size: 1.25rem; cursor: pointer; }
.thh-flipbook__ctrl--text { font-size: var(--wp--preset--font-size--sm); font-weight: 600; }
.thh-flipbook__ctrl:disabled { opacity: .35; cursor: default; }
.thh-flipbook__ctrl:not(:disabled):hover { background: #fff; color: var(--wp--preset--color--forest-900); }
.thh-flipbook__pages { min-width: 8rem; text-align: center; font-size: var(--wp--preset--font-size--sm); font-variant-numeric: tabular-nums; }
.thh-flipbook__download { color: #fff; font-size: var(--wp--preset--font-size--sm); font-weight: 600; }

/* ---------------------------------------------------------------- home: hero */
.thh-hero {
	position: relative; isolation: isolate; overflow: hidden;
	display: grid; align-items: end;
	min-height: min(88vh, 820px);
	margin-top: 0 !important;
	padding: clamp(6rem, 14vw, 10rem) clamp(1rem, 4vw, 2.5rem) clamp(2.5rem, 6vw, 4.5rem);
	color: #fff;
	background: var(--wp--preset--color--forest-950);
}
.thh-hero__media { position: absolute; inset: 0; z-index: -2; }
.thh-hero__media :is(video, img) { width: 100%; height: 100%; object-fit: cover; }
.thh-hero__media video { position: absolute; inset: 0; }
.thh-hero__media video:not([src]) { display: none; }
.thh-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(10 30 21 / 88%) 0%, rgb(10 30 21 / 62%) 45%, rgb(10 30 21 / 15%) 100%), linear-gradient(0deg, rgb(10 30 21 / 70%) 0%, transparent 45%); }
.thh-hero__inner { width: 100%; max-width: var(--wp--style--global--wide-size, 1280px); margin: 0 auto; display: grid; gap: 1.25rem; }
.thh-hero__inner > * { max-width: 760px; margin: 0; }
.thh-hero h1 { color: #fff; font-size: var(--wp--preset--font-size--xxxl); line-height: 1.04; }
.thh-hero__lead { font-size: var(--wp--preset--font-size--lg); color: color-mix(in srgb, #fff 84%, transparent); max-width: 58ch; }
.thh-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .5rem; }
.thh-hero__toggle { position: absolute; right: clamp(1rem, 4vw, 2.5rem); bottom: clamp(1rem, 4vw, 2rem); width: 44px; height: 44px; border-radius: 50%; border: 1px solid color-mix(in srgb, #fff 40%, transparent); background: rgb(0 0 0 / 25%); color: #fff; cursor: pointer; display: grid; place-items: center; }
.thh-hero__toggle svg { width: 16px; height: 16px; }

/* stats strip */
.thh-stats { margin-top: 0 !important; padding-inline: clamp(1rem, 4vw, 2.5rem); border-bottom: 1px solid var(--thh-line); background: var(--wp--preset--color--ivory-50); }
.thh-stats__inner { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: var(--wp--style--global--wide-size, 1280px); margin-inline: auto; }
.thh-stat { padding: clamp(1.25rem, 3vw, 2rem) clamp(.75rem, 1.6vw, 1.5rem); border-right: 1px solid var(--thh-line); }
.thh-stat:first-child { padding-left: 0; }
.thh-stat:last-child { border-right: 0; }
.thh-stat__value { display: block; font-size: clamp(1.625rem, 2.7vw, 2.5rem); font-weight: 750; line-height: 1.05; letter-spacing: -0.03em; color: var(--wp--preset--color--forest-900); font-variant-numeric: tabular-nums; white-space: nowrap; }
.thh-stat__label { display: block; margin-top: .5rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); line-height: 1.4; }
@media (max-width: 420px) { .thh-stat__value { white-space: normal; font-size: 1.5rem; } }
@media (max-width: 1099px) {
	.thh-stats__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.thh-stat, .thh-stat:first-child { padding-left: 0; border-right: 0; border-bottom: 1px solid var(--thh-line); }
	.thh-stat:nth-child(odd):not(:last-child) { border-right: 1px solid var(--thh-line); padding-right: 1rem; }
	.thh-stat:nth-child(even) { padding-left: 1.25rem; }
	.thh-stat:last-child { grid-column: 1 / -1; border-bottom: 0; }
}

/* sections */
.thh-section { padding-top: var(--thh-section); }
.thh-section__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.thh-section__head > div { max-width: min(62rem, 100%); }
.thh-section__head p:not(.is-style-eyebrow) { max-width: 46rem; }
.thh-section__head h2 { margin: .75rem 0 0; }
.thh-section__head p:not(.is-style-eyebrow) { margin: .75rem 0 0; color: var(--wp--preset--color--ink-600); }

.thh-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: center; }
.thh-split--flip > :first-child { order: 2; }
@media (max-width: 900px) { .thh-split { grid-template-columns: 1fr; } .thh-split--flip > :first-child { order: 0; } }
.thh-media-frame { position: relative; border-radius: var(--thh-radius-l); overflow: hidden; background: var(--wp--preset--color--forest-900); }
.thh-media-frame :is(img, video) { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.thh-media-frame__play { position: absolute; inset: 0; display: grid; place-items: center; border: 0; background: linear-gradient(0deg, rgb(10 30 21 / 45%), rgb(10 30 21 / 10%)); cursor: pointer; color: #fff; }
.thh-media-frame__play span { display: inline-flex; align-items: center; gap: .6rem; padding: .85rem 1.4rem; border-radius: 999px; background: #fff; color: var(--wp--preset--color--forest-900); font-weight: 650; font-size: var(--wp--preset--font-size--sm); transition: transform .25s var(--thh-ease); }
.thh-media-frame__play:hover span { transform: scale(1.04); }

.thh-mosaic { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(90px, 11vw, 150px); gap: clamp(.5rem, 1vw, .9rem); }
.thh-mosaic figure { margin: 0; border-radius: var(--thh-radius); overflow: hidden; position: relative; }
.thh-mosaic img { width: 100%; height: 100%; object-fit: cover; }
.thh-mosaic figcaption { position: absolute; left: .75rem; bottom: .75rem; padding: .3rem .7rem; border-radius: 999px; background: rgb(10 30 21 / 72%); color: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 600; }
.thh-mosaic .m-a { grid-column: span 7; grid-row: span 3; }
.thh-mosaic .m-b { grid-column: span 5; grid-row: span 2; }
.thh-mosaic .m-c { grid-column: span 5; grid-row: span 1; }
@media (max-width: 700px) { .thh-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; } .thh-mosaic .m-a { grid-column: span 2; grid-row: span 2; } .thh-mosaic .m-b, .thh-mosaic .m-c { grid-column: span 1; grid-row: span 1; } }

.thh-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1px; background: var(--thh-line); border: 1px solid var(--thh-line); border-radius: var(--thh-radius-l); overflow: hidden; }
.thh-feature { padding: clamp(1.25rem, 3vw, 2rem); background: var(--wp--preset--color--ivory-50); display: grid; gap: .6rem; align-content: start; }
.thh-feature__num { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .12em; color: var(--wp--preset--color--brand-600); }
.thh-feature h3 { margin: 0; font-size: var(--wp--preset--font-size--lg); }
.thh-feature p { margin: 0; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }

.thh-dark-band { padding: clamp(2rem, 6vw, 5rem); }
.thh-gates { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1rem; counter-reset: g; }
.thh-gate { counter-increment: g; display: grid; gap: .6rem; align-content: start; }
.thh-gate figure { margin: 0 0 .4rem; border-radius: var(--thh-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--wp--preset--color--forest-800); }
.thh-gate figure img { width: 100%; height: 100%; object-fit: cover; }
.thh-gate h3 { margin: 0; font-size: var(--wp--preset--font-size--lg); }
.thh-gate h3::before { content: counter(g, decimal-leading-zero); display: inline-block; margin-right: .6rem; color: var(--wp--preset--color--brand-400); font-size: var(--wp--preset--font-size--sm); font-variant-numeric: tabular-nums; }
@media (max-width: 599px) { .thh-gates { grid-template-columns: 1fr 1fr; gap: 1rem .75rem; } .thh-gate h3 { font-size: var(--wp--preset--font-size--md); } }
.thh-gate p { margin: 0; font-size: var(--wp--preset--font-size--sm); color: color-mix(in srgb, #fff 75%, transparent); }

.thh-logos { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(1.5rem, 5vw, 4rem); }
.thh-logos img { height: clamp(34px, 4vw, 48px); width: auto; object-fit: contain; } /* partner logos keep their original colours */
.thh-proof-quote { padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--thh-radius-l); background: var(--wp--preset--color--forest-900); color: #fff; }
.thh-proof-quote__figure { display: block; font-size: var(--wp--preset--font-size--xxxl); font-weight: 750; letter-spacing: -0.03em; line-height: 1; color: var(--wp--preset--color--brand-400); }
.thh-proof-quote p { margin: .9rem 0 0; font-size: var(--wp--preset--font-size--lg); line-height: 1.5; color: color-mix(in srgb, #fff 88%, transparent); }
.thh-proof-quote small { display: block; margin-top: 1rem; font-size: var(--wp--preset--font-size--xs); letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, #fff 60%, transparent); }

.thh-process { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 0; counter-reset: p; }
.thh-process li { counter-increment: p; list-style: none; position: relative; padding: 1.5rem 1.25rem 0 0; border-top: 2px solid var(--wp--preset--color--sand-300); }
.thh-process li::before { content: counter(p, decimal-leading-zero); position: absolute; top: -1rem; left: 0; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--wp--preset--color--forest-800); color: #fff; font-size: .75rem; font-weight: 700; }
.thh-process strong { display: block; margin-top: .5rem; font-size: var(--wp--preset--font-size--md); color: var(--wp--preset--color--forest-900); }
.thh-process span { display: block; margin-top: .3rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
@media (max-width: 700px) { .thh-process li { padding-left: 3rem; border-top: 0; border-left: 2px solid var(--wp--preset--color--sand-300); padding-top: 0; padding-bottom: 1.5rem; margin-left: 1rem; } .thh-process li::before { left: -1rem; top: 0; } }

/* ---------------------------------------------------------------- footer */
.thh-footer { margin-top: 0; padding: clamp(3rem, 7vw, 5rem) clamp(1rem, 4vw, 2.5rem) 2rem; background: var(--wp--preset--color--forest-950); color: color-mix(in srgb, #fff 78%, transparent); }
.thh-footer a:not(.thh-btn) { color: #fff; text-decoration: none; }
.thh-footer a:not(.thh-btn):hover { color: var(--wp--preset--color--brand-400); text-decoration: underline; }
.thh-footer__cta { padding-bottom: clamp(2rem, 5vw, 3.5rem); margin-bottom: clamp(2rem, 5vw, 3.5rem); border-bottom: 1px solid color-mix(in srgb, #fff 14%, transparent); gap: 1.5rem; }
.thh-footer__title { color: #fff; font-size: var(--wp--preset--font-size--xxl); margin: 0 0 .5rem; }
.thh-footer__cta p { margin: 0; }
.thh-footer__grid { display: grid; grid-template-columns: 1.25fr .95fr 1.15fr 1.15fr .8fr; gap: clamp(1.5rem, 3vw, 2.5rem); }
.thh-footer__grid p { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--sm); line-height: 1.6; }
.thh-footer__creds { display: flex; flex-wrap: wrap; gap: .4rem; }
.thh-footer__creds span { padding: .25rem .6rem; border: 1px solid color-mix(in srgb, #fff 22%, transparent); border-radius: 999px; font-size: var(--wp--preset--font-size--xs); color: #fff; }
.thh-footer__catalog { display: grid; justify-items: start; align-content: start; gap: .6rem; }
.thh-footer__catalog-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; background: color-mix(in srgb, #fff 8%, transparent); border: 1px solid color-mix(in srgb, #fff 14%, transparent); color: var(--wp--preset--color--brand-400); }
.thh-footer__catalog .thh-footer__heading { margin: 0; }
.thh-footer__catalog-links { display: grid; gap: .4rem; margin: 0 !important; }
.thh-footer .thh-link-arrow { color: #fff; }
@media (max-width: 1199px) {
	.thh-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.thh-footer__brand { grid-column: span 3; display: grid; grid-template-columns: auto 1fr; gap: 0 2rem; align-items: start; }
	.thh-footer__brand .thh-footer__logo { grid-row: span 2; }
}
@media (max-width: 699px) {
	.thh-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.thh-footer__brand, .thh-footer__catalog { grid-column: 1 / -1; }
	.thh-footer__brand { display: block; }
	.thh-footer__grid > div:nth-child(4) { grid-column: 1 / -1; }
}
.thh-footer__logo { display: block; width: 190px; height: auto; }
.thh-footer__brand > * + * { margin-top: 1rem; }
.thh-footer__heading { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--brand-400); }
.thh-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; font-size: var(--wp--preset--font-size--sm); }
.thh-footer .thh-contact__label { color: color-mix(in srgb, #fff 60%, transparent); opacity: 1; }
.thh-footer__addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); font-size: var(--wp--preset--font-size--xs); gap: 1rem 2rem; margin-top: clamp(2rem, 5vw, 3rem); padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, #fff 14%, transparent); }
.thh-footer__addresses p { margin: 0; line-height: 1.6; }
.thh-footer__addresses strong { color: #fff; }
.thh-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; font-size: var(--wp--preset--font-size--xs); margin-top: 1.5rem; gap: .5rem 1.5rem; color: color-mix(in srgb, #fff 55%, transparent); }
.thh-footer__legal p { margin: 0; }

/* ---------------------------------------------------------------- misc core */
.wp-block-search__input { min-height: 48px; border-radius: var(--thh-radius-s); border: 1.5px solid var(--thh-line-strong); padding: .6rem .9rem; }
.wp-block-search__button { border-radius: 999px; }
.thh-404 { padding-top: clamp(3rem, 8vw, 6rem); }
.thh-404 > * + * { margin-top: 1.25rem; }


/* =========================================================================
   D3 components: page hero, core-block sections, capability cards, timeline,
   people, places, galleries, lightbox, FAQ, CTA band. All layouts use explicit
   column counts per breakpoint so rows never end with stray empty cells.
   ========================================================================= */

/* Core buttons = THH buttons */
.wp-block-buttons { gap: .75rem; }
.wp-block-button .wp-block-button__link { background: var(--wp--preset--color--forest-800); color: #fff; }
.wp-block-button .wp-block-button__link:hover { background: var(--wp--preset--color--forest-950); color: #fff; }
.wp-block-button.is-style-light .wp-block-button__link { background: #fff; color: var(--wp--preset--color--forest-900); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--wp--preset--color--mint-100); }
.wp-block-button.is-style-on-dark .wp-block-button__link { background: transparent; color: #fff; border-color: color-mix(in srgb, #fff 60%, transparent); }
.wp-block-button.is-style-on-dark .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--forest-900); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; }

/* Hero built from core blocks */
.thh-hero > .thh-hero__inner { position: relative; z-index: 1; width: 100%; max-width: var(--wp--style--global--wide-size, 1280px); margin: 0 auto; }
.thh-hero__inner > * { margin-block: 0; }
.thh-hero__inner > * + * { margin-top: 1.25rem; }
.thh-hero .thh-hero__actions { margin-top: 1.75rem; }
.thh-hero__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.thh-hero__media video { z-index: 1; }

/* Stats built from core paragraphs */
.thh-stat > p { margin: 0; }
.thh-stats--inline, .thh-stats--cards { padding-inline: 0; border-bottom: 0; background: none; margin-top: clamp(1.5rem, 4vw, 2.5rem) !important; }
.thh-stats--inline .thh-stats__inner { border-block: 1px solid var(--thh-line); grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); }
.thh-stats--inline .thh-stat:first-child { padding-left: 0; }
.thh-stats--cards .thh-stats__inner { gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.thh-stats--cards .thh-stat { padding: 1.4rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; }
.thh-stats--cards .thh-stat:first-child { padding-left: 1.4rem; }
.thh-stats__inner:has(> .thh-stat:nth-child(3):last-child) { --n: 3; }
.thh-stats__inner:has(> .thh-stat:nth-child(4):last-child) { --n: 4; }
@media (max-width: 1099px) {
	.thh-stats--inline .thh-stats__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.thh-stats--inline .thh-stat:last-child { grid-column: auto; }
	.thh-stats--inline .thh-stat:nth-child(odd):last-child { grid-column: 1 / -1; }
}

/* Inner page hero */
.thh-page-hero { padding-bottom: clamp(1rem, 3vw, 2rem); }
.thh-page-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 4.5rem); align-items: center; padding-top: clamp(1.5rem, 4vw, 3rem); }
.thh-page-hero__grid.is-text-only { grid-template-columns: minmax(0, 860px); }
.thh-page-hero__text > * { margin-block: 0; }
.thh-page-hero__text > * + * { margin-top: 1.1rem; }
.thh-page-hero__text h1 { font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.1; }
.thh-page-hero__grid.is-text-only .thh-page-hero__text h1 { font-size: clamp(2.5rem, 5vw, 4.25rem); }
.thh-page-hero__text .wp-block-buttons { margin-top: 1.75rem; }
.thh-page-hero__img, .thh-page-hero__grid > .thh-media-frame { margin: 0; border-radius: var(--thh-radius-l); overflow: hidden; }
.thh-page-hero__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 899px) { .thh-page-hero__grid { grid-template-columns: 1fr; } .thh-page-hero__img img { aspect-ratio: 16 / 10; } }

/* Split sections (core groups) */
.thh-split__a > *, .thh-split__b > * { margin-block: 0; }
.thh-split__a > * + *, .thh-split__b > * + * { margin-top: 1.1rem; }
.thh-split--top { align-items: start; }
.thh-split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.thh-split--flip > .thh-split__a { order: 2; }
@media (max-width: 899px) { .thh-split--flip > .thh-split__a { order: 0; } }
.thh-split .wp-block-image { margin: 0; }
.thh-split .wp-block-image img, .is-style-rounded img { border-radius: var(--thh-radius-l); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.thh-link-row { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }

/* Mosaic from core images */
.thh-mosaic .wp-block-image { margin: 0; border-radius: var(--thh-radius); overflow: hidden; position: relative; }
.thh-mosaic .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.thh-mosaic .wp-block-image figcaption { position: absolute; left: .75rem; bottom: .75rem; margin: 0; padding: .3rem .7rem; border-radius: 999px; background: rgb(10 30 21 / 72%); color: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 600; }
.thh-section > .thh-mosaic { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.thh-mosaic--2 { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(200px, 26vw, 340px); }
.thh-mosaic--2 .m-a, .thh-mosaic--2 .m-b { grid-column: span 1; grid-row: span 1; }
.thh-mosaic--4, .thh-split .thh-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(120px, 14vw, 190px); }
.thh-split .thh-mosaic .m-a { grid-column: span 2; grid-row: span 2; }
.thh-split .thh-mosaic .m-b, .thh-split .thh-mosaic .m-c { grid-column: span 1; grid-row: span 1; }

/* Features from core groups */
.thh-feature > * { margin: 0; }
.thh-feature .thh-feature__num { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .12em; color: var(--wp--preset--color--brand-600); }

/* Gates / illustrated steps */
.thh-gate > * { margin: 0; }
.thh-gate .wp-block-image { margin: 0 0 .4rem; border-radius: var(--thh-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--wp--preset--color--forest-800); }
.thh-gate .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.thh-gates { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1099px) { .thh-gates { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.thh-gates--light .thh-gate h3 { color: var(--wp--preset--color--forest-900); }
.thh-gates--light .thh-gate h3::before { color: var(--wp--preset--color--brand-600); }
.thh-gates--light .thh-gate p { color: var(--wp--preset--color--ink-600); }
.thh-gates--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1099px) { .thh-gates--five { grid-template-columns: repeat(2, minmax(0, 1fr)); } .thh-gates--five > :last-child { grid-column: 1 / -1; } }
/* Timeline variant: numbered titles already carry the step number */
.thh-gates--timeline { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.thh-gates--timeline .thh-gate h3::before { content: none; }
.thh-gates--timeline .thh-gate h3 { font-size: var(--wp--preset--font-size--md); color: var(--wp--preset--color--forest-900); }
.thh-gates--timeline .thh-gate p { color: var(--wp--preset--color--ink-600); }
@media (max-width: 1099px) { .thh-gates--timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Process list (core list) */
ol.thh-process { padding: 0; margin: 0; }
.thh-process li strong { display: block; margin: .5rem 0 .3rem; font-size: var(--wp--preset--font-size--md); color: var(--wp--preset--color--forest-900); }
.thh-process li { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }

/* Proof quote (core paragraphs) */
.thh-proof-quote > * { margin: 0; }
.thh-proof-quote .thh-proof-quote__figure { display: block; font-size: var(--wp--preset--font-size--xxxl); font-weight: 750; letter-spacing: -0.03em; line-height: 1; color: var(--wp--preset--color--brand-400); }
.thh-proof-quote .thh-proof-quote__note { margin-top: 1rem; font-size: var(--wp--preset--font-size--xs); letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, #fff 60%, transparent); }
.thh-split--customers { align-items: center; }

/* Link cards */
.thh-link-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 899px) { .thh-link-cards { grid-template-columns: 1fr; } }
.thh-link-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; overflow: hidden; transition: box-shadow .25s var(--thh-ease), transform .25s var(--thh-ease); }
.thh-link-card:hover { box-shadow: var(--wp--preset--shadow--card); transform: translateY(-2px); }
.thh-link-card > * { margin: 0; }
.thh-link-card .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.thh-link-card h3, .thh-link-card p { padding-inline: 1.3rem; }
.thh-link-card h3 { padding-top: 1.1rem; font-size: var(--wp--preset--font-size--lg); }
.thh-link-card h3 a { color: var(--wp--preset--color--forest-900); text-decoration: none; }
.thh-link-card h3 a::after { content: ""; position: absolute; inset: 0; }
.thh-link-card p { margin-top: .5rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-link-card .thh-link-card__more { margin-top: auto; padding: 1rem 1.3rem 1.3rem; }

/* Capability cards (2 x 2) */
.thh-cap-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 799px) { .thh-cap-cards { grid-template-columns: 1fr; } }
.thh-cap-cards:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 899px) { .thh-cap-cards:has(> :nth-child(3):last-child) { grid-template-columns: 1fr; } }
.thh-cap-card { position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: var(--thh-radius-l); background: #fff; border: 1px solid var(--thh-line); overflow: hidden; transition: box-shadow .25s var(--thh-ease), transform .25s var(--thh-ease); }
.thh-cap-card:hover { box-shadow: var(--wp--preset--shadow--card); transform: translateY(-2px); }
.thh-cap-card__media img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.thh-cap-card__body { display: flex; flex-direction: column; gap: .5rem; padding: clamp(1.2rem, 2.5vw, 1.75rem); }
.thh-cap-card__body > * { margin: 0; }
.thh-cap-card__num { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .12em; color: var(--wp--preset--color--brand-600); }
.thh-cap-card__title { font-size: var(--wp--preset--font-size--xl); }
.thh-cap-card__title a { color: var(--wp--preset--color--forest-900); text-decoration: none; }
.thh-cap-card__title a::after { content: ""; position: absolute; inset: 0; }
.thh-cap-card__text { color: var(--wp--preset--color--ink-600); font-size: var(--wp--preset--font-size--sm); }
.thh-cap-card__metric { padding: .6rem .9rem; border-radius: var(--thh-radius-s); background: var(--wp--preset--color--mint-100); font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--forest-800); align-self: start; }
.thh-cap-card__more { margin-top: auto !important; padding-top: .5rem; }

/* Timeline */
.thh-timeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--wp--preset--color--sand-300); }
.thh-timeline__item { position: relative; padding: 1.75rem 1.5rem 0 0; }
.thh-timeline__item::before { content: ""; position: absolute; top: -8px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--wp--preset--color--brand-600); box-shadow: 0 0 0 4px var(--wp--preset--color--ivory-50); }
.thh-timeline__item > * { margin: 0; }
.thh-timeline__year { font-size: var(--wp--preset--font-size--xl); font-weight: 750; color: var(--wp--preset--color--brand-600); letter-spacing: -0.02em; }
.thh-timeline__item h3 { margin-top: .4rem; font-size: var(--wp--preset--font-size--lg); }
.thh-timeline__item p:last-child { margin-top: .5rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
@media (max-width: 899px) {
	.thh-timeline { grid-template-columns: 1fr; border-top: 0; border-left: 2px solid var(--wp--preset--color--sand-300); margin-left: .4rem; }
	.thh-timeline__item { padding: 0 0 1.75rem 1.75rem; }
	.thh-timeline__item::before { top: .35rem; left: -8px; }
}

/* CEO letter & people */
.thh-letter { display: grid; grid-template-columns: minmax(180px, 280px) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--thh-radius-l); background: var(--wp--preset--color--mint-100); }
.thh-letter__photo, .thh-person__photo { margin: 0; }
.thh-letter__photo img, .thh-person__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); }
.thh-letter__text > * { margin: 0; }
.thh-letter__quote { margin: 1rem 0 0; padding: 0; border: 0; }
.thh-letter__quote p { font-family: var(--wp--preset--font-family--serif); font-style: italic; font-size: var(--wp--preset--font-size--xl); line-height: 1.4; color: var(--wp--preset--color--forest-900); }
.thh-letter__quote cite { display: block; margin-top: 1rem; font-style: normal; font-size: var(--wp--preset--font-size--sm); font-weight: 650; color: var(--wp--preset--color--ink-600); }
@media (max-width: 699px) { .thh-letter { grid-template-columns: 1fr; } .thh-letter__photo { max-width: 240px; } }
.thh-person { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.thh-person__text > * { margin: 0; }
.thh-person__text > * + * { margin-top: .6rem; }
.thh-person__role { font-weight: 650; color: var(--wp--preset--color--brand-600); }
@media (max-width: 519px) { .thh-person { grid-template-columns: 1fr; } .thh-person__photo { max-width: 220px; } }

/* Panel cards */
.thh-panel-card { padding: clamp(1.4rem, 3vw, 2.25rem); border-radius: var(--thh-radius-l); background: #fff; border: 1px solid var(--thh-line); height: 100%; }
.thh-panel-card > * { margin-block: 0; }
.thh-panel-card > * + * { margin-top: 1rem; }
.thh-panel-card--mint { background: var(--wp--preset--color--mint-100); border-color: transparent; }
.thh-panel-card--row { gap: 1rem; }
.thh-panel-card--row > * + * { margin-top: 0; }
.thh-note { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }

/* Places (contact) */
.thh-places { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 899px) { .thh-places { grid-template-columns: 1fr; } }
.thh-place { border: 1px solid var(--thh-line); border-radius: var(--thh-radius); overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.thh-place > * { margin: 0; }
.thh-place .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.thh-place__body { padding: 1.3rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.thh-place__body > * { margin: 0; }
.thh-place__body h3 { font-size: var(--wp--preset--font-size--lg); }
.thh-place__body p:last-child { margin-top: auto; padding-top: .5rem; }

/* Media gallery + lightbox */
.thh-gallery-title { margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--xl); }
.thh-gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
@media (max-width: 1099px) { .thh-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 699px) { .thh-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.thh-gallery-grid__item { margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.thh-gallery-grid__item a { display: block; border-radius: var(--thh-radius-s); overflow: hidden; background: var(--wp--preset--color--ivory-100); }
.thh-gallery-grid__item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s var(--thh-ease); }
.thh-gallery-grid__item a:hover img { transform: scale(1.04); }
.thh-gallery-grid__item figcaption { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); line-height: 1.45; }
.thh-lightbox { width: min(1200px, 94vw); max-height: 94vh; padding: 0; border: 0; border-radius: var(--thh-radius); background: var(--wp--preset--color--forest-950); color: #fff; overflow: visible; }
.thh-lightbox::backdrop { background: rgb(8 20 14 / 86%); }
.thh-lightbox__figure { margin: 0; }
.thh-lightbox__figure img { display: block; width: 100%; max-height: 82vh; object-fit: contain; }
.thh-lightbox__figure figcaption { padding: .8rem 1rem; font-size: var(--wp--preset--font-size--sm); }
.thh-lightbox__btn { position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #fff; color: var(--wp--preset--color--forest-900); font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: 0 6px 20px -8px #000; }
.thh-lightbox__prev { left: -24px; top: 45%; }
.thh-lightbox__next { right: -24px; top: 45%; }
.thh-lightbox__close { right: -18px; top: -18px; width: 40px; height: 40px; }
@media (max-width: 699px) { .thh-lightbox__prev { left: 6px; } .thh-lightbox__next { right: 6px; } .thh-lightbox__close { right: 6px; top: 6px; } }

/* FAQ (core details) */
.thh-faq-list { display: grid; gap: .75rem; margin-bottom: var(--thh-section); }
.thh-faq { border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; overflow: hidden; }
.thh-faq summary { position: relative; padding: 1.1rem 3.25rem 1.1rem 1.3rem; font-weight: 650; font-size: var(--wp--preset--font-size--md); color: var(--wp--preset--color--forest-900); cursor: pointer; list-style: none; }
.thh-faq summary::-webkit-details-marker { display: none; }
.thh-faq summary::after { content: "+"; position: absolute; right: 1.2rem; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-800); font-weight: 700; }
.thh-faq[open] summary::after { content: "−"; }
.thh-faq > p { margin: 0; padding: 0 1.3rem 1.2rem; color: var(--wp--preset--color--ink-600); }

/* CTA band */
.thh-cta-band { gap: 1.5rem; padding: clamp(1.75rem, 4vw, 3rem) !important; }
.thh-cta-band h2 { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--xl); }
.thh-cta-band p { margin: 0; color: color-mix(in srgb, #fff 80%, transparent); max-width: 60ch; }

/* Tables from core table block */
.thh-table-block { margin: 1.25rem 0 0; }
.thh-table-block table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); background: #fff; border-radius: var(--thh-radius-s); overflow: hidden; }
.thh-table-block th, .thh-table-block td { padding: .65rem .8rem; border: 0; border-bottom: 1px solid var(--thh-line); text-align: left; }
.thh-table-block thead th { background: var(--wp--preset--color--forest-900); color: #fff; font-weight: 650; }
.thh-table-block tbody td:first-child { font-weight: 600; color: var(--wp--preset--color--ink-600); }
@media (max-width: 599px) { .thh-table-block { overflow-x: auto; } .thh-table-block table { min-width: 520px; } }

/* Dark band built from core groups */
.thh-dark-band .thh-section__head .wp-block-buttons { margin: 0; }
.thh-dark-band > * + * { margin-top: 0; }

/* Aside cards on RFQ page */
.thh-aside-card--quiet { background: transparent; border: 1px solid var(--thh-line); }
.thh-aside-card h2 { font-size: var(--wp--preset--font-size--lg); }
.thh-aside-card p { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-404__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* Page content spacing (legal / FAQ) */
.thh-page__content h2 { margin-top: 2.25rem; font-size: var(--wp--preset--font-size--xl); }
.thh-page--wide > .wp-block-post-content > .thh-section:first-child { padding-top: 0; }


/* Grid items may shrink below their content width (prevents horizontal overflow on phones). */
:is(.thh-split, .thh-page-hero__grid, .thh-link-cards, .thh-cap-cards, .thh-places, .thh-gates, .thh-features, .thh-stats__inner, .thh-timeline, .thh-letter, .thh-person, .thh-product-grid, .thh-footer__grid, .thh-gallery-grid, .thh-mosaic, .thh-rfq-layout, .thh-product__hero, .thh-product__content, .thh-cat-cards, .thh-certs, .thh-docs, .thh-specs__grid, .thh-rfq__grid) > * { min-width: 0; }
@media (max-width: 899px) { .thh-split, .thh-split--even { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 599px) {
	.thh-btn, .wp-block-button__link { white-space: normal; text-align: center; }
	.wp-block-buttons > .wp-block-button { max-width: 100%; }
	.thh-contact__value { overflow-wrap: anywhere; }
}


/* The hero must be its own stacking context so its media (z-index:-2) paints above the hero background. */
.thh-hero { position: relative; z-index: 0; isolation: isolate; }
/* Grid containers space their items with gap; cancel the flow-layout margins WordPress adds to siblings. */
:is(.thh-stats__inner, .thh-split, .thh-page-hero__grid, .thh-link-cards, .thh-cap-cards, .thh-places, .thh-gates, .thh-features, .thh-timeline, .thh-letter, .thh-person, .thh-mosaic, .thh-gallery-grid, .thh-footer__grid, .thh-hero) > * { margin-block: 0 !important; }
.thh-stat > p + p { margin-top: .5rem !important; }
.thh-section__head > * { margin-block: 0 !important; }


/* One call to action per page: pages that end with their own CTA band skip the footer CTA row. */
body:has(main .thh-cta-band) .thh-footer__cta { display: none; }
body:has(main .thh-cta-band) .thh-footer { padding-top: clamp(2.5rem, 6vw, 4rem); }


/* Contact: direct lines in the hero, address cards without photos */
.thh-panel-card--contact { background: var(--wp--preset--color--forest-900); border-color: transparent; color: #fff; }
.thh-panel-card--contact :where(h2) { color: #fff; font-size: var(--wp--preset--font-size--xl); }
.thh-panel-card--contact h2 em { color: var(--wp--preset--color--brand-400); }
.thh-panel-card--contact .is-style-eyebrow { color: var(--wp--preset--color--brand-400); }
.thh-panel-card--contact .thh-contact { gap: .9rem; }
.thh-panel-card--contact .thh-contact__item a, .thh-panel-card--contact .thh-contact__item > span { color: #fff; text-decoration: none; padding-bottom: .9rem; border-bottom: 1px solid color-mix(in srgb, #fff 14%, transparent); }
.thh-panel-card--contact .thh-contact__value { font-size: var(--wp--preset--font-size--lg); }
.thh-panel-card--contact .thh-note { color: color-mix(in srgb, #fff 70%, transparent); }
.thh-place--text { position: relative; padding-top: .35rem; border-top: 3px solid var(--wp--preset--color--brand-600); }
.thh-place--text .thh-place__body { padding: 1.5rem; }


/* =========================================================================
   v4 - layout rebalance
   Principles: tighter vertical rhythm (more content per viewport), columns of equal visual weight,
   no empty grid cells, header on its own surface, attributes surfaced as chips/filters.
   ========================================================================= */
:root {
	--thh-section: clamp(2.25rem, 4.5vw, 3.75rem);
	--thh-header-h: 68px;
	--thh-header-full: calc(var(--thh-header-h) + 4px); /* bar + accent line + border */
}
html { scroll-padding-top: calc(var(--thh-header-h) + 1.25rem); }
.thh-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Header: white surface + accent line, sticky on the template-part wrapper ---- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.thh-header {
	position: static !important; background: #fff !important; backdrop-filter: none;
	border-bottom: 1px solid var(--thh-line-strong); box-shadow: 0 1px 0 rgb(14 42 30 / 4%);
	transition: box-shadow .25s var(--thh-ease);
}
.thh-header::before { content: ""; display: block; height: 3px; margin-inline: calc(-1 * clamp(1rem, 4vw, 2.5rem)); background: linear-gradient(90deg, var(--wp--preset--color--forest-800), var(--wp--preset--color--brand-400) 55%, var(--wp--preset--color--forest-800)); }
.thh-header.is-scrolled { box-shadow: 0 10px 28px -18px rgb(14 42 30 / 55%); }
.thh-header__inner { min-height: var(--thh-header-h); gap: 1rem; }
/* Even vertical rhythm: no inherited block-gap above the bar, equal padding above and below. */
.thh-header > *, .thh-header > .thh-header__inner { margin-block: 0 !important; }
.thh-header__inner { padding-block: .4rem; }
.thh-header__nav { gap: .6rem; }
.thh-search-toggle { display: inline-grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid var(--thh-line-strong); border-radius: 50%; background: #fff; color: var(--wp--preset--color--forest-900); cursor: pointer; transition: background-color .2s, border-color .2s; }
.thh-search-toggle:hover, .thh-search-toggle[aria-expanded="true"] { background: var(--wp--preset--color--mint-100); border-color: var(--wp--preset--color--forest-800); }
.thh-searchpanel { position: relative; background: #fff; border-top: 1px solid var(--thh-line); box-shadow: 0 26px 40px -30px rgb(14 42 30 / 55%); animation: thh-drop .18s var(--thh-ease); }
.thh-searchpanel[hidden] { display: none; }
@keyframes thh-drop { from { opacity: 0; transform: translateY(-6px); } }
.thh-searchpanel__inner { position: relative; display: grid; gap: .6rem; max-width: var(--wp--style--global--wide-size, 1280px); margin: 0 auto; padding: 1.1rem clamp(1rem, 4vw, 2.5rem) 1.25rem; }
.thh-searchpanel__close { position: absolute; right: clamp(1rem, 4vw, 2.5rem); top: .9rem; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; font-size: 1.75rem; line-height: 1; color: var(--wp--preset--color--ink-600); cursor: pointer; }
.thh-searchpanel__close:hover { background: var(--wp--preset--color--mint-100); }
.thh-searchform { display: flex; gap: .6rem; max-width: 760px; }
.thh-searchpanel .thh-searchform { padding-right: 3rem; }
.thh-searchform__field { position: relative; flex: 1; display: block; color: var(--wp--preset--color--ink-600); }
.thh-searchform__field svg { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); pointer-events: none; }
.thh-searchform input[type=search] { width: 100%; min-height: 48px; padding: .7rem 1rem .7rem 2.9rem; border: 1.5px solid var(--thh-line-strong); border-radius: 999px; background: var(--wp--preset--color--ivory-50); font: inherit; color: var(--wp--preset--color--ink-900); }
.thh-searchform input[type=search]:focus { border-color: var(--wp--preset--color--forest-800); background: #fff; outline: 3px solid color-mix(in srgb, var(--wp--preset--color--brand-600) 25%, transparent); }
.thh-searchpanel__label { margin: .25rem 0 0; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.thh-searchpanel__links { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.thh-searchpanel__links a { display: inline-flex; align-items: center; min-height: 36px; padding: .3rem .9rem; border: 1px solid var(--thh-line-strong); border-radius: 999px; font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--forest-800); text-decoration: none; }
.thh-searchpanel__links a:hover { background: var(--wp--preset--color--mint-100); }
@media (max-width: 599px) { .thh-searchform { flex-direction: column; } .thh-searchform .thh-btn { width: 100%; } .thh-searchpanel .thh-searchform { padding-right: 0; padding-top: 2.75rem; } }

/* ---- Vertical rhythm ---- */
.thh-hero {
	min-height: clamp(430px, calc(100svh - var(--thh-header-h) - 3px - 112px), 640px);
	padding: clamp(3rem, 7vw, 5.5rem) clamp(1rem, 4vw, 2.5rem) clamp(1.75rem, 3.5vw, 3rem);
}
.thh-hero h1 { font-size: clamp(2.25rem, 4.3vw, 3.75rem); }
.thh-hero__inner > * + * { margin-top: 1rem; }
.thh-stat { padding: clamp(.9rem, 1.8vw, 1.3rem) clamp(.75rem, 1.6vw, 1.5rem); }
.thh-stat__value { font-size: clamp(1.5rem, 2.4vw, 2.125rem); }
.thh-section__head { margin-bottom: clamp(1rem, 2vw, 1.75rem); }
.thh-section__head h2 { margin-top: .5rem; }
.thh-archive__head, .thh-page__head { padding: clamp(1.25rem, 3vw, 2rem) 0 clamp(1rem, 2vw, 1.5rem); }
.thh-archive__head h1, .thh-archive__head .wp-block-query-title { font-size: clamp(2rem, 3.6vw, 3rem); }
.thh-page-hero__grid { padding-top: clamp(.75rem, 2vw, 1.5rem); }
.thh-page-hero__text h1 { font-size: clamp(2rem, 3.6vw, 3.1rem); }
.thh-page-hero__grid.is-text-only .thh-page-hero__text h1 { font-size: clamp(2.25rem, 4.4vw, 3.5rem); }
.thh-dark-band { padding: clamp(1.5rem, 3.5vw, 2.75rem); }
.thh-cta-band { padding: clamp(1.25rem, 3vw, 2rem) !important; }
.thh-cta-band h2 { font-size: var(--wp--preset--font-size--lg); }
.thh-footer { padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 4vw, 2.5rem) 1.5rem; }
.thh-footer__cta { padding-bottom: clamp(1.25rem, 3vw, 2rem); margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.thh-footer__title { font-size: var(--wp--preset--font-size--xl); }
.thh-footer__addresses { margin-top: clamp(1.25rem, 3vw, 2rem); padding-top: 1.1rem; }
.thh-footer__legal { margin-top: 1rem; }
.thh-footer__hint { margin: .8rem 0 0 !important; font-size: var(--wp--preset--font-size--xs) !important; color: color-mix(in srgb, #fff 58%, transparent); }
.thh-cat-card { min-height: clamp(240px, 21vw, 300px); }
.thh-callout { margin-top: var(--thh-section); }
.thh-mosaic { grid-auto-rows: clamp(80px, 9vw, 125px); }
.thh-section > .thh-mosaic { margin-top: clamp(1rem, 2vw, 1.5rem); }
.thh-features { gap: 1px; }
.thh-feature { padding: clamp(1rem, 2vw, 1.5rem); }
.thh-letter { padding: clamp(1.25rem, 3vw, 2.25rem); }
.thh-panel-card { padding: clamp(1.15rem, 2.4vw, 1.75rem); }

/* ---- Product page ---- */
.thh-product { padding-bottom: var(--thh-section); }
.thh-product__hero { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: clamp(1.25rem, 3.5vw, 3rem); align-items: stretch; padding-top: .75rem; }
.thh-product__hero > .thh-gallery { display: flex; flex-direction: column; gap: .75rem; min-width: 0; }
.thh-gallery__main { flex: 1; aspect-ratio: auto; min-height: clamp(320px, 42vw, 560px); }
.thh-gallery__thumbs { margin: 0; }
.thh-product__summary { position: static; display: flex; flex-direction: column; gap: 1rem; }
.thh-product__summary > * { margin: 0; }
.thh-product__title { font-size: clamp(1.75rem, 2.9vw, 2.4rem); }
.thh-product__lead { font-size: var(--wp--preset--font-size--md); }
.thh-attrs { margin: 0; border-block: 1px solid var(--thh-line); }
.thh-attrs__row { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .75rem; align-items: center; padding: .6rem 0; }
.thh-attrs__row + .thh-attrs__row { border-top: 1px solid var(--thh-line); }
.thh-attrs dt { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.thh-attrs dd { margin: 0; font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--forest-900); }
.thh-attrs dd a { text-decoration: none; color: inherit; }
.thh-attrs dd a:hover { color: var(--wp--preset--color--brand-600); text-decoration: underline; }
.thh-attr-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.thh-attr-chips li { display: inline-flex; align-items: center; gap: .4rem; padding: .18rem .65rem; border: 1px solid var(--thh-line-strong); border-radius: 999px; background: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 600; color: var(--wp--preset--color--ink-900); }
.thh-dot { display: inline-block; flex-shrink: 0; width: .85rem; height: .85rem; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(0 0 0 / 18%); }
.thh-facts { gap: .75rem; padding: 1.1rem 1.25rem; background: var(--wp--preset--color--ivory-100); border-color: transparent; }
.thh-facts__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.thh-facts .thh-table th, .thh-facts .thh-table td { padding: .45rem 0; }
.thh-facts .thh-table th { width: 30%; }

.thh-product__detail { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(1.25rem, 3.5vw, 3rem); align-items: start; margin-top: var(--thh-section); }
.thh-product__story > * { margin-block: 0; }
.thh-product__story > * + * { margin-top: 1rem; }
.thh-product__story h2 { font-size: var(--wp--preset--font-size--xl); }
.thh-proof-links { display: grid; gap: .7rem; margin: 0; }
.thh-proof-link { display: flex; align-items: flex-start; gap: .9rem; padding: 1rem 1.15rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; color: inherit; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.thh-proof-link:hover { border-color: var(--wp--preset--color--brand-600); box-shadow: var(--wp--preset--shadow--card); }
.thh-proof-link__icon { flex: 0 0 2.5rem; display: grid; place-items: center; height: 2.5rem; border-radius: 50%; background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-800); }
.thh-proof-link strong { display: block; color: var(--wp--preset--color--forest-900); }
.thh-proof-link > span:last-child > span { display: block; margin-top: .15rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-specs { margin-top: var(--thh-section); padding: clamp(1.15rem, 2.6vw, 2rem); border: 1px solid var(--thh-line); border-radius: var(--thh-radius-l); background: #fff; }
.thh-specs > * + * { margin-top: 1.25rem; }
.thh-specs__title { margin: 0 0 .5rem !important; }
.thh-specs__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
@media (max-width: 899px) {
	.thh-product__hero, .thh-product__detail, .thh-specs__grid { grid-template-columns: minmax(0, 1fr); }
	.thh-gallery__main { min-height: 0; aspect-ratio: 4 / 3; flex: none; }
	.thh-attrs__row { grid-template-columns: 6rem minmax(0, 1fr); }
}
.thh-specs__swatches { padding-top: 1rem; border-top: 1px solid var(--thh-line); }
.thh-specs__swatches .thh-swatches { grid-template-columns: repeat(auto-fill, minmax(88px, 110px)); }
.thh-related { margin-top: var(--thh-section); }
.thh-related .thh-product-grid { --cols: 4; }
@media (max-width: 1099px) { .thh-related .thh-product-grid { --cols: 2; } }
@media (max-width: 519px) { .thh-related .thh-product-grid { --cols: 1; } }
.thh-related h2 { margin-bottom: 1.1rem; font-size: var(--wp--preset--font-size--xl); }

/* ---- Cards: attributes ---- */
.thh-card__attrs { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .4rem; margin-top: .15rem; }
.thh-chip { display: inline-block; padding: .12rem .55rem; border-radius: 999px; background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-800); font-size: var(--wp--preset--font-size--xs); font-weight: 600; line-height: 1.5; }
.thh-dots { display: inline-flex; margin-left: auto; }
.thh-dots .thh-dot { width: 1rem; height: 1rem; margin-left: -.3rem; box-shadow: 0 0 0 2px #fff, inset 0 0 0 1px rgb(0 0 0 / 15%); }
.thh-dots .thh-dot:first-child { margin-left: 0; }

/* ---- Filters ---- */
.thh-filters { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem 1.25rem; margin: 0 0 1.25rem; padding: .85rem 1.1rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; }
.thh-filters__fields { display: flex; flex-wrap: wrap; gap: .7rem 1rem; }
.thh-filter { display: grid; gap: .25rem; }
.thh-filter label { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.thh-filter select { min-width: 10rem; max-width: 100%; min-height: 42px; padding: .4rem 2rem .4rem .8rem; border: 1.5px solid var(--thh-line-strong); border-radius: 10px; background-color: var(--wp--preset--color--ivory-50); font: inherit; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-900); }
.thh-filter select:focus { border-color: var(--wp--preset--color--forest-800); outline: 3px solid color-mix(in srgb, var(--wp--preset--color--brand-600) 25%, transparent); }
.thh-filters.has-active .thh-filter select:not([value=""]) { border-color: var(--wp--preset--color--forest-800); }
.thh-filters__meta { display: flex; align-items: center; gap: 1rem; margin-left: auto; min-height: 42px; }
.thh-filters__count { margin: 0; font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--ink-600); }
.thh-filters__clear { font-size: var(--wp--preset--font-size--sm); font-weight: 650; }
.thh-chips ul { margin-bottom: 1rem; }
@media (max-width: 599px) { .thh-filter { flex: 1 1 calc(50% - .5rem); } .thh-filter select { width: 100%; min-width: 0; } .thh-filters__meta { width: 100%; justify-content: space-between; } }

/* ---- Search results ---- */
.thh-search__title { margin: 1.5rem 0 1rem; font-size: var(--wp--preset--font-size--lg); }
.thh-search .thh-searchform { margin-top: 1rem; }
.thh-results { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.thh-result { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .15rem 1rem; align-items: baseline; padding: .9rem 1.1rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; }
.thh-result__type { grid-row: span 2; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-result__title { font-weight: 650; font-size: var(--wp--preset--font-size--md); color: var(--wp--preset--color--forest-900); text-decoration: none; }
.thh-result__title:hover { text-decoration: underline; }
.thh-result__text { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-search__cats { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.thh-search__empty { padding: 1.5rem 0; }
@media (max-width: 599px) { .thh-result { grid-template-columns: 1fr; } .thh-result__type { grid-row: auto; } }


/* =========================================================================
   v4b - product hero, facts strip, header on phones
   ========================================================================= */
.wp-site-blocks > * { margin-block: 0 !important; }
.thh-gallery__main { min-height: clamp(300px, 36vw, 500px); }
.thh-attrs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; border-block: 1px solid var(--thh-line); }
.thh-attrs__row, .thh-attrs__row + .thh-attrs__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: .35rem; align-content: start; padding: .7rem 0; border-top: 0; border-bottom: 1px solid var(--thh-line); }
.thh-attrs__row:nth-last-child(-n+1), .thh-attrs__row.is-wide:last-child { border-bottom: 0; }
.thh-attrs__row.is-wide { grid-column: 1 / -1; }
.thh-attrs__row:not(.is-wide):nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--thh-line); }
@media (max-width: 599px) { .thh-attrs { grid-template-columns: minmax(0, 1fr); } }

.thh-cta__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.thh-cta__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-top: .85rem; }
.thh-cta__ref { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }

.thh-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0; margin: clamp(1rem, 2vw, 1.5rem) 0 0; padding: 0; border: 0; border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); overflow: hidden; }
.thh-facts__cell { min-width: 0; padding: .95rem 1.25rem; border-left: 1px solid var(--thh-line); }
.thh-facts__cell:first-child { border-left: 0; }
.thh-facts dt { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.thh-facts dd { margin: 0; font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--forest-900); }
@media (max-width: 599px) { .thh-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .thh-facts__cell:nth-child(odd) { border-left: 0; } .thh-facts__cell:nth-child(n+3) { border-top: 1px solid var(--thh-line); } }


@media (max-width: 599px) {
	.thh-logo img { width: 112px; }
	.thh-header__nav { gap: .4rem; }
	.thh-header__cta.thh-btn { padding: .45rem .8rem; min-height: 40px; }
	.thh-lang__item[aria-current] { display: none; }
	.thh-lang { padding: 2px; }
	.thh-lang__item { min-width: 42px; min-height: 38px; }
	.thh-search-toggle { width: 42px; height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Safari: min-height on an aspect-ratio box widened it past the viewport on phones */
@media (max-width: 900px) { .thh-gallery__main { min-height: 0; width: 100%; max-width: 100%; } }

/* Narrow phones (320-389px): keep the header on one line without horizontal scroll */
@media (max-width: 389px) {
	.thh-logo img { width: 92px; }
	.thh-header__inner { gap: .35rem; }
	.thh-header__nav { gap: .3rem; }
	.thh-header__cta.thh-btn { padding: .4rem .65rem; font-size: .8125rem; }
	.thh-search-toggle { width: 38px; height: 38px; }
	.thh-lang__item { min-width: 36px; min-height: 34px; padding: 0 .3rem; }
}
@media (max-width: 339px) {
	.thh-logo img { width: 80px; }
	.thh-header__cta.thh-btn { padding: .35rem .5rem; }
	.thh-lang__item { min-width: 32px; }
}
@media (max-width: 379px) { .thh-gates { grid-template-columns: minmax(0, 1fr); } .thh-gate h3, .thh-gate p { overflow-wrap: anywhere; } }

/* ---- Blog: listing, article, related, CTA ---- */
.thh-blog { padding-bottom: var(--thh-section); }
.thh-blog-head { margin-block: clamp(1rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2.25rem); }
.thh-blog-head > :is(p, h1) { max-width: 780px; }
.thh-blog-head h1 { margin: .35rem 0 .75rem; }
.thh-blog-topics ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.thh-blog-topics a { display: inline-block; padding: .4rem .9rem; border: 1px solid var(--thh-line-strong); border-radius: 999px; background: #fff; color: var(--wp--preset--color--forest-900); font-size: var(--wp--preset--font-size--sm); font-weight: 600; text-decoration: none; transition: background-color .2s, color .2s; }
.thh-blog-topics a:hover { background: var(--wp--preset--color--mint-100); }
.thh-blog-topics a[aria-current] { background: var(--wp--preset--color--forest-800); border-color: var(--wp--preset--color--forest-800); color: #fff; }
.thh-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.75rem); margin-bottom: clamp(2rem, 4vw, 3rem); }
@media (max-width: 1023px) { .thh-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .thh-post-grid { grid-template-columns: minmax(0, 1fr); } }
.thh-post-card { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; transition: box-shadow .25s, transform .25s; }
.thh-post-card:hover { box-shadow: var(--wp--preset--shadow--card, 0 14px 30px -18px rgb(14 42 30 / 40%)); transform: translateY(-2px); }
.thh-post-card__media { display: block; aspect-ratio: 16 / 10; background: var(--wp--preset--color--ivory-100); overflow: hidden; }
.thh-post-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.thh-post-card__body { display: flex; flex: 1; flex-direction: column; gap: .5rem; padding: 1.15rem 1.25rem 1.3rem; }
.thh-post-card__cat { margin: 0; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-post-card__title { margin: 0; font-size: var(--wp--preset--font-size--lg); line-height: 1.28; }
.thh-post-card__title a { color: var(--wp--preset--color--forest-900); text-decoration: none; }
.thh-post-card__title a::after { content: ""; position: absolute; inset: 0; }
.thh-post-card__title a:hover { color: var(--wp--preset--color--brand-600); }
.thh-post-card__text { margin: 0; color: var(--wp--preset--color--ink-600); font-size: var(--wp--preset--font-size--sm); }
.thh-post-card__meta { margin: auto 0 0; padding-top: .5rem; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }
.thh-pagination ul { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; margin: 0 0 2rem; padding: 0; list-style: none; }
.thh-pagination a, .thh-pagination span { display: inline-block; min-width: 2.5rem; padding: .5rem .8rem; border: 1px solid var(--thh-line-strong); border-radius: 10px; background: #fff; text-align: center; text-decoration: none; }
.thh-pagination .current { background: var(--wp--preset--color--forest-800); border-color: var(--wp--preset--color--forest-800); color: #fff; }

.thh-article { padding-bottom: var(--thh-section); }
.thh-article__body > * + * { margin-top: 1.15rem; }
.thh-article__body h2 { scroll-margin-top: calc(var(--thh-header-full) + 1rem); margin-top: 2.4rem; font-size: var(--wp--preset--font-size--xl); line-height: 1.2; }
.thh-article__body h3 { scroll-margin-top: calc(var(--thh-header-full) + 1rem); margin-top: 1.7rem; font-size: var(--wp--preset--font-size--lg); }
.thh-article__body p, .thh-article__body li { line-height: 1.72; }
.thh-article__body ul, .thh-article__body ol { padding-left: 1.35rem; }
.thh-article__body li + li { margin-top: .4rem; }
.thh-article__body a { color: var(--wp--preset--color--forest-800); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.thh-article__body a:hover { text-decoration-thickness: 2px; }
.thh-article__body figure { margin-block: 1.8rem; }
.thh-article__body figure img { display: block; width: 100%; height: auto; border-radius: var(--thh-radius); }
.thh-article__body figcaption { margin-top: .5rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-article__body .wp-block-table { overflow: visible; }
.thh-article__body table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); }
.thh-article__body th, .thh-article__body td { padding: .65rem .8rem; border: 1px solid var(--thh-line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
@media (max-width: 599px) { .thh-article__body th, .thh-article__body td { padding: .45rem .5rem; font-size: .8125rem; } }
.thh-article__body th { background: var(--wp--preset--color--ivory-100); }
.thh-article__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin: clamp(2rem, 4vw, 3rem) 0; padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: var(--thh-radius-l); }
.thh-article__cta h2 { margin: 0 0 .35rem; font-size: var(--wp--preset--font-size--xl); color: #fff; }
.thh-article__cta p { margin: 0; max-width: 46rem; color: color-mix(in srgb, #fff 82%, transparent); }
.thh-related-posts h2 { margin: 0 0 1.1rem; font-size: var(--wp--preset--font-size--xl); }
.thh-product-faq { margin-top: var(--thh-section); }
.thh-product-faq h2 { margin: 0 0 1.1rem; font-size: var(--wp--preset--font-size--xl); }
.thh-product-faq .thh-faq-list { margin-bottom: 0; }

.thh-home__insights { padding-block: var(--thh-section); }
.thh-latest-posts__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1.5rem; margin-bottom: 1.25rem; }
.thh-latest-posts__head h2 { margin: 0; font-size: var(--wp--preset--font-size--xl); }

/* ---- D7b: header balance, dropdown alignment, card legibility, section balance ---- */
@media (min-width: 1280px) {
	/* logo | menu centred in the free space | search, language, quote */
	.thh-header__inner { display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto auto auto; align-items: center; column-gap: .6rem; }
	.thh-header__nav { display: contents !important; }
	.thh-header__nav > .thh-nav { justify-self: center; margin-inline: 1rem; }
	.thh-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation__submenu-container {
		left: 50% !important; right: auto !important; top: calc(100% + .5rem) !important; transform: translateX(-50%);
	}
	.thh-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation__submenu-container::before {
		content: ""; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; /* hover bridge */
	}
}
.thh-nav .wp-block-navigation__submenu-container { gap: .1rem; }

/* Category cards: taller, stronger scrim, aligned text blocks */
.thh-cat-card { min-height: clamp(330px, 27vw, 390px); }
.thh-cat-card::after { background: linear-gradient(180deg, rgb(8 30 21 / 0%) 8%, rgb(8 30 21 / 55%) 38%, rgb(8 30 21 / 90%) 68%, rgb(8 30 21 / 96%) 100%); }
.thh-cat-card__title { min-height: 2.35em; color: #fff; text-shadow: 0 2px 12px rgb(0 0 0 / 45%); }
.thh-cat-card__text { color: rgb(255 255 255 / 94%); text-shadow: 0 1px 8px rgb(0 0 0 / 55%); }
.thh-cat-card__count { color: #9be8c4; text-shadow: 0 1px 6px rgb(0 0 0 / 50%); }

/* Quality control and similar: stat cards fill their column; text + image blocks share one height */
.thh-stats--three .thh-stats__inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.thh-stats--two .thh-stats__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 599px) { .thh-stats--three .thh-stats__inner { grid-template-columns: minmax(0, 1fr); } }
.thh-split--stretch { align-items: stretch; }
.thh-split--stretch > .thh-panel-card { display: flex; flex-direction: column; justify-content: center; }
.thh-split--stretch > figure, .thh-split--stretch > .wp-block-image { margin: 0; height: 100%; }
.thh-split--stretch > figure img, .thh-split--stretch > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; min-height: 260px; }
.thh-split--stretch .is-style-checks { margin-bottom: 0; }

/* Leadership + sales: both blocks are cards of equal height */
.thh-split--top > :has(> .thh-person) { display: flex; align-self: stretch; }
.thh-split--top .thh-person { flex: 1; align-content: center; align-items: center; padding: clamp(1.25rem, 2.5vw, 1.75rem); border: 1px solid var(--thh-line); border-radius: var(--thh-radius-l); background: #fff; }

/* Forms: a last single field spans the row */
.thh-rfq__grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
.thh-features--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1023px) { .thh-features--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 559px) { .thh-features--four { grid-template-columns: minmax(0, 1fr); } }

/* ---- Article (single post): online-newspaper layout ---- */
.thh-progress { position: fixed; z-index: 45; top: var(--thh-header-full); left: 0; right: 0; height: 3px; background: transparent; pointer-events: none; }
.admin-bar .thh-progress { top: calc(var(--thh-header-full) + var(--wp-admin--admin-bar--height, 32px)); }
.thh-progress span { display: block; height: 100%; background: var(--wp--preset--color--brand-400); transform: scaleX(0); transform-origin: left; }
.thh-article__head { margin: clamp(.75rem, 2vw, 1.5rem) 0 clamp(1.25rem, 2.5vw, 1.75rem); }
.thh-article__cat { margin: 0; }
.thh-article__cat a { display: inline-block; padding: .28rem .65rem; border-radius: 3px; background: var(--wp--preset--color--forest-800); color: #fff; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .09em; text-transform: uppercase; text-decoration: none; }
.thh-article__cat a:hover { background: var(--wp--preset--color--forest-950); }
.thh-article__title { max-width: 60rem; margin: .8rem 0 .9rem; font-size: clamp(2rem, 4.3vw, 3.4rem); line-height: 1.08; letter-spacing: -.02em; text-wrap: pretty; }
.thh-article__dek { max-width: 56rem; margin: 0 0 1.35rem; font-size: clamp(1.0625rem, 1.6vw, 1.3125rem); line-height: 1.5; color: var(--wp--preset--color--ink-600); text-wrap: pretty; }
.thh-article__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding-block: .85rem; border-block: 1px solid var(--thh-line-strong); }
.thh-byline { display: flex; align-items: center; gap: .75rem; }
.thh-byline__mark { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--wp--preset--color--forest-900); color: #fff; font-size: .75rem; font-weight: 800; letter-spacing: .04em; }
.thh-byline__text p { margin: 0; }
.thh-byline__who { font-weight: 700; color: var(--wp--preset--color--forest-900); }
.thh-byline__when { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-share { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.thh-share__label { margin-right: .3rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--wp--preset--color--ink-600); }
.thh-share__btn { display: inline-grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--thh-line-strong); border-radius: 50%; background: #fff; color: var(--wp--preset--color--forest-900); cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.thh-share__btn:hover { background: var(--wp--preset--color--forest-800); border-color: var(--wp--preset--color--forest-800); color: #fff; }
.thh-share__status { font-size: var(--wp--preset--font-size--xs); font-weight: 600; color: var(--wp--preset--color--brand-600); }
.thh-article__hero { margin: clamp(1.25rem, 2.5vw, 1.75rem) 0 clamp(1.5rem, 3vw, 2.5rem); }
.thh-article__hero img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); }
.thh-article__hero figcaption { margin-top: .55rem; padding-left: .75rem; border-left: 3px solid var(--wp--preset--color--brand-400); font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-article__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 21.5rem); align-items: start; gap: 15px; }
.thh-article__layout > * { margin-block: 0; }
.thh-article__main { min-width: 0; }
.thh-article__main > * + * { margin-top: 0; }
.thh-article__body { font-size: 1.125rem; }
.thh-article__body > p:first-child { font-size: 1.3125rem; line-height: 1.6; color: var(--wp--preset--color--forest-950); }
.thh-article__body > p:first-child::first-letter { float: left; margin: .1em .12em 0 0; font-size: 3.6em; line-height: .82; font-weight: 800; color: var(--wp--preset--color--forest-800); }
.thh-article__foot { margin-top: 2.5rem; display: grid; gap: 1.5rem; }
.thh-article__foot .thh-share { padding-block: 1rem; border-block: 1px solid var(--thh-line-strong); }
.thh-about-box { display: flex; gap: 1rem; padding: 1.25rem 1.35rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); }
.thh-about-box h2 { margin: 0 0 .3rem; font-size: var(--wp--preset--font-size--lg); }
.thh-about-box p { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-600); }
.thh-pager { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.thh-pager__link { display: grid; gap: .25rem; align-content: start; padding: 1rem 1.15rem; border: 1px solid var(--thh-line-strong); border-radius: var(--thh-radius); background: #fff; color: var(--wp--preset--color--forest-900); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.thh-pager__link:hover { border-color: var(--wp--preset--color--forest-800); box-shadow: var(--wp--preset--shadow--card); }
.thh-pager__link--next { grid-column: 2; text-align: right; }
.thh-pager__link--prev:only-child { grid-column: 1; }
.thh-pager__dir { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--brand-600); }
.thh-pager__title { font-weight: 650; line-height: 1.3; }
/* Sidebar */
.thh-article__aside { position: sticky; top: calc(var(--thh-header-full) + 1.25rem); display: grid; gap: 1.25rem; max-height: calc(100vh - var(--thh-header-full) - 2.5rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 2px; }
.admin-bar .thh-article__aside { top: calc(var(--thh-header-full) + var(--wp-admin--admin-bar--height, 32px) + 1.25rem); }
.thh-sidecard { padding: 1.15rem 1.2rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: #fff; }
.thh-sidecard__title, .thh-toc__title { margin: 0 0 .75rem; padding-bottom: .55rem; border-bottom: 2px solid var(--wp--preset--color--forest-800); font-size: var(--wp--preset--font-size--xs); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--forest-900); }
.thh-toc ol { margin: 0; padding: 0; list-style: none; }
.thh-toc li + li { margin-top: .1rem; }
.thh-toc a { display: block; padding: .3rem 0 .3rem .7rem; border-left: 2px solid transparent; font-size: var(--wp--preset--font-size--sm); line-height: 1.35; color: var(--wp--preset--color--ink-900); text-decoration: none; }
.thh-toc a:hover { color: var(--wp--preset--color--brand-600); }
.thh-toc a[aria-current] { border-left-color: var(--wp--preset--color--brand-400); font-weight: 700; color: var(--wp--preset--color--forest-900); }
.thh-toc__l3 a { padding-left: 1.5rem; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }
.thh-toc--inline { display: none; margin-top: 1.25rem; padding: 1rem 1.15rem; border: 1px solid var(--thh-line); border-radius: var(--thh-radius); background: var(--wp--preset--color--ivory-100); }
.thh-latest, .thh-topics { margin: 0; padding: 0; list-style: none; }
.thh-latest li + li { margin-top: .85rem; padding-top: .85rem; border-top: 1px solid var(--thh-line); }
.thh-latest__item { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: .8rem; align-items: center; text-decoration: none; color: inherit; }
.thh-latest__thumb { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 6px; background: var(--wp--preset--color--ivory-100); }
.thh-latest__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.thh-latest__text { display: grid; gap: .25rem; }
.thh-latest__title { font-size: var(--wp--preset--font-size--sm); font-weight: 650; line-height: 1.3; color: var(--wp--preset--color--forest-900); }
.thh-latest__item:hover .thh-latest__title { color: var(--wp--preset--color--brand-600); }
.thh-latest time { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-600); }
.thh-topics a { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--thh-line); font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--forest-900); text-decoration: none; }
.thh-topics li:last-child a { border-bottom: 0; }
.thh-topics a:hover { color: var(--wp--preset--color--brand-600); }
.thh-topics__n { min-width: 1.6rem; padding: .05rem .4rem; border-radius: 999px; background: var(--wp--preset--color--mint-100); font-size: var(--wp--preset--font-size--xs); text-align: center; }
.thh-sidecard--cta { border: 0; background: var(--wp--preset--color--forest-900); color: #fff; }
.thh-sidecard--cta h2 { margin: 0 0 .4rem; font-size: var(--wp--preset--font-size--lg); color: #fff; }
.thh-sidecard--cta p { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--sm); color: color-mix(in srgb, #fff 82%, transparent); }
@media (max-width: 1023px) {
	.thh-article__layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.thh-article__aside { position: static; max-height: none; overflow: visible; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.thh-article__aside .thh-toc--aside { display: none; }
	.thh-article__aside .thh-sidecard--cta { grid-column: 1 / -1; }
	.thh-toc--inline { display: block; }
}
@media (max-width: 639px) {
	.thh-article__aside { grid-template-columns: minmax(0, 1fr); }
	.thh-article__bar { align-items: flex-start; }
	.thh-article__hero img { aspect-ratio: 16 / 10; }
	.thh-article__body { font-size: 1.0625rem; }
	.thh-article__body > p:first-child { font-size: 1.1875rem; }
	.thh-pager { grid-template-columns: minmax(0, 1fr); }
	.thh-pager__link--next { grid-column: 1; text-align: left; }
}

/* ---- D9: phone/tablet header, off-canvas menu, hero, alignment ---- */
.thh-mtoggle { display: none; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid var(--thh-line-strong); border-radius: 50%; background: #fff; color: var(--wp--preset--color--forest-900); cursor: pointer; }
.thh-mtoggle:hover { background: var(--wp--preset--color--mint-100); }
@media (max-width: 1279px) {
	.thh-header__nav > .thh-nav { display: none !important; }
	.thh-mtoggle { display: inline-grid; }
	.thh-header__inner { justify-content: space-between; }
	.thh-header__nav { margin-left: auto; }
}
@media (max-width: 899px) { .thh-header__cta { display: none !important; } }
@media (max-width: 599px) { .thh-header__inner { gap: .5rem; } .thh-header__nav { gap: .45rem; } }

/* Off-canvas menu: a root layer and one layer per parent item; children slide in over the root with a back button. */
.thh-mnav[hidden] { display: none; }
.thh-mnav { position: fixed; inset: 0; z-index: 80; }
.thh-mnav__backdrop { position: absolute; inset: 0; background: rgb(8 30 21 / 55%); opacity: 0; transition: opacity .25s ease; }
.thh-mnav__sheet { position: absolute; top: 0; right: 0; bottom: 0; width: min(92vw, 25rem); overflow: hidden; background: var(--wp--preset--color--ivory-50); box-shadow: -24px 0 48px -24px rgb(8 30 21 / 55%); transform: translateX(100%); transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
.thh-mnav.is-open .thh-mnav__backdrop { opacity: 1; }
.thh-mnav.is-open .thh-mnav__sheet { transform: none; }
.thh-mnav__panel { position: absolute; inset: 0; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; background: var(--wp--preset--color--ivory-50); transition: transform .3s cubic-bezier(.2, .7, .2, 1), visibility .3s; }
.thh-mnav__panel:not(.is-root) { transform: translateX(100%); visibility: hidden; box-shadow: -16px 0 32px -24px rgb(8 30 21 / 45%); }
.thh-mnav__panel.is-active { transform: none; visibility: visible; }
.thh-mnav__panel.is-root.is-under { transform: translateX(-28%); visibility: hidden; }
.thh-mnav__bar { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: .5rem; min-height: 64px; padding: .5rem .75rem .5rem 1.25rem; border-bottom: 1px solid var(--thh-line); background: #fff; }
.thh-mnav__title { flex: 1; font-weight: 750; font-size: var(--wp--preset--font-size--md); color: var(--wp--preset--color--forest-900); }
.thh-mnav__back { display: inline-flex; align-items: center; gap: .15rem; min-height: 44px; margin-left: -.5rem; padding: 0 .6rem 0 .3rem; border: 0; border-radius: 999px; background: none; font: 650 var(--wp--preset--font-size--sm) var(--wp--preset--font-family--sans); color: var(--wp--preset--color--brand-600); cursor: pointer; }
.thh-mnav__back + .thh-mnav__title { text-align: center; }
.thh-mnav__back + .thh-mnav__title + .thh-mnav__close { order: 3; }
.thh-mnav__close { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--wp--preset--color--mint-100); color: var(--wp--preset--color--forest-900); cursor: pointer; }
.thh-mnav__list { margin: 0; padding: .5rem 0; list-style: none; }
.thh-mnav__list li + li { border-top: 1px solid var(--thh-line); }
.thh-mnav__link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 56px; padding: .75rem 1.25rem; border: 0; background: none; font: 650 1.125rem/1.3 var(--wp--preset--font-family--sans); color: var(--wp--preset--color--forest-900); text-align: left; text-decoration: none; cursor: pointer; }
.thh-mnav__link:hover, .thh-mnav__link:focus-visible { background: var(--wp--preset--color--mint-100); }
.thh-mnav__next svg { flex: none; color: var(--wp--preset--color--brand-600); }
.thh-mnav__foot { display: grid; gap: .75rem; margin-top: auto; padding: 1.25rem; border-top: 1px solid var(--thh-line); background: #fff; }
.thh-mnav__foot .thh-btn { justify-content: center; min-height: 48px; }
.thh-mnav__phone { text-align: center; font-weight: 650; color: var(--wp--preset--color--forest-900); text-decoration: none; }
body.thh-mnav-open { overflow: hidden; }
body.thh-mnav-open :is(.thh-fab, .thh-consent, .thh-consent-mini) { display: none !important; }
@media (prefers-reduced-motion: reduce) { .thh-mnav__sheet, .thh-mnav__panel, .thh-mnav__backdrop { transition: none; } }

/* Phone hero: no background video or photo, a wood-grain line pattern instead; content centred in the banner. */
@media (max-width: 767px) {
	.thh-hero__media, .thh-hero__toggle { display: none !important; }
	.thh-hero {
		align-items: center; text-align: center; min-height: clamp(460px, calc(100svh - var(--thh-header-h) - 120px), 620px);
		padding-block: clamp(2.5rem, 9vw, 3.5rem);
		background: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 400 640%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M-20 -20 C 90 -2%2C 200 -41%2C 420 -12%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 6 C 90 36%2C 200 -18%2C 420 10%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 32 C 90 47%2C 200 7%2C 420 28%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 58 C 90 70%2C 200 53%2C 420 75%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 84 C 90 117%2C 200 92%2C 420 88%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 110 C 90 134%2C 200 104%2C 420 135%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 136 C 90 159%2C 200 114%2C 420 132%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 162 C 90 175%2C 200 151%2C 420 178%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 188 C 90 200%2C 200 192%2C 420 172%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 214 C 90 237%2C 200 188%2C 420 191%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 240 C 90 262%2C 200 242%2C 420 254%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 266 C 90 290%2C 200 263%2C 420 256%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 292 C 90 319%2C 200 277%2C 420 296%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 318 C 90 340%2C 200 309%2C 420 315%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 344 C 90 378%2C 200 321%2C 420 340%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 370 C 90 384%2C 200 369%2C 420 346%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 396 C 90 408%2C 200 399%2C 420 411%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 422 C 90 440%2C 200 413%2C 420 422%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 448 C 90 460%2C 200 424%2C 420 436%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 474 C 90 500%2C 200 448%2C 420 484%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 500 C 90 524%2C 200 511%2C 420 497%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 526 C 90 545%2C 200 536%2C 420 501%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 552 C 90 571%2C 200 559%2C 420 552%22 stroke=%22%23fff%22 stroke-opacity=%220.05%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 578 C 90 606%2C 200 556%2C 420 565%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 604 C 90 636%2C 200 604%2C 420 587%22 stroke=%22%23fff%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cpath d=%22M-20 630 C 90 653%2C 200 653%2C 420 647%22 stroke=%22%23fff%22 stroke-opacity=%220.09%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cellipse cx=%22300%22 cy=%22470%22 rx=%2214%22 ry=%227%22 transform=%22rotate%28-18 300 470%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.22%22 stroke-width=%221.3%22 fill=%22none%22/%3E%3Cellipse cx=%22300%22 cy=%22470%22 rx=%2229%22 ry=%2215%22 transform=%22rotate%28-18 300 470%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.19%22 stroke-width=%221.3%22 fill=%22none%22/%3E%3Cellipse cx=%22300%22 cy=%22470%22 rx=%2244%22 ry=%2223%22 transform=%22rotate%28-18 300 470%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.16%22 stroke-width=%221.3%22 fill=%22none%22/%3E%3Cellipse cx=%22300%22 cy=%22470%22 rx=%2259%22 ry=%2231%22 transform=%22rotate%28-18 300 470%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.13%22 stroke-width=%221.3%22 fill=%22none%22/%3E%3Cellipse cx=%22300%22 cy=%22470%22 rx=%2274%22 ry=%2239%22 transform=%22rotate%28-18 300 470%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.10%22 stroke-width=%221.3%22 fill=%22none%22/%3E%3Cellipse cx=%22300%22 cy=%22470%22 rx=%2289%22 ry=%2247%22 transform=%22rotate%28-18 300 470%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.07%22 stroke-width=%221.3%22 fill=%22none%22/%3E%3Cellipse cx=%2270%22 cy=%22150%22 rx=%2210%22 ry=%225%22 transform=%22rotate%2812 70 150%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.16%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cellipse cx=%2270%22 cy=%22150%22 rx=%2222%22 ry=%2211%22 transform=%22rotate%2812 70 150%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.13%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cellipse cx=%2270%22 cy=%22150%22 rx=%2234%22 ry=%2217%22 transform=%22rotate%2812 70 150%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.10%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3Cellipse cx=%2270%22 cy=%22150%22 rx=%2246%22 ry=%2223%22 transform=%22rotate%2812 70 150%29%22 stroke=%22%2319b57a%22 stroke-opacity=%220.07%22 stroke-width=%221.2%22 fill=%22none%22/%3E%3C/svg%3E") center / 100% 100% no-repeat, radial-gradient(ellipse 90% 60% at 50% 30%, rgb(25 181 122 / 16%), transparent 70%), linear-gradient(165deg, var(--wp--preset--color--forest-800), var(--wp--preset--color--forest-950) 70%);
	}
	.thh-hero::before { display: none; }
	.thh-hero__inner { justify-items: center; }
	.thh-hero__inner > * { margin-inline: auto; }
	.thh-hero .is-style-eyebrow { justify-content: center; text-align: center; }
	.thh-hero .is-style-eyebrow::before { display: none; }
	.thh-hero__lead { max-width: 34ch; }
	.thh-hero__actions { justify-content: center; }
}

/* Stat grid: every cell in a column starts on the same edge */
@media (max-width: 1099px) {
	.thh-stats:not(.thh-stats--cards):not(.thh-stats--inline) .thh-stats__inner > .thh-stat:nth-child(odd) { padding-left: 0; padding-right: 1rem; }
	.thh-stats:not(.thh-stats--cards):not(.thh-stats--inline) .thh-stats__inner > .thh-stat:nth-child(even) { padding-left: 1.25rem; padding-right: 0; }
	.thh-stats:not(.thh-stats--cards):not(.thh-stats--inline) .thh-stats__inner > .thh-stat:last-child:nth-child(odd) { grid-column: 1 / -1; padding-right: 0; }
}

/* Numbered steps stay in one column, in order, on phones */
@media (max-width: 700px) { .thh-process { grid-template-columns: minmax(0, 1fr); } }

/* Partner logos: one trimmed artwork each, sized so they carry the same visual weight */
.thh-logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; justify-items: center; gap: clamp(1rem, 3vw, 2.5rem); max-width: 40rem; }
.thh-logos img { width: auto; height: auto; max-width: 100%; }
.thh-logos img[alt="IKEA"] { height: clamp(36px, 4.4vw, 48px); }
.thh-logos img[alt^="Costco"] { height: clamp(30px, 3.8vw, 40px); }
.thh-logos img[alt^="Trade"] { height: clamp(22px, 2.8vw, 30px); }
@media (max-width: 479px) {
	.thh-logos img[alt="IKEA"] { height: 34px; }
	.thh-logos img[alt^="Costco"] { height: 28px; }
	.thh-logos img[alt^="Trade"] { height: 20px; }
}
.thh-toc__bar { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .75rem; border-bottom: 2px solid var(--wp--preset--color--forest-800); }
.thh-toc__bar .thh-toc__title { margin: 0; border: 0; }
.thh-toc__toggle { display: inline-grid; place-items: center; flex: none; width: 34px; height: 34px; margin-bottom: .2rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--wp--preset--color--forest-900); cursor: pointer; }
.thh-toc__toggle:hover { background: var(--wp--preset--color--mint-100); }
.thh-toc__toggle svg { transition: transform .2s; }
.thh-toc__toggle[aria-expanded="false"] svg { transform: rotate(-90deg); }
.thh-toc ol[hidden] { display: none; }
.thh-toc__bar:has(+ ol[hidden]) { margin-bottom: 0; border-bottom-color: transparent; }

/* Laptop widths (1280-1439px): one-line menu with the short quote label so the bar never wraps */
@media (min-width: 1280px) {
	.thh-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: clamp(.9rem, 1.35vw, 1.75rem); }
	.thh-nav .wp-block-navigation-item__content { white-space: nowrap; }
}
@media (min-width: 1280px) and (max-width: 1439px) {
	.thh-nav .wp-block-navigation-item__content { font-size: .9375rem; }
	.thh-header__cta .thh-btn__long { display: none; }
	.thh-header__cta .thh-btn__short { display: inline; }
}
/* Card bodies never grow past the card (a grid track defaults to max-content) */
.thh-cat-card__body { min-width: 0; grid-template-columns: minmax(0, 1fr); }
/* Very narrow phones: a long hyphenated term may break rather than push the page wider */
@media (max-width: 359px) { .thh-nw { white-space: normal; overflow-wrap: anywhere; } }

/* ---- Keyword copy: long text under the category product grid and at the end of pages ---- */
.thh-seotext { margin-top: var(--thh-section); padding-top: var(--thh-section); border-top: 1px solid var(--thh-line-strong); }
.thh-seotext__inner { max-width: 62rem; }
.thh-seotext--post { margin-top: 2.5rem; padding-top: 1.5rem; }
.thh-seotext--post .thh-seotext__inner { max-width: none; }
.thh-seotext--post .thh-seotext__links { margin-top: 0; }
.thh-seotext--post .thh-seotext__links h2 { margin: 0 0 .7rem; font-size: var(--wp--preset--font-size--lg); }
.thh-seotext h2 { margin: 2.25rem 0 .7rem; font-size: var(--wp--preset--font-size--xl); line-height: 1.2; }
.thh-seotext__inner > h2:first-child { margin-top: 0; }
.thh-seotext h3 { margin: 1.5rem 0 .5rem; font-size: var(--wp--preset--font-size--lg); }
.thh-seotext p, .thh-seotext li { line-height: 1.72; }
.thh-seotext p { margin: 0 0 1rem; }
.thh-seotext ul, .thh-seotext ol { margin: 0 0 1.1rem; padding-left: 1.3rem; }
.thh-seotext li + li { margin-top: .35rem; }
.thh-seotext a { color: var(--wp--preset--color--forest-800); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.thh-seotext a:hover { text-decoration-thickness: 2px; }
.thh-seotext table { width: 100%; margin: 0 0 1.4rem; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); }
.thh-seotext__scroll { max-width: 100%; margin: 0 0 1.4rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.thh-seotext__scroll table { margin: 0; }
.thh-seotext__scroll:focus-visible { outline: 2px solid var(--wp--preset--color--forest-800); outline-offset: 2px; }
.thh-seotext th, .thh-seotext td { padding: .65rem .8rem; border: 1px solid var(--thh-line); text-align: left; vertical-align: top; }
.thh-seotext th { background: var(--wp--preset--color--ivory-100); }
.thh-seotext .thh-faq-list { margin-bottom: 0; }
.thh-seotext__links { margin-top: 2.25rem; }
.thh-seotext__links ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.thh-seotext__links li + li { margin: 0; }
.thh-seotext__links a { display: inline-block; padding: .4rem .9rem; border: 1px solid var(--thh-line-strong); border-radius: 999px; background: #fff; font-size: var(--wp--preset--font-size--sm); font-weight: 600; text-decoration: none; }
.thh-seotext__links a:hover { background: var(--wp--preset--color--mint-100); }
@media (max-width: 599px) { .thh-seotext th, .thh-seotext td { padding: .45rem .5rem; font-size: .8125rem; } }
@media (max-width: 359px) { .thh-seotext th, .thh-seotext td { padding: .4rem .35rem; font-size: .75rem; } }
