/* THI demo: all front-end and editor styling. Tokens first; colours come from theme.json where they can. */
:root {
	--ink: #14202e; --charcoal: #2e2e2e; --slate: #475467; --paper: #f7f6f2; --white: #fff; --amber: #e8863a; --teal: #0f766e; --copper: #b45a2b;
	--line: #dedcd3; --line-dark: #33414f; --mist: #c9d1db;
	--accent: var(--amber); --accent-text: #a3501a; --accent-on-dark: var(--amber);
	--gutter: 1rem; --sec: clamp(3rem, 8vw, 5.5rem); --radius: 8px;
	--bar: 64px;
}
.thi-svc-foam { --accent: var(--teal); --accent-text: var(--teal); --accent-on-dark: #5eead4; }
.thi-svc-superfoil { --accent: var(--copper); --accent-text: #a84f22; --accent-on-dark: #f0a777; }
@media (min-width: 700px) { :root { --gutter: 2rem; } }

html { scroll-behavior: smooth; scroll-padding-top: 1rem; scroll-padding-bottom: calc(var(--bar) + 1.5rem); -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
body { overflow-wrap: break-word; }
img, svg { max-width: 100%; height: auto; }
a { text-underline-offset: 0.16em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; border-radius: 2px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.thi-skip { position: absolute; left: 0.5rem; top: -4rem; z-index: 100; background: var(--ink); color: #fff; padding: 0.75rem 1rem; border-radius: 6px; }
.thi-skip:focus { top: 0.5rem; }

/* Template parts sit flush */
.wp-site-blocks > * { margin-block: 0; }
.thi-main .entry-content > * { margin-block: 0; }

/* Sections */
.sec { padding: var(--sec) var(--gutter); }
.sec-paper { background: var(--paper); }
.sec-white { background: var(--white); }
.sec-ink { background: var(--ink); color: var(--paper); }
.sec-ink a:not(.wp-block-button__link):not(.thi-btn) { color: inherit; }
.sec-tight { padding-block: clamp(2rem, 5vw, 3rem); }
.sec > * + * { margin-block-start: 1.25rem; }
.sec-head { max-width: 46rem; margin-block-end: clamp(1.5rem, 4vw, 2.5rem) !important; }
.sec-head > * { margin-block: 0; }
.sec-head > * + * { margin-block-start: 0.75rem; }
.is-layout-constrained > .sec-head { margin-inline: auto; width: 100%; max-width: 1160px; }
.is-layout-constrained > .sec-head > * { max-width: 46rem; }
.lede { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: var(--slate); }
.sec-ink .lede { color: var(--mist); }
.eyebrow { font-family: var(--wp--preset--font-family--manrope); font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-text); margin: 0; }
.sec-ink .eyebrow { color: var(--accent-on-dark); }
.prose { max-width: 46rem; }
.is-layout-constrained > .prose { margin-inline: auto; }
h2, h3 { text-wrap: balance; }
.sec h3 { margin-block: 0; }
.wp-block-list { padding-inline-start: 1.25rem; margin-block: 0; }
.wp-block-list li + li { margin-block-start: 0.4rem; }

/* A sub-heading directly in a section needs air above it */
.sec.is-layout-constrained > h3.wp-block-heading { margin-block: 2.25rem 0.75rem; }
.thi-case + .thi-case { margin-block-start: 2.5rem; }
.thi-case__body > * { margin-block: 0; }
.thi-case__body > * + * { margin-block-start: 0.75rem; }

/* Sub-heading inside a two-column block */
.thi-suit { margin-block-start: 2.25rem !important; }
.thi-suit h3 { margin-block-end: 0.75rem !important; }

/* Grids */
.grid-2, .grid-3, .grid-4 { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
.grid-2 > *, .grid-3 > *, .grid-4 > * { margin-block: 0 !important; min-width: 0; }
@media (min-width: 700px) {
	.grid-2, .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
}
@media (min-width: 1000px) {
	.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.grid-split { grid-template-columns: 5fr 7fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
	.grid-split-even { grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
}
.card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; }
.sec-white .card { background: var(--paper); }
.sec-ink .card { background: transparent; border-color: var(--line-dark); }
.card > * { margin-block: 0; }
.card > * + * { margin-block-start: 0.5rem; }
.card p { font-size: 0.975rem; }
.sec-ink .card p { color: var(--mist); }

/* Buttons */
.wp-block-button__link, .thi-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; text-decoration: none; transition: background-color .15s ease; text-align: center; }
.wp-block-button__link:hover { background: #ffba3a; }
.wp-block-button__link:focus-visible, .thi-btn:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }
.sec-paper .wp-block-button__link:focus-visible, .sec-white .wp-block-button__link:focus-visible { outline-color: var(--ink); }
.wp-block-buttons { gap: 0.75rem; }
.is-style-outline .wp-block-button__link, .wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: inherit; border: 2px solid currentColor; padding: calc(0.875rem - 2px) calc(1.375rem - 2px); }
.is-style-outline .wp-block-button__link:hover { background: rgba(128, 128, 128, .14); }
.thi-btn { font: 800 1rem/1.25 var(--wp--preset--font-family--manrope); padding: 0.75rem 1.25rem; border-radius: 6px; background: var(--amber); color: var(--ink); border: 2px solid var(--amber); cursor: pointer; }
.thi-btn--ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.thi-btn--ghost { background: transparent; color: inherit; border-color: currentColor; }
.thi-btn--ghost-dark { background: transparent; color: var(--ink); border-color: var(--ink); }
.thi-icon { flex: none; }

/* Demo banner */
.thi-demo-banner { background: #fde3cf; color: var(--ink); font-size: 0.8125rem; line-height: 1.35; text-align: center; padding: 0.375rem var(--gutter); }

/* Cookie panel: in page flow, so it covers nothing */
.thi-cookies { background: var(--white); border-bottom: 1px solid var(--line); padding: 0.875rem var(--gutter); font-size: 0.9rem; }
.thi-cookies[hidden] { display: none; }
.thi-cookies__inner { max-width: 1160px; margin: 0 auto; display: grid; gap: 0.625rem; }
.thi-cookies__text { margin: 0; line-height: 1.45; }
.thi-cookies__form { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: space-between; }
.thi-cookies__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; flex: 1 1 18rem; }
.thi-cookies .thi-btn { font-size: 0.875rem; padding: 0.5rem 0.625rem; min-height: 44px; }
.thi-cookies__more { flex: 1 1 100%; }
.thi-cookies__more summary { cursor: pointer; font-weight: 600; min-height: 32px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: .16em; }
.thi-cookies__groups { display: grid; gap: 0.5rem; padding-block: 0.5rem; max-width: 30rem; }
@media (min-width: 900px) {
	.thi-cookies__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 2rem; }
	.thi-cookies__form { flex-wrap: nowrap; }
	.thi-cookies__more { flex: 0 1 auto; }
	.thi-cookies__actions { flex: 0 0 auto; grid-template-columns: auto auto; }
}

/* Header */
.thi-header { background: var(--ink); border-bottom: 1px solid var(--line-dark); position: relative; z-index: 20; }
/* Navy bar like the van sign: light text on the bar itself; dropdowns and the phone menu panel stay light. */
.thi-header .thi-nav__inline > .thi-nav__list > li > a, .thi-header .thi-header-phone, .thi-header .thi-nav__toggle > summary { color: #fff; }
.thi-header .thi-nav__toggle > summary .thi-nav__icon, .thi-header .thi-nav__toggle > summary .thi-nav__icon::before, .thi-header .thi-nav__toggle > summary .thi-nav__icon::after { background: #fff; }
.thi-header a:focus-visible, .thi-header summary:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }
.thi-header__inner { max-width: 1160px; margin: 0 auto; padding: 0.625rem var(--gutter); box-sizing: content-box; display: flex; align-items: center; gap: 1rem; }
.thi-header__inner > * { margin-block: 0 !important; }
@font-face { font-family: "Josefin Sans"; src: url("../fonts/josefin-sans-latin-wght.woff2") format("woff2"); font-weight: 100 700; font-display: swap; }
.thi-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--amber); margin-inline-end: auto; line-height: 1; text-decoration: none; --thi-dot: #fff; }
.thi-logo__mark { flex: none; display: block; width: 51px; height: 44px; }
/* Proportions from the business card: cap height 37% of the mark, Josefin Sans 500, 0.02em tracking. */
.thi-logo__word { display: flex; flex-direction: column; font: 500 22.5px/23px "Josefin Sans", var(--wp--preset--font-family--manrope); letter-spacing: 0.02em; text-transform: uppercase; color: #fff; padding-top: 5px; }
@media (max-width: 400px) { .thi-logo { gap: 9px; } .thi-logo__mark { width: 42px; height: 36px; } .thi-logo__word { font-size: 18.5px; line-height: 19px; padding-top: 4px; } }
.thi-nav__list { list-style: none; margin: 0; padding: 0; }
.thi-nav__list a { font-weight: 600; text-decoration: none; color: var(--ink); display: flex; align-items: center; min-height: 44px; }
.thi-nav__list a:hover, .thi-nav__list .current-menu-item > a { text-decoration: underline; }
.thi-nav__list .current-menu-item > a { text-decoration-thickness: 2px; text-decoration-color: var(--accent); }
.thi-nav__toggle summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 0.5rem; min-height: 44px; padding-inline: 0.5rem; font-weight: 600; }
.thi-nav__toggle summary::-webkit-details-marker { display: none; }
.thi-nav__icon, .thi-nav__icon::before, .thi-nav__icon::after { display: block; width: 18px; height: 2px; background: var(--ink); position: relative; }
.thi-nav__icon::before, .thi-nav__icon::after { content: ""; position: absolute; left: 0; }
.thi-nav__icon::before { top: -6px; } .thi-nav__icon::after { top: 6px; }
.thi-nav__panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--paper); border-block: 1px solid var(--line); padding: 0.5rem var(--gutter) 1rem; }
.thi-nav__panel li + li { border-top: 1px solid var(--line); }
.thi-nav__inline { display: none; }
.thi-header-phone { display: none; }
@media (min-width: 1040px) {
	.thi-nav__toggle { display: none; }
	.thi-nav__inline { display: block; }
	.thi-nav__inline .thi-nav__list { display: flex; gap: 1.5rem; font-size: 0.975rem; }
	.thi-header-phone { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--wp--preset--font-family--manrope); font-weight: 800; text-decoration: none; color: var(--ink); white-space: nowrap; min-height: 44px; }
}

/* Heroes */
.thi-hero { background: var(--ink); color: var(--paper); border-top: 4px solid var(--accent); padding: clamp(2rem, 6vw, 4.5rem) var(--gutter) clamp(2.5rem, 6vw, 4.5rem); }
.thi-hero__grid { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); max-width: 1160px; margin-inline: auto; align-items: center; }
.thi-hero__grid > * { margin-block: 0 !important; min-width: 0; }
.thi-hero__copy > * { margin-block: 0; }
.thi-hero__copy > * + * { margin-block-start: 1rem; }
.thi-hero h1 { max-width: 15ch; }
.thi-hero .eyebrow { color: var(--accent-on-dark); }
.thi-hero__sub { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: #dfe4ea; max-width: 38rem; }
.thi-hero .wp-block-buttons { margin-block-start: 1.5rem; }
.thi-hero .wp-block-button { flex: 1 1 100%; }
.thi-hero .wp-block-button__link { width: 100%; }
@media (min-width: 560px) { .thi-hero .wp-block-button { flex: 0 1 auto; } .thi-hero .wp-block-button__link { width: auto; } }
@media (min-width: 900px) { .thi-hero__grid { grid-template-columns: 7fr 5fr; } .thi-hero--wide-img .thi-hero__grid { grid-template-columns: 1fr 1fr; } }
.thi-contact-row { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; margin: 0; }
.thi-contact-row a { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; font-weight: 600; }
.thi-hero .thi-contact-row { margin-block-start: 0.75rem; }
.thi-hero .thi-hero__cover { display: inline-block; border-inline-start: 3px solid var(--accent); padding-inline-start: 0.75rem; font-size: 0.9375rem; line-height: 1.4; color: #dfe4ea; }
.thi-page-hero { background: var(--ink); color: var(--paper); padding: clamp(2.25rem, 6vw, 4rem) var(--gutter); border-top: 4px solid var(--amber); }
.thi-page-hero > * { max-width: 1160px; margin-inline: auto; }
.thi-page-hero > * + * { margin-block-start: 0.75rem; }
.thi-page-hero h1 { font-size: clamp(2rem, 5.5vw, 3.25rem); }
.thi-page-hero p { color: #dfe4ea; font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.thi-page-hero > p { max-width: 1160px; }
.thi-page-hero > p > * { max-width: 40rem; }

/* Figures and the Demo image chip */
.thi-fig { margin: 0; position: relative; }
/* A two-column group left with one item (its evidence panel removed) uses the full row, at a readable width. */
.grid-2 > :only-child { grid-column: 1 / -1; max-width: 46rem; }
.thi-fig img, .thi-fig video { display: block; width: 100%; height: auto; border-radius: var(--radius); object-fit: cover; }
.thi-fig figcaption { margin: 0.5rem 0 0; font-size: 0.8125rem; color: var(--slate); line-height: 1.4; text-align: left; }
.sec-ink .thi-fig figcaption, .thi-hero .thi-fig figcaption { color: var(--mist); }
.thi-chip { position: absolute; top: 0.625rem; left: 0.625rem; background: var(--ink); color: #fff; font: 700 0.75rem/1 var(--wp--preset--font-family--inter); padding: 0.375rem 0.5rem; border-radius: 4px; border: 1px solid rgba(255, 255, 255, .5); }
.thi-fig--burned .thi-chip { display: none; }

/* Tags */
.thi-tag { display: inline-block; font: 700 0.8125rem/1.3 var(--wp--preset--font-family--inter); background: #fde3cf; color: var(--ink); padding: 0.3rem 0.55rem; border-radius: 4px; margin: 0; }
mark.thi-confirm { background: #fde3cf; color: var(--ink); font-size: 0.85em; font-weight: 600; padding: 0.05em 0.35em; border-radius: 3px; white-space: nowrap; }

/* Evidence panels */
.thi-evidence { border: 2px dashed #8d97a5; border-radius: var(--radius); padding: 1.25rem; background: var(--white); }
.thi-evidence > * { margin-block: 0; }
.thi-evidence > * + * { margin-block-start: 0.625rem; }
.thi-evidence__tag { display: inline-block; font: 800 0.75rem/1.3 var(--wp--preset--font-family--manrope); letter-spacing: 0.04em; text-transform: uppercase; background: #fde3cf; color: var(--ink); padding: 0.3rem 0.55rem; border-radius: 4px; }
.thi-evidence p:not(.thi-evidence__tag), .thi-evidence li { font-size: 0.95rem; color: var(--slate); }
.sec-ink .thi-evidence { background: transparent; border-color: #7b8795; }
.sec-ink .thi-evidence h3 { color: var(--paper); }
.sec-ink .thi-evidence p:not(.thi-evidence__tag), .sec-ink .thi-evidence li { color: var(--mist); }

/* Callout: the things that matter most */
.thi-callout { color: var(--ink); border-inline-start: 5px solid var(--accent); background: var(--white); padding: 1.25rem; border-radius: 0 var(--radius) var(--radius) 0; }
.sec-white .thi-callout { background: var(--paper); }
.thi-callout > * { margin-block: 0; }
.thi-callout > * + * { margin-block-start: 0.625rem; }
.thi-callout__big { font-family: var(--wp--preset--font-family--manrope); font-weight: 700; font-size: var(--wp--preset--font-size--large); line-height: 1.4; }

/* Steps */
.thi-steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; gap: 0; }
.thi-steps > li { counter-increment: step; position: relative; padding: 0 0 1.5rem 3.25rem; margin: 0; }
.thi-steps > li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 2.25rem; height: 2.25rem; border-radius: 50%; display: grid; place-items: center; font: 800 0.9375rem/1 var(--wp--preset--font-family--manrope); background: var(--ink); color: #fff; }
.thi-steps > li::after { content: ""; position: absolute; left: calc(1.125rem - 1px); top: 2.5rem; bottom: 0.25rem; width: 2px; background: var(--line); }
.thi-steps > li:last-child { padding-bottom: 0; }
.thi-steps > li:last-child::after { display: none; }
.thi-steps > li strong { display: block; font-family: var(--wp--preset--font-family--manrope); font-size: 1.0625rem; line-height: 1.35; margin-block-end: 0.15rem; }
.thi-steps > li + li { margin-block-start: 0; }
.sec-ink .thi-steps > li::before { background: var(--accent); color: var(--ink); }
.thi-svc-foam .sec-ink .thi-steps > li::before, .thi-svc-superfoil .sec-ink .thi-steps > li::before { color: #fff; }
.sec-ink .thi-steps > li::after { background: var(--line-dark); }
@media (min-width: 900px) {
	.thi-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; }
	.thi-steps > li:nth-last-child(2) { padding-bottom: 0; }
	.thi-steps > li:nth-last-child(2)::after { display: none; }
}

/* Check list */
.thi-ticks { list-style: none; padding: 0; }
.thi-ticks > li { position: relative; padding-inline-start: 1.625rem; }
.thi-ticks > li::before { content: ""; position: absolute; left: 0.2rem; top: 0.35em; width: 0.5rem; height: 0.85rem; border: solid var(--accent-text); border-width: 0 2.5px 2.5px 0; transform: rotate(40deg); }
.sec-ink .thi-ticks > li::before { border-color: var(--accent-on-dark); }
.thi-crosses > li::before { border: 0; top: 0.3em; left: 0; width: 1rem; height: 1rem; transform: none; background: linear-gradient(45deg, transparent 43%, #8a1c12 43%, #8a1c12 57%, transparent 57%), linear-gradient(-45deg, transparent 43%, #8a1c12 43%, #8a1c12 57%, transparent 57%); }

/* Service tiles */
.thi-service { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--c, var(--amber)); border-radius: var(--radius); overflow: hidden; padding: 0; }
.thi-service--foam { --c: var(--teal); --ct: var(--teal); } .thi-service--superfoil { --c: var(--copper); --ct: #a84f22; } .thi-service--solar { --c: var(--amber); --ct: #8a5a00; }
.thi-service > * { margin-block: 0 !important; }
.thi-service .thi-fig img { border-radius: 0; }
.thi-service .thi-fig figcaption { padding: 0.5rem 1.25rem 0; }
.thi-service__body { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.625rem; flex: 1; }
.thi-service__body > * { margin-block: 0; }
.thi-service__cover { font-size: 0.875rem; font-weight: 600; color: var(--ct); }
.thi-service__link { margin-block-start: auto !important; padding-block-start: 0.5rem; font-family: var(--wp--preset--font-family--manrope); font-weight: 800; }
.thi-service__link a { display: inline-flex; align-items: center; min-height: 44px; }

/* FAQs */
.thi-faqs { max-width: 50rem; margin-inline: auto; width: 100%; }
.thi-faqs > .wp-block-details { border-top: 1px solid var(--line); margin: 0; }
.thi-faqs > .wp-block-details:last-child { border-bottom: 1px solid var(--line); }
.wp-block-details summary { cursor: pointer; font-family: var(--wp--preset--font-family--manrope); font-weight: 700; font-size: 1.0625rem; line-height: 1.35; padding: 0.875rem 2.25rem 0.875rem 0; position: relative; list-style: none; min-height: 48px; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; position: absolute; right: 0.5rem; top: 1.15rem; width: 0.6rem; height: 0.6rem; border: solid var(--ink); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.wp-block-details[open] summary::after { transform: rotate(-135deg); top: 1.4rem; }
.wp-block-details > *:not(summary) { margin-block: 0 0.875rem; color: #2b3a4a; }

/* Tables */
.wp-block-table { margin: 0; overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: 0.95rem; background: var(--white); }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--line); padding: 0.625rem 0.75rem; text-align: left; vertical-align: top; }
.wp-block-table th { background: var(--ink); color: #fff; font-family: var(--wp--preset--font-family--manrope); font-weight: 700; border-color: var(--ink); }
.thi-table-stack table, .thi-table-stack tbody, .thi-table-stack tr, .thi-table-stack td { display: block; }
.thi-table-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.thi-table-stack tr { border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); padding: 0.75rem 1rem; }
.thi-table-stack tr + tr { margin-block-start: 0.75rem; }
.thi-table-stack td { border: 0; padding: 0.15rem 0; }
.thi-table-stack td:first-child { font-family: var(--wp--preset--font-family--manrope); font-weight: 800; }
@media (min-width: 760px) {
	.thi-table-stack table { display: table; } .thi-table-stack tbody { display: table-row-group; } .thi-table-stack tr { display: table-row; border: 0; padding: 0; } .thi-table-stack td { display: table-cell; border: 1px solid var(--line); padding: 0.625rem 0.75rem; }
	.thi-table-stack thead { position: static; width: auto; height: auto; clip-path: none; display: table-header-group; }
}

/* Example layout content */
.thi-example { border: 1px solid var(--line); background: var(--white); border-radius: var(--radius); padding: 1.25rem; }
.thi-example > * { margin-block: 0; }
.thi-example > * + * { margin-block-start: 0.625rem; }
.thi-example blockquote, .thi-quote { margin: 0; font-size: 1.0625rem; line-height: 1.5; border: 0; padding: 0; }

/* Postcode check */
.thi-postcode { background: var(--white); color: var(--ink); border-radius: var(--radius); padding: 1rem; border: 1px solid var(--line); max-width: 30rem; }
.thi-postcode label { display: block; font-weight: 700; margin-block-end: 0.375rem; }
.thi-postcode__row { display: flex; gap: 0.5rem; }
.thi-postcode input { flex: 1 1 0; min-width: 0; min-height: 48px; font: inherit; font-size: 1rem; padding: 0.5rem 0.75rem; border: 1px solid var(--slate); border-radius: 6px; background: #fff; color: var(--ink); text-transform: uppercase; }
.thi-postcode input::placeholder { text-transform: none; color: var(--slate); }
.thi-postcode__out { margin: 0.625rem 0 0; font-size: 0.9rem; line-height: 1.45; color: var(--slate); }
.thi-postcode__out.is-result { color: var(--ink); font-weight: 600; }

/* Area lists */
.thi-areas { display: flex; flex-wrap: wrap; gap: 0.375rem; list-style: none; padding: 0; margin-block-start: 0.5rem; }
.thi-areas > li { margin: 0 !important; background: var(--paper); border: 1px solid var(--line); border-radius: 4px; padding: 0.15rem 0.5rem; font: 700 0.875rem var(--wp--preset--font-family--manrope); }

/* WhatsApp demo */
.thi-wa-preview { background: #e7efe9; border-radius: var(--radius); padding: 1.25rem; max-width: 30rem; }
.thi-wa-preview__label { margin: 0 0 0.75rem; font-weight: 700; font-size: 0.9rem; }
.thi-wa-preview__bubble { margin: 0; background: #d3f2c9; border-radius: 10px 10px 2px 10px; padding: 0.75rem 1rem; color: var(--ink); }
.thi-wa-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* Status list on the demo page */
.thi-status-ok, .thi-status-no, .thi-status-part { font-weight: 700; white-space: nowrap; }
.thi-status-part { color: var(--accent-text); }
.thi-status-ok { color: #0b6b4f; } .thi-status-no { color: #8a1c12; }

/* Enquiry section and form (markup from the thi-enquiries plugin) */
.thi-enquire__grid { display: grid; gap: clamp(1.5rem, 4vw, 3rem); max-width: 1160px; margin-inline: auto; }
.thi-enquire__grid > * { margin-block: 0 !important; min-width: 0; }
.thi-enquire__aside > * { margin-block: 0; }
.thi-enquire__aside > * + * { margin-block-start: 1rem; }
@media (min-width: 900px) { .thi-enquire__grid { grid-template-columns: 5fr 7fr; } }
.thi-form {
	--thi-form-accent: var(--ink); --thi-form-accent-contrast: #fff; --thi-form-surface: #fff; --thi-form-text: var(--ink);
	--thi-form-muted: var(--slate); --thi-form-border: var(--slate); --thi-form-error: #8a1c12; --thi-form-radius: 6px;
	background: var(--white); border-radius: var(--radius); padding: clamp(1.125rem, 3vw, 2rem); border: 1px solid var(--line); border-top: 4px solid var(--accent); max-width: none;
}
.sec-white .thi-form { box-shadow: 0 1px 0 var(--line); background: var(--paper); --thi-form-surface: #fff; }
.thi-form__legend { font-family: var(--wp--preset--font-family--manrope); font-weight: 800; letter-spacing: -0.01em; }
.thi-form__button { font-family: var(--wp--preset--font-family--manrope); font-weight: 800; }
.thi-form__button--primary { background: var(--amber); color: var(--ink); border-color: var(--amber); }
.thi-form__button--primary:hover { background: #ffba3a; border-color: #ffba3a; }
.thi-form__privacy { font-size: 0.9375rem; }
.thi-form__marketing legend { line-height: 1.45; }
.thi-enquire .thi-form__marketing { margin-block-end: 1rem; }
.thi-enquire__aside .thi-hours { margin-block-start: 1rem; }
.thi-hero .thi-hours { color: var(--mist); }
.thi-hours { font-size: 0.9rem; line-height: 1.45; margin: 0; color: var(--slate); }
.sec-ink .thi-hours, .thi-footer .thi-hours { color: var(--mist); }

/* Footer */
.thi-footer { background: var(--ink); border-top: 4px solid var(--amber); color: var(--paper); padding: 0 var(--gutter); font-size: 0.9375rem; }
.thi-footer a { color: inherit; }
.thi-footer__inner { max-width: 1160px; margin-inline: auto; }
.thi-footer__cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2.5rem; padding-block: clamp(2.25rem, 5vw, 3.25rem); border-bottom: 1px solid var(--line-dark); }
.thi-footer__cta-text { flex: 1 1 22rem; min-width: 0; }
.thi-footer__cta-h { margin: 0; color: #fff; font-size: clamp(1.5rem, 3.4vw, 2.125rem) !important; line-height: 1.15; letter-spacing: -0.01em; }
.thi-footer__cta-sub { margin: 0.5rem 0 0; color: var(--mist); max-width: 34rem; line-height: 1.5; }
.thi-footer__cta-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0; }
.thi-footer__cta-actions .thi-btn { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 50px; text-decoration: none; }
.thi-footer .thi-btn:not(.thi-btn--ghost) { color: var(--ink); }
.thi-footer .thi-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.thi-footer .thi-btn--ghost:hover, .thi-footer .thi-btn--ghost:focus-visible { border-color: #fff; background: rgba(255, 255, 255, 0.07); }
.thi-footer__grid { display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: clamp(2.25rem, 5vw, 3.25rem); }
.thi-footer__grid > * { min-width: 0; }
.thi-footer__brand { grid-column: 1 / -1; }
.thi-footer__brand .thi-logo { margin: 0; color: var(--amber); }
.thi-footer__blurb { margin: 1rem 0 0; color: var(--mist); max-width: 22rem; line-height: 1.5; }
.thi-footer__contact { display: flex; flex-direction: column; align-items: flex-start; margin: 1rem 0 0; }
.thi-footer__contact a { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 40px; text-decoration: none; font-weight: 600; overflow-wrap: anywhere; }
.thi-footer__contact .thi-icon { flex: none; color: var(--amber); }
.thi-footer__phone { font-size: 1.25rem; font-weight: 800 !important; color: #fff !important; }
.thi-footer__contact a:hover span, .thi-footer__contact a:focus-visible span { text-decoration: underline; text-underline-offset: 3px; }
.thi-footer .thi-hours { margin-block-start: 0.5rem; }
.thi-footer__h { margin: 0 0 0.75rem; font-size: 0.8125rem !important; letter-spacing: 0.08em; text-transform: uppercase; color: var(--amber); font-weight: 800; }
.thi-footer__links { list-style: none; margin: 0; padding: 0; }
.thi-footer__links li { margin: 0 !important; }
.thi-footer__links a { display: inline-flex; align-items: center; min-height: 38px; line-height: 1.3; color: #dfe5ec; text-decoration: none; }
.thi-footer__links a:hover, .thi-footer__links a:focus-visible, .thi-footer__legal-links a:hover, .thi-footer__legal-links a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.thi-footer .thi-service-note { margin: 0 0 1.25rem; font-size: 0.8125rem; color: var(--mist); }
.thi-footer__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 2rem; border-top: 1px solid var(--line-dark); padding-block: 1.25rem 1.75rem; font-size: 0.8125rem; color: var(--mist); }
.thi-footer__company { margin: 0; flex: 1 1 28rem; max-width: 44rem; line-height: 1.5; }
.thi-footer__legal-links { display: flex; flex-wrap: wrap; gap: 0 1.25rem; list-style: none; margin: 0; padding: 0; }
.thi-footer__legal-links li { margin: 0 !important; }
.thi-footer__legal-links a { display: inline-flex; align-items: center; min-height: 36px; text-decoration: none; color: #dfe5ec; }
.thi-footer__top { font-weight: 700; gap: 0.35rem; }
@media (min-width: 900px) {
	.thi-footer__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 0.9fr); gap: 2rem 2.5rem; }
	.thi-footer__brand { grid-column: auto; }
}
@media (max-width: 559px) {
	.thi-footer__cta-actions, .thi-footer__cta-actions .thi-btn { width: 100%; }
	.thi-footer__cta-actions .thi-btn { justify-content: center; }
	.thi-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
	.thi-footer__links a { min-height: 40px; }
}

/* Sticky actions: phones only. Body padding reserves its height, so it can never sit on top of the end of the page. */
.thi-actionbar { display: none; }
@media (max-width: 799px) {
	body { padding-bottom: calc(var(--bar) + env(safe-area-inset-bottom, 0px)); }
	.thi-actionbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: var(--ink); padding-bottom: env(safe-area-inset-bottom, 0px); transition: transform .18s ease; border-top: 1px solid var(--line-dark); }
	.thi-actionbar > * { flex: 1 1 0; min-width: 0; }
	.thi-actionbar > .thi-actionbar__primary { flex-grow: 1.25; }
	.thi-actionbar.is-hidden { transform: translateY(110%); visibility: hidden; }
	.thi-actionbar a { display: flex; align-items: center; justify-content: center; gap: 0.4rem; height: var(--bar); box-sizing: border-box; color: #fff; text-decoration: none; font: 700 0.9375rem var(--wp--preset--font-family--manrope); }
	.thi-actionbar a + a { border-inline-start: 1px solid var(--line-dark); }
	.thi-actionbar__primary { background: var(--amber); color: var(--ink) !important; border: 0 !important; font-weight: 800 !important; }
	.thi-actionbar a:focus-visible { outline-offset: -4px; }
}
@media print { .thi-actionbar, .thi-cookies, .thi-demo-banner { display: none; } }

/* Long prose pages */
.thi-legal-page h2 { margin-block-start: 2.25rem; font-size: clamp(1.375rem, 3vw, 1.75rem); }
.thi-legal-page h3 { margin-block-start: 1.25rem; }
.thi-legal-page p, .thi-legal-page li { color: #2b3a4a; }
.thi-draft { background: #fde3cf; border-radius: var(--radius); padding: 1rem 1.25rem; }
.thi-draft > * { margin-block: 0; }

/* Without JavaScript: the bar can't step aside, so it joins the page flow. The postcode guide and cookie buttons need script; with no script no optional cookie is ever set. */
@media (scripting: none) {
	body { padding-bottom: 0; }
	.thi-actionbar { position: static; }
	.thi-postcode, .thi-cookies { display: none; }
}

/* Breadcrumbs */
.thi-crumbs { background: var(--paper); border-bottom: 1px solid var(--line); font-size: 0.8438rem; padding: 0.5rem var(--gutter); }
.thi-crumbs ol { max-width: 1160px; margin: 0 auto; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.15rem 0.4rem; }
.thi-crumbs li { display: flex; align-items: center; gap: 0.4rem; }
.thi-crumbs li + li::before { content: "/"; color: var(--slate); }
.thi-crumbs a { color: var(--ink); display: inline-flex; align-items: center; min-height: 24px; }
.thi-crumbs [aria-current] { color: var(--slate); }

/* Section menu under service heroes */
.thi-subnav { background: var(--white); border-bottom: 1px solid var(--line); position: relative; }
.thi-subnav ul { list-style: none; margin: 0 auto; padding: 0 var(--gutter); max-width: 1160px; box-sizing: content-box; display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.thi-subnav ul::-webkit-scrollbar { display: none; }
.thi-subnav li { flex: none; margin: 0; }
.thi-subnav a { display: flex; align-items: center; min-height: 48px; padding-inline: 0.625rem; color: var(--ink); text-decoration: none; font: 700 0.9063rem var(--wp--preset--font-family--manrope); border-bottom: 3px solid transparent; white-space: nowrap; }
.thi-subnav a:hover { border-bottom-color: var(--line); }
.thi-subnav a[aria-current] { border-bottom-color: var(--accent); }
.thi-subnav a:focus-visible { outline-offset: -3px; }

/* Header dropdowns and phone accordion */
.thi-nav__group summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; font-weight: 700; color: var(--ink); }
.thi-nav__group summary::-webkit-details-marker { display: none; }
.thi-nav__group summary::after { content: ""; width: 0.55rem; height: 0.55rem; border: solid var(--ink); border-width: 0 2px 2px 0; transform: rotate(45deg); margin-inline-end: 0.5rem; }
.thi-nav__group[open] summary::after { transform: rotate(-135deg); }
.thi-nav__group ul { list-style: none; margin: 0 0 0.5rem; padding: 0 0 0 0.75rem; border-inline-start: 2px solid var(--line); }
.thi-nav__group ul li + li { border: 0; }
.thi-nav__panel { max-height: calc(100vh - 8rem); overflow-y: auto; }
.thi-nav__list a[aria-current] { text-decoration: underline; text-decoration-thickness: 2px; text-decoration-color: var(--amber); }
@media (min-width: 1040px) {
	.thi-nav__inline .has-sub { position: relative; }
	.thi-nav__inline .has-sub > a::after { content: ""; display: inline-block; width: 0.4rem; height: 0.4rem; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); margin-inline-start: 0.45rem; }
	.thi-nav__sub { display: none; position: absolute; top: 100%; left: -0.75rem; min-width: 16rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 12px 28px rgba(20, 32, 46, .14); list-style: none; margin: 0; padding: 0.375rem; z-index: 40; }
	.thi-nav__inline .has-sub:hover > .thi-nav__sub, .thi-nav__inline .has-sub:focus-within > .thi-nav__sub { display: block; }
	.thi-nav__sub li { margin: 0 !important; }
	.thi-nav__sub a { padding: 0.375rem 0.75rem; min-height: 40px; border-radius: 4px; font-size: 0.9375rem; }
	.thi-nav__sub a:hover { background: var(--paper); text-decoration: none; }
}

/* Child page hero */
.thi-page-hero { border-top-color: var(--accent); }
.thi-page-hero .wp-block-buttons { margin-block-start: 1.25rem; }
.thi-page-hero .thi-contact-row { margin-block-start: 0.5rem; }
.thi-page-hero .wp-block-buttons, .thi-page-hero .thi-contact-row { justify-content: flex-start; }
.thi-page-hero > p { color: #dfe4ea; }
.thi-page-hero .eyebrow { color: var(--accent-on-dark); }
@media (min-width: 1192px) { .thi-page-hero > * { margin-inline: calc((100% - 1160px) / 2); } }
.thi-page-hero > p:not(.eyebrow):not(.thi-contact-row) { max-width: 44rem; margin-inline-end: auto; }
@media (max-width: 559px) { .thi-page-hero .wp-block-button { flex: 1 1 100%; } .thi-page-hero .wp-block-button__link { width: 100%; } }

/* Figures always hold their shape, so a late image can't shift the page */
.thi-fig img { aspect-ratio: 3 / 2; }
.thi-fig--tile img { aspect-ratio: 16 / 10; }
/* The "Demo image" tag is part of a generated file, bottom right: any crop keeps that corner. */
.thi-fig--burned img, .thi-fig--burned.thi-fig--tile img { aspect-ratio: 4 / 3; object-fit: cover; object-position: right bottom; }
.thi-hero .thi-fig--burned img { aspect-ratio: 7 / 4; }

/* Link cards and small notes */
.thi-link-card h3 a { text-decoration: none; }
.thi-link-card h3 a::after { content: " \2192"; color: var(--accent-text); }
.thi-link-card h3 a:hover { text-decoration: underline; }
.thi-checked { font-size: 0.875rem; color: var(--slate); }
.sec-ink .thi-checked { color: var(--mist); }
.thi-more { font-family: var(--wp--preset--font-family--manrope); font-weight: 800; }
.is-layout-constrained > .thi-more, .is-layout-constrained > .thi-checked { margin-inline: auto; width: 100%; max-width: 1160px; }

/* Case studies */
.thi-case { border-top: 1px solid var(--line); padding-block-start: clamp(1.5rem, 4vw, 2.5rem); }
.thi-case + .thi-case { margin-block-start: clamp(2rem, 5vw, 3rem) !important; }
.sec > .thi-callout + .thi-case { margin-block-start: clamp(1.5rem, 4vw, 2.5rem) !important; border-top: 0; padding-block-start: 0; }
.thi-case__top { margin-block-end: 1.25rem; }
.thi-case__facts { font-size: 0.9375rem; line-height: 1.5; color: var(--slate); }
.thi-case__facts strong { color: var(--ink); }
.thi-case__cols { margin-block-start: 1.25rem; }
.thi-case__col { background: var(--paper); border-radius: var(--radius); padding: 1rem 1.125rem; font-size: 0.9375rem; }
.thi-case__col > * { margin-block: 0; }
.thi-case__col h4 { font-family: var(--wp--preset--font-family--manrope); font-size: 0.9375rem; font-weight: 800; margin-block-end: 0.5rem; }
.thi-case__note { margin-block: 1rem 0; font-size: 0.9375rem; color: var(--slate); border-inline-start: 3px solid var(--accent); padding-inline-start: 0.75rem; max-width: 46rem; }

/* Specimen document */
.thi-specimen { background: #fff; border: 1px solid var(--line); border-top: 6px solid var(--accent); border-radius: var(--radius); padding: clamp(1.125rem, 3vw, 2rem); box-shadow: 0 10px 30px rgba(20, 32, 46, .08); }
.thi-specimen > * { margin-block: 0; }
.thi-specimen > * + * { margin-block-start: 0.75rem; }
.thi-specimen__title { font: 800 1.25rem/1.25 var(--wp--preset--font-family--manrope); }
.thi-specimen .wp-block-table table { font-size: 0.9rem; }
.thi-specimen .wp-block-table th { background: var(--paper); color: var(--ink); border-color: var(--line); }

/* Coverage checker */
.thi-postcode--all { max-width: none; }
.thi-cov-results { list-style: none; margin: 0.875rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.thi-cov-results[hidden] { display: none; }
.thi-cov-results li { border: 1px solid var(--line); border-inline-start: 4px solid var(--c, var(--amber)); border-radius: 6px; padding: 0.625rem 0.75rem; font-size: 0.9375rem; line-height: 1.45; margin: 0; }
.thi-cov-results li strong { display: block; font-family: var(--wp--preset--font-family--manrope); }
.thi-cov-results a { font-weight: 700; }

/* Hours table */
.thi-hours-table { border-collapse: collapse; font-size: 0.9375rem; width: 100%; max-width: 22rem; }
.thi-hours-table caption { text-align: left; font-size: 0.875rem; color: var(--slate); padding-block-end: 0.375rem; }
.thi-hours-table th, .thi-hours-table td { text-align: left; padding: 0.3rem 0; border-bottom: 1px solid var(--line); font-weight: 400; }
.thi-hours-table th { font-weight: 600; }

/* Action bar with Ask */
@media (max-width: 799px) {
	.thi-actionbar:has(.thi-actionbar__ask) { grid-template-columns: 0.85fr 1.25fr 0.85fr 1.15fr; }
	.thi-actionbar__ask { display: flex; align-items: center; justify-content: center; gap: 0.35rem; height: var(--bar); background: transparent; border: 0; border-inline-start: 1px solid var(--line-dark); color: #fff; font: 700 0.9375rem var(--wp--preset--font-family--manrope); cursor: pointer; padding: 0; }
	.thi-actionbar:has(.thi-actionbar__ask) a, .thi-actionbar:has(.thi-actionbar__ask) button { font-size: 0.875rem; gap: 0.3rem; }
}
@media (min-width: 800px) { .thi-actionbar__ask { display: none; } }

.thi-review__by { font-size: 0.875rem; color: var(--slate); }
.thi-pair { margin-block-start: 1.5rem !important; }
.thi-legal-page .wp-block-table, .thi-legal-page .thi-evidence, .thi-legal-page .thi-callout, .thi-legal-page .grid-3, .thi-legal-page .thi-steps { margin-block: 1rem; }
.thi-legal-page .grid-3 { grid-template-columns: minmax(0, 1fr); }

/* Headings directly above a nested list of steps or cards */
main h3 + .thi-steps, main h3 + .wp-block-group, main .wp-block-group + h3 { margin-block-start: 1rem; }

/* A larger tag than the one in the file, readable at phone width. */
.thi-fig--burned::before { content: 'Demo image'; position: absolute; top: 0.625rem; left: 0.625rem; z-index: 1; background: var(--ink); color: #fff; font: 700 0.75rem/1 var(--wp--preset--font-family--inter); padding: 0.375rem 0.5rem; border-radius: 4px; }
.thi-single-fig { max-width: 34rem; margin-block-start: 1.5rem; }
/* Quieter, so a page of open items doesn't read as unfinished. */
mark.thi-confirm { background: transparent; color: var(--slate); font-weight: 600; padding: 0; border-bottom: 1px dotted var(--slate); border-radius: 0; }

/* Banner heroes (6 Nov 2026): the picture fills the hero behind the words. Phones: picture across the top, fading into navy
   behind the headline. Desktop: picture fills the hero, navy fading in from the left so the words stay readable. */
.thi-banner { --banner-h: min(64vw, 440px); position: relative; isolation: isolate; overflow: hidden; padding-top: calc(var(--banner-h) * 0.56) !important; }
.thi-banner .thi-banner__fig { position: absolute; top: 0; left: 0; right: 0; height: var(--banner-h); max-width: none !important; width: auto !important; margin: 0 !important; z-index: -2; }
.thi-banner .thi-banner__fig img, .thi-banner .thi-banner__fig video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 72% 50%; border-radius: 0; box-shadow: none; max-width: none; }
.thi-banner::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(20, 32, 46, 0.12) 0, rgba(20, 32, 46, 0.5) calc(var(--banner-h) * 0.45), rgba(20, 32, 46, 0.92) calc(var(--banner-h) * 0.72), var(--ink) var(--banner-h)); }
.thi-banner .thi-banner__fig figcaption { position: absolute; top: 8px; right: 8px; left: auto; bottom: auto; margin: 0; max-width: 70%; padding: 2px 8px; font-size: 0.75rem; line-height: 1.4; background: rgba(20, 32, 46, 0.72); color: #fff; border-radius: 3px; text-align: right; }
.thi-banner .thi-hero__copy > * { max-width: 38rem; }
.thi-banner h1, .thi-banner .thi-hero__sub { text-shadow: 0 1px 12px rgba(20, 32, 46, 0.55); }
.thi-page-hero.thi-banner > .thi-hero__copy { max-width: 1160px; }
.thi-page-hero.thi-banner > .thi-hero__copy > * + * { margin-block-start: 0.75rem; }
@media (min-width: 900px) {
	.thi-banner { padding-top: clamp(3.5rem, 6vw, 6rem) !important; padding-bottom: clamp(3.5rem, 6vw, 6rem) !important; min-height: clamp(500px, 40vw, 660px); display: flex; flex-direction: column; justify-content: center; }
	.thi-banner > * { width: 100%; }
	.thi-banner .thi-banner__fig { bottom: 0; height: auto; }
	.thi-banner::before { background: linear-gradient(90deg, rgba(20, 32, 46, 0.95) 0%, rgba(20, 32, 46, 0.88) 32%, rgba(20, 32, 46, 0.5) 54%, rgba(20, 32, 46, 0.08) 74%, rgba(20, 32, 46, 0) 100%); }
	.thi-banner .thi-banner__fig figcaption { top: auto; bottom: 12px; right: 16px; }
	.thi-hero.thi-banner .thi-hero__grid { grid-template-columns: minmax(0, 1fr); }
}

/* Desktop hero video (site.js): laid over the still and faded in once playing. */
.thi-banner .thi-banner__fig .thi-hero-video { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; }
.thi-banner .thi-banner__fig .thi-hero-video.is-on { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .thi-hero-video { display: none; } }

/* Home: the three service panels are the focus of "What we do" (7 Nov 2026). */
.is-layout-constrained > .thi-services__head { display: grid; gap: 0.75rem 3rem; align-items: end; max-width: 1160px; }
.is-layout-constrained > .thi-services__head > * { max-width: none; margin: 0 !important; }
.thi-services__title > * { margin: 0; }
.thi-services__title > * + * { margin-block-start: 0.75rem; }
@media (min-width: 900px) { .is-layout-constrained > .thi-services__head { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } .thi-services__head .lede { max-width: 30rem; padding-block-end: 0.35rem; } }
.thi-panels { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .thi-panels { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 1.6vw, 1.5rem); } }
.thi-panel { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; min-height: 440px; border-radius: 16px; background: var(--ink); color: #fff; box-shadow: 0 22px 44px -26px rgba(20, 32, 46, 0.6); margin: 0 !important; }
@media (min-width: 760px) { .thi-panel { min-height: clamp(500px, 44vw, 600px); } }
.thi-panel--solar { --c: var(--amber); --pos: 72% 45%; }
.thi-panel--foam { --c: #3cc2b0; --pos: 64% 50%; }
.thi-panel--superfoil { --c: #ef9a68; --pos: 70% 50%; }
.thi-panel .thi-panel__fig { position: absolute; inset: 0; z-index: -2; margin: 0 !important; max-width: none !important; width: auto !important; }
.thi-panel .thi-panel__fig img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 60% 50%); border-radius: 0; box-shadow: none; max-width: none; transition: transform 0.6s ease; }
.thi-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(20, 32, 46, 0.05) 0%, rgba(20, 32, 46, 0) 28%, rgba(20, 32, 46, 0.6) 52%, rgba(20, 32, 46, 0.95) 100%); }
.thi-panel__body { display: flex; flex-direction: column; gap: 0.625rem; padding: clamp(1.25rem, 2.2vw, 1.75rem); }
.thi-panel__body > * { margin: 0 !important; }
.thi-panel__tag { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.35rem 0.7rem; border-radius: 999px; background: rgba(20, 32, 46, 0.62); border: 1px solid rgba(255, 255, 255, 0.22); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.thi-panel__num { color: var(--c); }
.thi-panel__h { font-size: clamp(1.5rem, 2.3vw, 1.875rem) !important; line-height: 1.15; letter-spacing: -0.01em; color: #fff; text-shadow: 0 1px 14px rgba(20, 32, 46, 0.5); }
.thi-panel__link { color: #fff !important; text-decoration: none; }
.thi-panel__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 16px; }
.thi-panel__link:focus-visible { outline: none; }
.thi-panel:focus-within { outline: 3px solid var(--amber); outline-offset: 3px; }
.thi-panel__text { color: #e4e9ef; line-height: 1.5; }
.thi-panel__cover { font-size: 0.8125rem; font-weight: 600; color: var(--mist); border-left: 3px solid var(--c); padding-left: 0.6rem; }
.thi-panel__cta { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.5rem; margin-block-start: 0.35rem !important; padding: 0.7rem 1.1rem; border-radius: 8px; background: var(--amber); color: var(--ink); font-family: var(--wp--preset--font-family--manrope); font-weight: 800; }
.thi-panel__arrow { display: inline-block; transition: transform 0.25s ease; }
.thi-panel:hover .thi-panel__fig img { transform: scale(1.045); }
.thi-panel:hover .thi-panel__arrow, .thi-panel:focus-within .thi-panel__arrow { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .thi-panel .thi-panel__fig img, .thi-panel__arrow { transition: none; } }
.thi-promises { display: grid; gap: 1rem 2rem; grid-template-columns: minmax(0, 1fr); margin-block-start: clamp(1.75rem, 3.5vw, 2.5rem) !important; padding-block-start: clamp(1.25rem, 3vw, 1.75rem); border-top: 1px solid var(--line); }
@media (min-width: 760px) { .thi-promises { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.thi-promise { position: relative; margin: 0 !important; padding-left: 2.25rem; color: var(--slate); line-height: 1.5; }
.thi-promise strong { display: block; color: var(--ink); font-size: 1.0625rem; margin-bottom: 0.15rem; }
.thi-promise::before { content: ""; position: absolute; left: 0; top: 0.1rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--amber) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314202e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 12.5l4 4L18.5 7.5'/%3E%3C/svg%3E") center / 15px no-repeat; }


/* Home sections with photos and texture (7 Nov 2026, Nathan: "background image, or some background texture"). */
.thi-has-bg { position: relative; isolation: isolate; overflow: hidden; }
.thi-has-bg > .thi-sec-bg { position: absolute; inset: 0; max-width: none !important; width: auto !important; margin: 0 !important; z-index: -2; }
.thi-has-bg > .thi-sec-bg img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; box-shadow: none; }
.thi-has-bg::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(100deg, rgba(20, 32, 46, 0.96) 0%, rgba(20, 32, 46, 0.9) 45%, rgba(20, 32, 46, 0.8) 100%); }
.thi-wont .card { background: rgba(20, 32, 46, 0.55); border-color: rgba(255, 255, 255, 0.2); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.thi-wont .card h3 { color: #fff; }
.thi-wont .card h3::before { content: ""; display: block; width: 28px; height: 3px; margin-bottom: 0.75rem; background: var(--accent-on-dark, var(--amber)); border-radius: 2px; }

/* Callback over a tinted photo: words on the left in white, the form on a light card. */
.thi-enquire--photo::before { background: linear-gradient(90deg, rgba(20, 32, 46, 0.95) 0%, rgba(20, 32, 46, 0.86) 42%, rgba(20, 32, 46, 0.6) 100%); }
.thi-enquire--photo .thi-sec-bg img { object-position: 60% 45%; }
.thi-enquire--photo .thi-enquire__aside h2 { color: #fff; }
.thi-enquire--photo .thi-enquire__aside p, .thi-enquire--photo .thi-hours { color: var(--mist); }
.thi-enquire--photo .thi-form { background: var(--paper); --thi-form-surface: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); color: var(--ink); }
.thi-enquire--photo .thi-form a { color: var(--ink); }

/* Guides as photo cards; the whole card is the link. */
.thi-guide { position: relative; padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; background: #fff !important; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.thi-guide > .thi-guide__fig { margin: 0 !important; aspect-ratio: 16 / 9; overflow: hidden; }
.thi-guide > .thi-guide__fig img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; transition: transform 0.6s ease; }
.thi-guide__body { padding: 1.1rem 1.25rem 1.35rem; }
.thi-guide__body > * { margin-block: 0 !important; }
.thi-guide__body > * + * { margin-block-start: 0.4rem !important; }
.thi-guide__tag { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-text, var(--copper)); }
.thi-guide h3 a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.thi-guide:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(20, 32, 46, 0.14); }
.thi-guide:hover > .thi-guide__fig img { transform: scale(1.05); }
.thi-guide:focus-within { outline: 2px solid var(--amber); outline-offset: 3px; }

/* How we work: the survey photo under the intro, a faint blueprint grid behind the steps. */
.thi-how__intro .thi-how__fig { margin: 1.75rem 0 0 !important; }
.thi-how__intro .thi-how__fig img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; box-shadow: 0 14px 34px rgba(20, 32, 46, 0.14); }
.thi-texture-grid { position: relative; isolation: isolate; }
.thi-texture-grid::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: linear-gradient(rgba(20, 32, 46, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(20, 32, 46, 0.055) 1px, transparent 1px);
	background-size: 32px 32px;
	-webkit-mask-image: radial-gradient(ellipse 60% 75% at 78% 45%, #000 0%, transparent 78%); mask-image: radial-gradient(ellipse 60% 75% at 78% 45%, #000 0%, transparent 78%); }

/* Who you're dealing with: the van beside the company card, a faint brick bond behind. */
.thi-company { align-items: stretch; }
.thi-company > .thi-company__fig { position: relative; margin: 0 !important; min-height: 280px; border-radius: 14px; overflow: hidden; box-shadow: 0 14px 34px rgba(20, 32, 46, 0.14); }
.thi-company > .thi-company__fig img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 66% 64%; border-radius: 0; }
@media (max-width: 781px) { .thi-company > .thi-company__fig { min-height: 0; aspect-ratio: 16 / 10; } }
.thi-company__card { display: flex; flex-direction: column; }
.thi-company__card > p:last-child { margin-top: auto !important; padding-top: 1rem; }
.thi-company__card a[href*="company-information"] { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem .95rem; border: 2px solid var(--ink); border-radius: 8px; font-weight: 700; text-decoration: none; color: var(--ink); }
.thi-company__card a[href*="company-information"]::after { content: "\2197"; color: var(--accent-text, var(--copper)); }
.thi-company__card a[href*="company-information"]:hover { background: var(--ink); color: #fff; }
.thi-company__card { background: #fff; }
.thi-texture-brick { position: relative; isolation: isolate; }
.thi-texture-brick::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='48'%3E%3Cpath d='M0 .5h72M0 24.5h72M.5 0v24M36.5 24v24' fill='none' stroke='%23b45a2b' stroke-opacity='.12'/%3E%3C/svg%3E");
	background-size: 72px 48px;
	-webkit-mask-image: radial-gradient(ellipse 65% 85% at 100% 0%, #000 0%, transparent 72%); mask-image: radial-gradient(ellipse 65% 85% at 100% 0%, #000 0%, transparent 72%); }
@media (prefers-reduced-motion: reduce) { .thi-guide, .thi-guide > .thi-guide__fig img { transition: none; } .thi-guide:hover { transform: none; } .thi-guide:hover > .thi-guide__fig img { transform: none; } }

/* THI Template extras: a chosen logo image, and the optional header button (both off by default). */
.thi-logo__img { display: block; height: 44px; width: auto; max-width: 14rem; }
.thi-header .thi-header-cta { display: none; white-space: nowrap; }
@media (min-width: 900px) { .thi-header .thi-header-cta { display: inline-flex; } }
