/* Fluid Rise + Fall HD is screen-blended above the retained Gold Currents base.
   The renderer is independently hash-pinned; no imported demo UI is included. */
.tt-background {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  isolation: isolate;
  contain: layout paint;
  background: radial-gradient(ellipse at 76% 80%, #0a1b29, #050c13 72%);
}
.tt-background, .tt-background * { box-sizing: border-box; }
.gold-canvas, .gold-detail-canvas {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
  transform: scale(1.10); transform-origin: 50% 50%;
}
.gold-canvas { filter: blur(calc(clamp(18px, 2vw, 44px) * 1.25)) saturate(1.25); }
.gold-detail-canvas { filter: blur(0.65px); mix-blend-mode: screen; }
.fluid-overlay { position: absolute; inset: 0; opacity: 0.72; background: transparent; mix-blend-mode: screen; }
.fluid-canvas {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
  filter: blur(calc(var(--fluid-softness, 1.12) * 0.12px));
}
.tt-background[data-fluid-renderer="cpu"] .fluid-canvas { filter: blur(calc(var(--fluid-softness, 1.12) * 0.4px)); }
.fluid-crown { position: absolute; inset: 0 0 auto; height: 125px; opacity: 0.68; background: radial-gradient(ellipse at 16% -45%, #fb654533, transparent 55%), linear-gradient(#963d1710, transparent); }
.tt-fallback {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 24% 0%, #f02c553d, transparent 40%), radial-gradient(ellipse at 84% 35%, #fa6d333b, transparent 31%), radial-gradient(ellipse at 75% 76%, #078ef955, transparent 52%);
}
.tt-background:not(.tt-canvas-ready) {
  background: radial-gradient(ellipse at 20% 0%, #9b214866, transparent 36%), radial-gradient(ellipse at 80% 75%, #0a56c266, transparent 60%), #050c13;
}
.tt-background:not(.tt-canvas-ready) canvas, .tt-canvas-ready .tt-fallback { display: none; }
.tt-shade { position: absolute; inset: 0; opacity: 0.22; background: linear-gradient(90deg, #030a13a0, #030a1333 40%, transparent 76%); }
.tt-vignette { position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 43%, transparent 41%, #02080d30 99%), linear-gradient(transparent 86%, #03091030); }
.motion-toggle {
  position: fixed; left: 50%; bottom: 1rem; z-index: 20; transform: translateX(-50%);
  width: auto; max-width: calc(100% - 2rem); min-height: 44px;
  padding: 0.65rem 0.9rem; margin: 0;
  border: 1px solid #a88b60; border-radius: 3px;
  background: #08121e; color: #f1e3ca; font-size: 0.75rem; cursor: pointer;
}
.motion-toggle:disabled { display: none; }
.background-motion-paused .tr-thermal *, .background-motion-paused .enquiry-signal * { animation-play-state: paused !important; }
@media (max-width: 760px) {
  .tt-shade { opacity: 0.30; background: linear-gradient(90deg, #030a1377, transparent 85%); }
}
@media (prefers-reduced-motion: reduce) { .tt-background, .tt-background * { animation: none !important; transition: none !important; } }
@media print { .tt-background, .motion-toggle { display: none !important; } }

/* Stable large viewport: mobile browser chrome must not resize the canvas. */
@media (max-width: 760px), (pointer: coarse) {
  .tt-background { bottom: auto; height: 100vh; height: 100lvh; }
}

:root {
  color-scheme: dark;
  --ink: #f3f7f8;
  --muted: #aab7bc;
  --graphite-950: #080b0d;
  --graphite-900: #0d1215;
  --graphite-800: #151c20;
  --graphite-700: #222c31;
  --steel: #718087;
  --silver: #d9e0e3;
  --cold: #22b8e6;
  --cold-bright: #8ee8ff;
  --hot: #e7392f;
  --hot-bright: #ff766f;
  --content: 1180px;
  --edge: clamp(1rem, 4vw, 3rem);
  --page-inset: clamp(0.75rem, 1.5vw, 1.5rem);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--graphite-950);
  color: var(--ink);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
.page-view { width: 100%; min-width: 0; }
.page-view:focus-visible { outline: 3px solid var(--cold-bright); outline-offset: 4px; }

html { scroll-behavior: smooth; }

body {
  position: relative;
  isolation: isolate;
  margin: 0;
  min-width: 0;
  padding-bottom: 4.5rem;
  background: #050c13;
  color: var(--ink);
  line-height: 1.65;
}

.staging-banner {
  margin: 0;
  padding: 0.35rem var(--edge);
  background: #d9e0e3;
  color: #080b0d;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

a { color: inherit; }

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--cold-bright);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.65rem 0.9rem;
  background: #fff;
  color: #000;
  transform: translateY(-180%);
}

.skip-link:focus { transform: translateY(0); }

.site-header,
main,
footer {
  width: min(100% - (2 * var(--edge)), var(--content));
  margin-inline: auto;
  padding-inline: var(--page-inset);
  background: rgb(5 12 19 / 82%);
}

.site-header {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  min-height: 0;
  padding-block: 1.5rem 0.75rem;
  border-bottom: 1px solid rgb(217 224 227 / 24%);
}

/* Keep the final panel inside the same visible inset as the page shoulders.
   Real padding prevents the last child's margin escaping the main backdrop. */
main { display: flow-root; padding-bottom: var(--page-inset); }

.site-header::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  width: min(38vw, 25rem);
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--hot));
  box-shadow: 0 0 14px rgb(231 57 47 / 58%);
}

.brand { display: inline-flex; }

.brand img {
  display: block;
  width: clamp(12rem, 30vw, 24rem);
  max-width: 100%;
  height: auto;
  filter: drop-shadow(0 7px 13px rgb(0 0 0 / 45%));
}

nav { display: flex; align-items: center; gap: 1.3rem; }
.site-header nav, .hero-navigation {
  width: 100%; justify-content: center; gap: clamp(1rem, 3vw, 3rem);
  padding-top: 0.75rem; border-top: 1px solid rgb(217 224 227 / 18%);
}
.hero-navigation { margin-top: 1.5rem; }

nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 0.35rem 0;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 760;
  letter-spacing: 0.11em;
  text-decoration: none;
  text-transform: uppercase;
}

nav a:hover,
nav a[aria-current="page"] {
  border-color: var(--cold);
  color: var(--ink);
}

h1,
h2,
h3,
h4,
p { margin-top: 0; }

h1,
h2,
h3,
h4 {
  color: #f5f8f9;
  font-family: "Arial Narrow", Impact, ui-sans-serif, system-ui, sans-serif;
  font-stretch: condensed;
  letter-spacing: 0.015em;
  line-height: 1.03;
  text-wrap: balance;
}

h1, h2, h3 { text-align: left; }

h1 {
  max-width: 15ch;
  margin-bottom: 1.5rem;
  font-size: clamp(3.1rem, 7.5vw, 7.4rem);
  text-transform: uppercase;
  text-shadow: 0 2px 0 #000, 0 -1px 0 rgb(255 255 255 / 24%), 0 12px 25px rgb(0 0 0 / 55%);
}

h2 {
  margin-bottom: 1.2rem;
  font-size: clamp(1.5rem, 2.45vw, 1.875rem);
  text-transform: uppercase;
  text-shadow: 0 2px 0 #000, 0 -1px 0 rgb(255 255 255 / 18%);
}

h3 { font-size: clamp(1.45rem, 2.5vw, 2.15rem); }
h4 { font-size: 1.3rem; }

.eyebrow,
.region-line,
.service-number {
  margin-bottom: 0.8rem;
  color: var(--cold-bright);
  font-size: 0.78rem;
  font-weight: 820;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  min-height: 32rem;
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  overflow: hidden;
}

/* Original ribbon detail from the owner-supplied Tierney Thermal Flow background. */
.tr-thermal-host {
  isolation: isolate;
  background: #030911;
}

.hero > :not(.tr-thermal) { position: relative; z-index: 1; }
.hero-copy { min-width: 0; }
.hero-copy .hero-brand-title { max-width: none; width: 100%; margin-inline: 0; line-height: 1; }
.hero-logo { display: block; width: clamp(16rem, 50vw, 40rem); max-width: 100%; height: auto; margin-inline: auto; filter: drop-shadow(0 8px 18px rgb(0 0 0 / 45%)); }
.hero-copy > .eyebrow { text-align: center; }
.hero-copy > p:not(.eyebrow) { margin-inline: auto; text-align: center; }
.hero-copy .action-row { justify-content: center; }

.tr-thermal {
  --tr-base: #030911;
  --tr-intensity: 1;
  --tr-cold-opacity: 1;
  --tr-heat-opacity: 0.76;
  --tr-gold-opacity: 0.68;
  --tr-flow-duration: 6.8s;
  --tr-drift-duration: 19s;
  --tr-content-shade: 0.82;
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  isolation: isolate;
  pointer-events: none;
  user-select: none;
  background: var(--tr-base);
  contain: layout paint;
}

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

.tr-thermal__ambient {
  position: absolute;
  border-radius: 50%;
  opacity: var(--tr-intensity);
  animation: tr-tf-ambient var(--tr-drift-duration) ease-in-out infinite alternate;
}

.tr-thermal__ambient--cold {
  width: 100%;
  height: 105%;
  top: 12%;
  left: 9%;
  background: radial-gradient(ellipse at center, rgb(16 108 191 / 17%), rgb(6 57 116 / 8.5%) 38%, transparent 68%);
}

.tr-thermal__ambient--heat {
  width: 64%;
  height: 88%;
  top: -18%;
  right: -16%;
  opacity: calc(var(--tr-heat-opacity) * var(--tr-intensity));
  background: radial-gradient(ellipse at center, rgb(187 48 35 / 16%), rgb(112 30 34 / 7%) 39%, transparent 67%);
  animation-delay: -9s;
  animation-direction: alternate-reverse;
}

.tr-thermal__mesh {
  position: absolute;
  inset: 0;
  opacity: 0.23;
  background-image:
    linear-gradient(rgb(113 160 187 / 3.5%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(113 160 187 / 4.5%) 1px, transparent 1px);
  background-size: 112px 112px;
}

.tr-thermal__flow {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  overflow: visible;
  opacity: var(--tr-intensity);
}

.tr-thermal__ribbon {
  stroke-linecap: round;
  stroke-linejoin: round;
  transform-box: view-box;
  transform-origin: 77% 52%;
}

.tr-thermal__ribbon--cold {
  opacity: var(--tr-cold-opacity);
  animation: tr-tf-cold-drift var(--tr-drift-duration) ease-in-out infinite alternate;
}

.tr-thermal__ribbon--heat {
  opacity: var(--tr-heat-opacity);
  animation: tr-tf-heat-drift 23s ease-in-out -8s infinite alternate;
}

.tr-thermal__gold { opacity: var(--tr-gold-opacity); }
.tr-thermal__gold--secondary { opacity: calc(var(--tr-gold-opacity) * 0.5); }

.tr-thermal__stream {
  stroke-dasharray: var(--tr-dash, 30) calc(1000 - var(--tr-dash, 30));
  stroke-dashoffset: 1000;
  animation: tr-tf-stream calc(var(--tr-flow-duration) * var(--tr-mult, 1)) linear infinite;
  animation-delay: var(--tr-lag, 0s);
  opacity: 0.85;
}

.tr-thermal__stream--heat { opacity: 0.78; }
.tr-thermal__stream--gold { opacity: calc(var(--tr-gold-opacity) * 0.7); }
.tr-stream-cold-1 { --tr-lag: -0.7s; --tr-dash: 46; --tr-mult: 1; }
.tr-stream-cold-2 { --tr-lag: -3.7s; --tr-dash: 25; --tr-mult: 0.82; }
.tr-stream-cold-3 { --tr-lag: -1.9s; --tr-dash: 34; --tr-mult: 1.1; }
.tr-stream-cold-4 { --tr-lag: -5.1s; --tr-dash: 21; --tr-mult: 0.9; }
.tr-stream-cold-5 { --tr-lag: -2.9s; --tr-dash: 38; --tr-mult: 1.18; }
.tr-stream-cold-6 { --tr-lag: -6.2s; --tr-dash: 18; --tr-mult: 0.94; }
.tr-stream-gold { --tr-lag: -2.6s; --tr-dash: 14; --tr-mult: 1.18; }
.tr-stream-heat-1 { --tr-lag: -1.6s; --tr-dash: 24; --tr-mult: 1.12; }
.tr-stream-heat-2 { --tr-lag: -4.8s; --tr-dash: 36; --tr-mult: 0.92; }
.tr-stream-heat-3 { --tr-lag: -2.7s; --tr-dash: 20; --tr-mult: 1.25; }
.tr-stream-heat-4 { --tr-lag: -0.2s; --tr-dash: 40; --tr-mult: 1.04; }

.tr-thermal__particles { position: absolute; inset: 0; opacity: var(--tr-intensity); }
.tr-thermal__particles span {
  position: absolute;
  left: var(--tr-x);
  top: var(--tr-y);
  width: var(--tr-w);
  height: 1px;
  border-radius: 100%;
  background: linear-gradient(90deg, transparent, rgb(142 219 255 / 75%));
  opacity: 0;
  animation: tr-tf-flight var(--tr-flight, 8s) linear infinite;
  animation-delay: var(--tr-lag, 0s);
}
.tr-thermal__particles span:nth-child(1) { --tr-x: 4%; --tr-y: 80%; --tr-w: 24px; --tr-lag: 0s; --tr-flight: 6s; }
.tr-thermal__particles span:nth-child(2) { --tr-x: 12%; --tr-y: 71%; --tr-w: 38px; --tr-lag: -1.73s; --tr-flight: 7s; }
.tr-thermal__particles span:nth-child(3) { --tr-x: 32%; --tr-y: 78%; --tr-w: 45px; --tr-lag: -5.19s; --tr-flight: 9s; }
.tr-thermal__particles span:nth-child(4) { --tr-x: 48%; --tr-y: 67%; --tr-w: 38px; --tr-lag: -0.65s; --tr-flight: 6s; }
.tr-thermal__particles span:nth-child(5) { --tr-x: 66%; --tr-y: 38%; --tr-w: 45px; --tr-lag: -4.11s; --tr-flight: 8s; }
.tr-thermal__particles span:nth-child(6) { --tr-x: 75%; --tr-y: 55%; --tr-w: 24px; --tr-lag: -5.84s; --tr-flight: 9s; }
.tr-thermal__particles span:nth-child(7) { --tr-x: 82%; --tr-y: 22%; --tr-w: 38px; --tr-lag: -7.57s; --tr-flight: 10s; }
.tr-thermal__particles span:nth-child(8) { --tr-x: 91%; --tr-y: 69%; --tr-w: 16px; --tr-lag: -1.3s; --tr-flight: 6s; }

.tr-thermal__shade {
  position: absolute;
  inset: 0;
  opacity: var(--tr-content-shade);
  background: linear-gradient(90deg, var(--tr-base) 0%, rgb(3 9 17 / 91%) 23%, rgb(3 9 17 / 55%) 42%, rgb(3 9 17 / 5%) 69%, transparent 100%);
}

.tr-thermal__vignette {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgb(3 9 17 / 35%), transparent 22%, transparent 76%, rgb(3 9 17 / 58%)),
    radial-gradient(ellipse at 66% 47%, transparent 36%, rgb(3 9 17 / 22%) 90%);
}

.hero::before,
.breakdown-panel::before,
.enquiry-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    repeating-linear-gradient(90deg, transparent 0 69px, rgb(255 255 255 / 2%) 70px),
    linear-gradient(110deg, rgb(34 184 230 / 5%), transparent 45%, rgb(231 57 47 / 5%));
}

.hero-copy > p:not(.eyebrow) {
  max-width: 43rem;
  color: var(--silver);
  font-size: clamp(1.05rem, 2vw, 1.28rem);
}

.action-row { display: flex; flex-wrap: wrap; justify-content: center; width: 100%; gap: 0.8rem; margin-top: 2rem; }

.button,
button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  padding: 0.8rem 1.2rem;
  border: 1px solid rgb(255 255 255 / 30%);
  border-radius: 3px;
  color: #fff;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 24%), 0 8px 22px rgb(0 0 0 / 35%);
}

.button-hot { background: linear-gradient(155deg, var(--hot-bright), #a71410 58%, #680a08); }
.button-cold { background: linear-gradient(155deg, #2dccf4, #087ca3 58%, #05425d); }
.button:hover { filter: brightness(1.12); transform: translateY(-1px); }

.signal-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid rgb(217 224 227 / 25%);
  border-top: 3px solid transparent;
  border-image: linear-gradient(90deg, var(--cold), var(--silver), var(--hot)) 1;
  background: linear-gradient(150deg, rgb(34 44 49 / 94%), rgb(12 17 20 / 96%));
  box-shadow: 0 17px 40px rgb(0 0 0 / 36%);
}

.signal-strip p { margin: 0; padding: 1.25rem 1.5rem; }
.signal-strip p + p { border-left: 1px solid rgb(217 224 227 / 17%); }
.signal-strip strong,
.signal-strip span { display: block; }
.signal-strip strong { font-size: 0.92rem; text-transform: uppercase; text-align: left; }
.signal-strip span { margin-top: 0.2rem; color: var(--muted); font-size: 0.84rem; }

.content-panel,
.services-section,
.field-gallery,
.enquiry-preview,
.legal-layout { padding-block: clamp(5rem, 9vw, 8rem); }

.overview-panel { border-bottom: 1px solid rgb(217 224 227 / 18%); }
.overview-panel h2 { max-width: none; }

.prose-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.prose-grid p { color: var(--silver); }
.prose-grid p::before { content: ""; display: block; width: 2.5rem; height: 2px; margin-bottom: 1rem; background: var(--cold); }

.breakdown-panel {
  position: relative;
  padding: clamp(2rem, 4vw, 3rem);
  border-block: 1px solid rgb(231 57 47 / 45%);
  background: linear-gradient(115deg, rgb(66 16 15 / 64%), rgb(13 18 21 / 96%) 43%, rgb(7 31 40 / 86%));
}

.breakdown-content { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }
.breakdown-content > * { min-width: 0; }
.breakdown-copy p { color: var(--silver); font-size: 1.08rem; }

.equipment-panel {
  padding: clamp(1.5rem, 2.5vw, 2rem);
  border: 1px solid rgb(217 224 227 / 28%);
  border-left: 4px solid var(--cold);
  background: linear-gradient(145deg, rgb(38 49 54 / 86%), rgb(10 15 17 / 94%));
  box-shadow: 16px 18px 0 rgb(0 0 0 / 20%);
}

.equipment-panel p,
.equipment-panel li { color: var(--silver); }
.equipment-panel ul { columns: 1; padding-left: 1.1rem; }
.equipment-panel li { break-inside: avoid; margin-bottom: 0.45rem; }

.section-heading { display: block; width: 100%; margin-bottom: 2rem; text-align: left; }
.section-heading h2 { max-width: none; }
.region-line, .service-number { text-align: left; }

.services-section { container-type: inline-size; }
.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; margin-top: 2rem; }
.service-card {
  position: relative;
  min-height: 0;
  min-width: 0;
  padding: clamp(1rem, 2.5vw, 2rem);
  border: 1px solid rgb(217 224 227 / 22%);
  border-top: 3px solid var(--silver);
  background: linear-gradient(155deg, rgb(38 48 53 / 94%), rgb(11 16 18 / 96%));
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 10%), 0 16px 32px rgb(0 0 0 / 30%);
}
.service-card-cold { border-top-color: var(--cold); }
.service-card-hot { border-top-color: var(--hot); }
.service-card p:not(.service-number) { color: var(--muted); }
.service-number { font-size: 0.95rem; }

.field-gallery {
  display: block;
  border-top: 1px solid rgb(217 224 227 / 18%);
}
.gallery-body { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: clamp(1.5rem, 4vw, 3rem); }
.field-gallery p:not(.eyebrow) { color: var(--muted); }
.gallery-placeholder { display: grid; grid-template-columns: 1fr 1.5fr 1fr; gap: 0.6rem; min-height: 18rem; }
.gallery-placeholder span {
  border: 1px solid rgb(217 224 227 / 20%);
  background:
    linear-gradient(135deg, transparent 48%, rgb(142 232 255 / 17%) 49% 51%, transparent 52%),
    linear-gradient(155deg, #263238, #0b1012 60%);
}

.contact-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  margin-bottom: 0;
  padding: clamp(2rem, 5vw, 4rem);
  border: 1px solid rgb(231 57 47 / 42%);
  background: linear-gradient(110deg, rgb(67 16 14 / 90%), rgb(18 24 27 / 96%) 58%, rgb(9 48 61 / 78%));
}
.contact-rail .section-heading { margin: 0; }
.contact-rail h2 { max-width: none; margin-bottom: 0; font-size: clamp(1.5rem, 2vw, 1.875rem); }
.contact-rail .action-row { flex: 0 0 auto; justify-content: center; margin-top: 0; }

.enquiry-layout { min-height: 65vh; }
.enquiry-hero {
  position: relative;
  display: block;
  min-height: 34rem;
  padding-block: clamp(4rem, 8vw, 7rem);
  border-bottom: 1px solid rgb(231 57 47 / 35%);
}
.enquiry-hero h1, .enquiry-hero .page-title { max-width: none; margin-inline: 0; font-size: clamp(2rem, 4.5vw, 4.25rem); }
.enquiry-hero-body { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(12rem, 0.6fr); align-items: center; gap: 2rem; }
.enquiry-hero p:not(.eyebrow) { max-width: 42rem; color: var(--silver); font-size: 1.1rem; }
.enquiry-signal { display: flex; align-items: end; justify-content: center; gap: 1rem; min-height: 16rem; }
.enquiry-signal span { width: 1.2rem; height: 32%; background: var(--hot); box-shadow: 0 0 22px var(--hot); animation: signal-pulse 1.8s ease-in-out infinite alternate; }
.enquiry-signal span:nth-child(2) { height: 68%; animation-delay: -0.6s; }
.enquiry-signal span:nth-child(3) { height: 45%; animation-delay: -1.2s; }

.enquiry-preview { display: block; }
.enquiry-body { display: block; }
.enquiry-body > p { max-width: 65ch; margin-bottom: 1.5rem; }
.enquiry-body > .contact-panel { width: 100%; }
.contact-panel { padding: 2rem; border: 1px solid rgb(217 224 227 / 24%); border-left: 4px solid var(--steel); background: var(--graphite-800); }
.contact-panel p { color: var(--silver); }
.contact-panel a { overflow-wrap: anywhere; }
button:disabled { width: 100%; margin-top: 1rem; background: #283237; color: #aab3b7; cursor: not-allowed; }

.legal-layout { max-width: var(--content); }
.page-intro { padding-bottom: 2rem; border-bottom: 1px solid rgb(217 224 227 / 20%); }
.page-intro > .eyebrow { text-align: left; }
.page-intro h1, .page-intro .page-title { max-width: none; font-size: clamp(2.5rem, 4.5vw, 4.25rem); }
.page-intro > p:not(.eyebrow) { max-width: 50rem; color: var(--muted); }
.review-banner { display: grid; gap: 0.35rem; margin: 2rem 0; padding: 1.25rem 1.5rem; border: 1px solid var(--hot); border-left-width: 5px; background: rgb(91 20 17 / 55%); }
.review-banner strong { color: #ffaaa5; letter-spacing: 0.08em; overflow-wrap: anywhere; }
.review-banner span { color: var(--silver); }
.legal-copy { padding: clamp(1.5rem, 5vw, 4rem); border: 1px solid rgb(217 224 227 / 20%); background: linear-gradient(150deg, rgb(28 36 40 / 96%), rgb(10 14 16 / 98%)); }
.legal-copy h2 { max-width: none; font-size: clamp(2rem, 4vw, 3.4rem); }
.legal-copy h3 { margin-top: 3.2rem; padding-top: 1.2rem; border-top: 1px solid rgb(34 184 230 / 30%); color: var(--cold-bright); }
.legal-copy h4 { margin-top: 2rem; color: var(--silver); }
.legal-copy h3, .legal-copy h4 { text-align: left; }
.legal-copy p,
.legal-copy li { color: #d6dde0; }
.legal-copy li { margin-bottom: 0.45rem; }
.terms-review-item { padding: 1rem; border: 2px solid var(--hot); background: rgb(91 20 17 / 58%); color: #fff !important; }

.error-page { display: grid; place-items: center; min-height: 60vh; padding-block: 4rem; }
.error-card { max-width: 44rem; padding: clamp(2rem, 6vw, 4rem); border: 1px solid rgb(217 224 227 / 24%); border-top: 4px solid var(--hot); background: var(--graphite-800); text-align: left; }
.error-code { margin-bottom: 0.5rem; color: var(--hot-bright); font-size: 0.82rem; font-weight: 850; letter-spacing: 0.2em; }
.error-card h1 { max-width: none; font-size: clamp(2.5rem, 5vw, 4rem); }
.actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }
.actions a,
.call-action { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0.65rem 0.9rem; border: 1px solid rgb(217 224 227 / 35%); text-decoration: none; }

footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  min-height: 8rem;
  border-top: 1px solid rgb(217 224 227 / 22%);
  color: var(--muted);
}
footer p { margin: 0; }

@keyframes signal-pulse {
  from { transform: scaleY(0.62); opacity: 0.35; }
  to { transform: scaleY(1.08); opacity: 1; }
}

@keyframes tr-tf-stream {
  from { stroke-dashoffset: 1000; }
  to { stroke-dashoffset: 0; }
}

@keyframes tr-tf-cold-drift {
  0% { transform: translate3d(-11px, 18px, 0) rotate(-1.3deg) scale(1.035); }
  50% { transform: translate3d(6px, -6px, 0) rotate(0.3deg) scale(1); }
  100% { transform: translate3d(-6px, -20px, 0) rotate(1.7deg) scale(1.04); }
}

@keyframes tr-tf-heat-drift {
  0% { transform: translate3d(12px, -20px, 0) rotate(1.5deg) scale(1.015); }
  100% { transform: translate3d(-15px, 25px, 0) rotate(-2deg) scale(1.045); }
}

@keyframes tr-tf-ambient {
  from { transform: translate3d(-1.5%, 2%, 0) scale(1); }
  to { transform: translate3d(3%, -2%, 0) scale(1.06); }
}

@keyframes tr-tf-flight {
  0% { transform: translate3d(-50px, 30px, 0) rotate(-25deg) scaleX(0.55); opacity: 0; }
  20% { opacity: 0.24; }
  65% { opacity: 0.17; }
  100% { transform: translate3d(150px, -70px, 0) rotate(-25deg) scaleX(1); opacity: 0; }
}

@media (min-width: 801px) {
  .service-card h3 { font-size: 1.25rem; }
  .equipment-panel h3 { font-size: 1.5rem; }
}

@media (max-width: 1200px) {
  .breakdown-content { grid-template-columns: minmax(0, 1fr); }
}

@container (min-width: 45rem) and (max-width: 67.99rem) {
  .service-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 800px) {
  .site-header { min-height: 6rem; }
  .hero,
  .breakdown-content,
  .gallery-body,
  .enquiry-hero-body,
  .enquiry-body { grid-template-columns: 1fr; }
  .hero { min-height: auto; }
  .signal-strip,
  .prose-grid,
  .service-grid { grid-template-columns: 1fr; }
  .signal-strip p + p { border-left: 0; border-top: 1px solid rgb(217 224 227 / 17%); }
  .service-card { min-height: auto; }
  .breakdown-panel { padding: 1rem; }
  .equipment-panel, .contact-panel { padding: 1rem; }
  .contact-rail { padding: 1.25rem; }
  .gallery-placeholder { min-height: 12rem; }
  .enquiry-signal { display: none; }
  .tr-thermal__flow { width: 235%; left: -113%; }
  .tr-thermal__ambient--cold { width: 180%; left: -60%; top: 22%; }
  .tr-thermal__ambient--heat { width: 135%; right: -72%; }
  .tr-thermal__shade { background: linear-gradient(180deg, rgb(3 9 17 / 30%), rgb(3 9 17 / 48%) 25%, rgb(3 9 17 / 32%) 59%, rgb(3 9 17 / 9%)); }
  .tr-thermal__particles span:nth-child(n+5) { display: none; }
  .tr-thermal__bloom--wide { display: none; }
  .tr-thermal__filament:nth-of-type(3n) { display: none; }
  .tr-thermal__stream:nth-of-type(2n) { display: none; }
}

@media (max-width: 560px) {
  .site-header { align-items: center; gap: 0.6rem; padding-block: 1rem; }
  nav { width: 100%; justify-content: space-between; gap: 0.7rem; }
  h1 { font-size: clamp(2.6rem, 15vw, 4.4rem); }
  .equipment-panel ul { columns: 1; }
  .gallery-placeholder { grid-template-columns: 1fr; }
  .gallery-placeholder span { min-height: 6rem; }
  footer { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .tr-thermal__stream, .tr-thermal__particles { display: none; }
}

@media print {
  :root { color-scheme: light; background: #fff; color: #000; }
  body { padding-bottom: 0; background: #fff; color: #000; font-size: 10.5pt; }
  .site-header, main, footer { width: 100%; padding-inline: 0; background: #fff; }
  .site-header { min-height: auto; border-bottom: 2px solid #000; }
  .site-header::after, .skip-link, .tr-thermal, .enquiry-signal, .action-row, nav, .field-gallery, .contact-rail { display: none !important; }
  .staging-banner { display: block !important; border-block: 1px solid #000; background: #fff; color: #000; }
  .review-banner strong, .review-banner span { color: #000; }
  .brand img { filter: none; }
  .hero-logo { width: 60mm; filter: none; }
  h1, h2, h3, h4, p, li, .eyebrow, .region-line, .legal-copy p, .legal-copy li { color: #000 !important; text-shadow: none; }
  h1 { font-size: 28pt; }
  h2 { font-size: 21pt; }
  h3 { font-size: 15pt; break-after: avoid; }
  .hero, .tr-thermal-host, .content-panel, .services-section, .legal-layout { min-height: 0; padding-block: 1rem; background: #fff !important; }
  .hero::before, .breakdown-panel::before, .enquiry-hero::before { display: none; }
  .signal-strip, .breakdown-panel, .breakdown-content, .prose-grid, .service-grid, .enquiry-preview, .enquiry-body, .enquiry-hero-body { display: block; margin: 0; padding: 1rem 0; border-color: #777; background: #fff; box-shadow: none; }
  .signal-strip p, .service-card, .equipment-panel, .contact-panel, .review-banner, .terms-review-item { margin: 0 0 1rem; border: 1px solid #777; background: #fff; box-shadow: none; break-inside: avoid; }
  .legal-copy { margin: 0 0 1rem; padding: 0; border: 0; background: #fff; box-shadow: none; break-inside: auto; }
  .legal-copy h2, .legal-copy h3, .legal-copy h4 { break-after: avoid; page-break-after: avoid; break-inside: avoid; }
  .legal-copy h2 + p, .legal-copy h3 + p, .legal-copy h4 + p { break-before: avoid; page-break-before: avoid; }
  .legal-copy p, .legal-copy li { orphans: 3; widows: 3; }
  .legal-copy h3 { border-color: #777; }
  footer { min-height: auto; padding-top: 1rem; border-top: 1px solid #000; }
}

.enquiry-layout .section-heading, .enquiry-layout h1, .enquiry-layout h2, .enquiry-layout h3, .enquiry-layout p { text-align: center; }
.enquiry-layout .enquiry-hero .section-heading > .eyebrow, .enquiry-layout .enquiry-preview .section-heading > .eyebrow { font-size: 1.2rem; letter-spacing: 0.12em; }
.enquiry-layout .enquiry-hero-body { display: block; }
.enquiry-layout .enquiry-signal { display: none; }
.enquiry-layout .enquiry-hero p, .enquiry-layout .section-heading h2 { margin-inline: auto; }
.enquiry-layout .enquiry-body > p { margin-inline: auto; }
.enquiry-layout .action-row { align-items: center; }
.enquiry-layout .enquiry-email-action { margin: 0 0 1.5rem; }
.enquiry-layout .button-hot { min-height: 88px; padding: 1.25rem 1.75rem; font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.25; text-align: center; white-space: normal; }
/* A single commercial-home system, replacing the earlier layered layout patches. */
/* Keep the original main backdrop and Gold/Fluid animation from source CSS.
   Ordinary sections add no replacement backdrop; original metallic card and
   emergency paints are reused below without changing the accepted layout. */
#view-home { --ink: #edf2f7; --muted: #bdc8d2; --silver: #d7e0e8; --steel: #435667; --cold-bright: #8ee8ff; --graphite-800: #0d1215; --home-base: transparent; --home-raised: transparent; --home-card: rgb(13 18 21 / 96%); --home-edge: #435667; --home-control-edge: #8198aa; --home-accent: #8ed9f1; color: var(--ink); background: transparent; }
#view-home > .home-quick-services { background: var(--home-base); }
.commercial-introduction { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.75fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3.5rem); background: transparent; }
#view-home .commercial-introduction h2 { font: 650 clamp(2.15rem, 4.4vw, 3.6rem)/1.12 system-ui, sans-serif; letter-spacing: -0.04em; text-transform: none; text-shadow: none; color: var(--ink); max-width: 18ch; margin: 0 0 1.5rem; }
.commercial-proposition > p:not(.eyebrow) { font-size: 1.1rem; line-height: 1.7; max-width: 49ch; color: var(--muted); margin-bottom: 1.75rem; }
.commercial-coverage { padding: 1.5rem 0 1.5rem 2rem; border-left: 2px solid var(--home-edge); }
.commercial-coverage ul { list-style: none; margin: 0; padding: 0; }
.commercial-coverage li { font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 550; margin-bottom: 0.7rem; }
#view-home h2, #view-home h3 { color: var(--ink); font-family: system-ui, sans-serif; text-shadow: none; text-transform: none; letter-spacing: -0.025em; line-height: 1.25; }
#view-home h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 650; max-width: 27ch; margin-bottom: 1.2rem; }
#view-home h3 { font-size: 1.35rem; font-weight: 650; margin-bottom: 0.9rem; }
#view-home p { line-height: 1.7; overflow-wrap: anywhere; }
.commercial-proposition, .commercial-coverage { min-width: 0; }
#view-home h2, #view-home h3, #view-home a, #view-home summary { overflow-wrap: anywhere; }
body > footer nav { flex-wrap: wrap; }
#view-home .eyebrow, .commercial-introduction .eyebrow { font-size: 0.72rem; letter-spacing: 0.12em; font-weight: 750; color: var(--home-accent); margin-bottom: 0.9rem; }
#view-home > section { margin: 0; padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 3.5rem); border: 0; }
#view-home > .signal-strip { --ink: #f3f7f8; --muted: #aab7bc; --silver: #d9e0e3; color: var(--ink); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; border: 1px solid rgb(217 224 227 / 25%); border-top: 3px solid transparent; border-image: linear-gradient(90deg, var(--cold), var(--silver), var(--hot)) 1; background: linear-gradient(150deg, rgb(34 44 49 / 94%), rgb(12 17 20 / 96%)); box-shadow: 0 17px 40px rgb(0 0 0 / 36%); }
#view-home .signal-strip p { min-width: 0; margin: 0; line-height: 1.65; }
#view-home .section-heading { margin-bottom: 2rem; }
#view-home .section-heading > p:not(.eyebrow) { max-width: 58ch; color: var(--muted); margin-bottom: 0; }
.commercial-introduction .button, #view-home .button { min-height: 50px; padding: 0.85rem 1.25rem; border-radius: 5px; border: 1px solid transparent; background: linear-gradient(180deg, #17677f, #104859); color: #ffffff; font: 650 1rem/1.4 system-ui, sans-serif; text-transform: none; letter-spacing: 0; box-shadow: inset 0 1px 0 rgb(255 255 255 / 16%), 0 2px 6px rgb(0 0 0 / 18%); text-shadow: none; white-space: normal; text-align: center; }
.commercial-introduction .button:hover, #view-home .button:hover { background: linear-gradient(180deg, #186f89, #12556a); filter: none; transform: none; }
#view-home .button-hot { background: linear-gradient(180deg, #991b1b, #7f1d1d); }
#view-home .button-hot:hover { background: linear-gradient(180deg, #ad2626, #8e2020); }
.commercial-text-link { display: inline-flex; align-items: center; min-height: 44px; width: fit-content; color: var(--home-accent); font-weight: 650; text-underline-offset: 5px; }
#view-home > .home-emergency { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.65fr); align-items: center; gap: 2rem; padding-block: 2rem; background: linear-gradient(115deg, rgb(66 16 15 / 64%), rgb(13 18 21 / 96%) 43%, rgb(7 31 40 / 86%)); color: #ffffff; box-shadow: inset 3px 0 0 #ba514b; }
#view-home .home-emergency h2 { color: #ffffff; font-size: clamp(1.4rem, 2.5vw, 1.8rem); margin-bottom: 0; }
#view-home .home-emergency .eyebrow { color: #b7e3ee; margin-bottom: 0.5rem; }
#view-home .home-emergency .section-heading { margin-bottom: 0.75rem; }
.home-emergency .breakdown-intro > p { color: #dce8ed; font-size: 0.95rem; max-width: 53ch; margin: 0; }
.home-emergency .action-row { margin: 0; }
#view-home .home-emergency .button { min-height: 64px; width: 100%; font-size: 1.1rem; }
.home-service-summaries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.home-service-summaries:has(.commercial-reading[open]) { align-items: start; }
.home-service-summaries article { display: flex; flex-direction: column; min-width: 0; padding: 1.75rem; }
.home-service-summaries p:not(.eyebrow) { max-width: 45ch; color: var(--muted); margin-bottom: 1rem; }
.home-service-summaries .commercial-text-link { margin-top: auto; }
#view-home > .customer-reviews { background: var(--home-raised); }
#view-home .customer-review { padding: 1.4rem; }
#view-home .customer-review h3 { font-size: 1rem; margin: 0; }
#view-home .customer-review-rating { color: #eac789; margin-block: 0.5rem 1rem; }
#view-home .review-excerpt { font-size: 1rem; color: var(--silver); margin-bottom: 0.8rem; }
.review-full summary, .commercial-reading summary { min-height: 44px; padding-block: 0.65rem; color: var(--home-accent); font-size: 0.92rem; font-weight: 650; cursor: pointer; }
.review-full summary:focus-visible, .commercial-reading summary:focus-visible { outline: 3px solid var(--cold-bright); outline-offset: 3px; }
.review-full[open] { padding-bottom: 0.5rem; }
.review-full blockquote { padding-top: 0.75rem; border-top: 1px solid var(--home-edge); }
#view-home .customer-review-controls button { border-radius: 4px; border-color: var(--home-control-edge); background: var(--home-card); color: var(--ink); text-transform: none; box-shadow: none; letter-spacing: 0; }
#view-home .customer-review-controls button:hover:not(:disabled), #view-home .customer-reviews-links .button:hover { background: #2b3d4d; }
#view-home .customer-reviews-links .button { background: var(--home-card); border-color: var(--home-control-edge); color: var(--ink); }
#view-home .customer-reviews-more summary { border-color: var(--home-control-edge); color: var(--ink); }
.commercial-reading { border-block: 1px solid var(--home-edge); margin: 1.2rem 0; }
.commercial-reading > p, .commercial-reading > .breakdown-copy { margin-top: 1rem; }
.commercial-reading p, .commercial-reading li { max-width: 64ch; font-size: 1rem; }
.commercial-reading li { overflow-wrap: anywhere; }
.commercial-reading .region-line { font-size: 0.75rem; letter-spacing: 0.05em; margin-top: 1rem; }
/* One raised-card finish for service choices and reviews. */
#view-home .home-service-summaries article, #view-home .customer-review { border: 1px solid rgb(217 224 227 / 22%); border-top: 2px solid rgb(217 224 227 / 48%); border-radius: 10px; background: linear-gradient(155deg, rgb(38 48 53 / 94%), rgb(11 16 18 / 96%)); box-shadow: inset 0 1px 0 rgb(255 255 255 / 12%), inset 0 -1px 0 rgb(0 0 0 / 35%), 0 12px 28px rgb(0 0 0 / 32%); }
#view-home > .contact-rail { background: linear-gradient(110deg, rgb(67 16 14 / 90%), rgb(18 24 27 / 96%) 58%, rgb(9 48 61 / 78%)); align-items: flex-start; gap: 1.5rem; box-shadow: inset 0 1px 0 rgb(235 245 255 / 10%); }
#view-home .contact-rail .action-row { justify-content: flex-start; }
@media (max-width: 800px) {
  #view-home > .signal-strip { grid-template-columns: minmax(0, 1fr); }
  .commercial-introduction { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .commercial-coverage { padding: 1.25rem 0 0; border-left: 0; border-top: 1px solid var(--home-edge); }
  .commercial-coverage ul { display: flex; flex-wrap: wrap; gap: 0.5rem 1.2rem; margin-bottom: 0; }
  .commercial-coverage li { margin: 0; font-size: 1rem; }
  #view-home > .home-emergency { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}
@media (max-width: 620px) { .home-service-summaries { grid-template-columns: minmax(0, 1fr); } .home-service-summaries article { padding: 1.25rem; } }
/* Mobile: keep the existing accessible name and controller, reduce only the
   visual footprint. The original disabled/reduced-motion hiding still applies. */
@media (max-width: 760px) {
  #background-motion { left: calc(0.75rem + env(safe-area-inset-left, 0px)); bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)); transform: none; width: 44px; height: 44px; min-height: 44px; max-width: none; padding: 0; border-radius: 50%; font-size: 0; letter-spacing: 0; }
  #background-motion::before { content: ""; display: block; box-sizing: border-box; width: 14px; height: 16px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
  #background-motion[aria-pressed="true"]::before { width: 0; height: 0; margin-left: 3px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 12px solid currentColor; border-right: 0; }
}
@media print {
  #view-home { --ink: #000000; --muted: #222222; --silver: #222222; --home-base: #ffffff; --home-raised: #ffffff; --home-card: #ffffff; --home-edge: #777777; --home-control-edge: #777777; --home-accent: #000000; }
  #view-home, #view-home > section, #view-home .home-service-summaries article, #view-home .customer-review { background: #ffffff; color: #000000; box-shadow: none; }
  #view-home > .signal-strip { --ink: #000000; --muted: #222222; --silver: #222222; border-image: none; }
  .commercial-introduction { display: none; }
}

html{scrollbar-gutter:stable}
#view-home .eyebrow.preview-icon-label{display:flex;align-items:center;gap:.75rem;font-size:.92rem;line-height:1.5}
#view-home .preview-label-icon{display:block;flex:0 0 48px;width:48px;height:48px;object-fit:contain;margin:0}
#view-home .eyebrow.preview-icon-label--main{font-size:1.2rem}
#view-home .preview-label-icon--main{flex-basis:64px;width:64px;height:64px}
#view-home .preview-icon-label span{min-width:0}
#view-home .signal-strip .preview-summary-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem}
#view-home .preview-summary-icon{display:block;width:48px;height:48px;object-fit:contain;margin:0 auto .25rem}
#view-home .signal-strip .preview-summary-item strong,#view-home .signal-strip .preview-summary-item span{display:block;width:100%;text-align:center;margin:0}
@media screen{
 main#main-content{background:rgb(5 12 19 / 82%)}
 .hero .tr-thermal,.hero .tr-thermal *,.hero .tr-thermal *::before,.hero .tr-thermal *::after{animation-play-state:paused!important;transition:none!important;will-change:auto!important}
 #view-home .home-service-summaries article{background:linear-gradient(155deg,rgb(38 48 53 / 94%),rgb(11 16 18 / 96%))}
}
@media screen and (max-width:760px){
 #view-home .commercial-proposition,
 #view-home .home-quick-services>.section-heading,
 #view-home .customer-reviews>.section-heading,
 #view-home>.contact-rail{text-align:center}
 #view-home .commercial-proposition>.preview-icon-label,
 #view-home .home-quick-services>.section-heading>.preview-icon-label,
 #view-home .customer-reviews>.section-heading>.preview-icon-label,
 #view-home>.contact-rail .preview-icon-label{flex-direction:column;align-items:center;justify-content:center;text-align:center}
 #view-home .commercial-proposition>.preview-icon-label span,
 #view-home .home-quick-services>.section-heading>.preview-icon-label span,
 #view-home .customer-reviews>.section-heading>.preview-icon-label span,
 #view-home>.contact-rail .preview-icon-label span{width:100%;text-align:center}
 #view-home .commercial-proposition>h2,#view-home .commercial-proposition>p,
 #view-home .home-quick-services>.section-heading>h2,#view-home .home-quick-services>.section-heading>p,
 #view-home .customer-reviews>.section-heading>h2,#view-home>.contact-rail h2,#view-home>.contact-rail p{margin-inline:auto;text-align:center}
}

/* Current public review selection. No remote fonts, images or widget scripts. */
.customer-reviews { padding-block: clamp(4rem, 7vw, 7rem); border-top: 1px solid rgb(217 224 227 / 18%); }
.customer-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.customer-review { min-width: 0; padding: clamp(1.25rem, 2vw, 1.75rem); border: 1px solid rgb(217 224 227 / 22%); border-top: 3px solid #efc46c; border-radius: 4px; background: linear-gradient(155deg, rgb(38 48 53 / 94%), rgb(11 16 18 / 96%)); }
.customer-review h3 { margin: 0; font: 700 1rem/1.4 system-ui, sans-serif; text-transform: none; letter-spacing: 0; overflow-wrap: anywhere; }
.customer-review-rating { margin-block: 0.5rem 1.25rem; color: #efc46c; letter-spacing: 0.12em; font-size: 1.1rem; }
.customer-review blockquote { margin: 0; color: var(--silver); font-size: 1rem; line-height: 1.65; overflow-wrap: anywhere; }
.customer-review blockquote p:last-child { margin-bottom: 0; }
.customer-reviews-more { margin-top: 1.5rem; }
.customer-reviews-more summary { width: fit-content; min-height: 44px; padding: 0.65rem 0.85rem; border: 1px solid var(--steel); border-radius: 3px; color: var(--ink); cursor: pointer; }
.customer-reviews-more[open] summary { margin-bottom: 1rem; }
.customer-reviews-more summary:focus-visible, .customer-reviews-links a:focus-visible { outline: 2px solid var(--cold-bright); outline-offset: 4px; }
.customer-reviews-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.customer-reviews-links p { margin: 0; color: var(--muted); font-size: 0.85rem; }
.customer-review-controls { display: none; }
/* Invisible quotations still size the shared row: rotation never moves the
   following content, and text enlargement needs no guessed fixed height. */
.customer-reviews-rotating .customer-review { grid-row: 1; }
.customer-reviews-rotating .customer-review[data-review-slot="1"] { grid-column: 1; }
.customer-reviews-rotating .customer-review[data-review-slot="2"] { grid-column: 2; }
.customer-reviews-rotating .customer-review[data-review-slot="3"] { grid-column: 3; }
.customer-reviews-rotating .customer-review[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
.customer-reviews-rotating .customer-review-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 1.25rem 0; }
.customer-review-controls button { width: auto; min-height: 44px; margin: 0; padding: 0.6rem 1rem; border: 1px solid var(--steel); background: var(--graphite-800); color: var(--ink); font-size: 0.8rem; letter-spacing: 0.02em; cursor: pointer; }
.customer-review-controls button:disabled { cursor: default; opacity: 0.65; }
.customer-review-controls button:focus-visible { outline: 2px solid var(--cold-bright); outline-offset: 4px; }
.customer-review-controls p { margin: 0; color: var(--muted); font-size: 0.85rem; }
@media (max-width: 1000px) { .customer-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .customer-review-grid { grid-template-columns: minmax(0, 1fr); } }
@media print { .customer-review { break-inside: avoid; background: white; color: black; } .customer-review blockquote, .customer-review h3 { color: black; } }
@media print { .customer-reviews-rotating .customer-review { grid-area: auto !important; visibility: visible !important; } .customer-review-controls { display: none !important; } }

/* The logo's red/blue channel decoration is static at every viewport size. */
.hero .tr-thermal,
.hero .tr-thermal *,
.hero .tr-thermal *::before,
.hero .tr-thermal *::after {
  animation: none !important;
  transition: none !important;
  filter: none !important;
  will-change: auto !important;
}
.hero .tr-thermal__bloom,
.hero .tr-thermal__stream,
.hero .tr-thermal__particles { display: none !important; }

/* The legal business name is centred without repeating the call number. */
body > footer { flex-direction: column; align-items: center; justify-content: center; text-align: center; }
body > footer nav { justify-content: center; }
@media (max-width: 760px) {
  #view-home > .signal-strip { display: none; }
  #view-home .commercial-introduction,
  #view-home .customer-reviews,
  #view-home > .contact-rail { text-align: center; }
  #view-home .commercial-introduction h2,
  #view-home .commercial-introduction h3,
  #view-home .customer-reviews .section-heading,
  #view-home .customer-reviews h2,
  #view-home .customer-reviews h3,
  #view-home .contact-rail .section-heading,
  #view-home .contact-rail h2 { text-align: center; }
  #view-home .commercial-proposition h2,
  #view-home .commercial-proposition p,
  #view-home .customer-reviews h2,
  #view-home .customer-reviews p,
  #view-home > .contact-rail h2 { margin-inline: auto; }
  #view-home > .contact-rail { align-items: center; flex-direction: column; }
  #view-home .contact-rail .action-row,
  #view-home .customer-review-controls,
  #view-home .customer-reviews-links { justify-content: center; }
  #view-home .customer-reviews-more > summary { margin-inline: auto; }
  #view-home .commercial-coverage {
    padding: 1.5rem 1rem; border: 1px solid rgb(217 224 227 / 25%);
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, var(--cold), var(--silver), var(--hot)) 1;
    background: linear-gradient(150deg, rgb(34 44 49 / 94%), rgb(12 17 20 / 96%));
  }
  #view-home .commercial-coverage ul { display: block; max-width: 34ch; margin-inline: auto; }
  #view-home .commercial-coverage li { display: inline; line-height: 1.9; }
  #view-home .commercial-coverage li:not(:last-child)::after { content: " | "; color: var(--silver); }
}

html{--site-layout-ready:1}.tt-background{--site-background-ready:1}
.tt-background[data-fluid-renderer="css"] .fluid-canvas{display:none}
.fluid-css-smoke{position:absolute;inset:-8%;pointer-events:none;contain:paint}
.fluid-css-smoke::before,.fluid-css-smoke::after{content:"";position:absolute;inset:0;opacity:.5;transform:translate3d(0,0,0);animation:tt-light-smoke 24s ease-in-out infinite alternate;animation-play-state:paused}
.fluid-css-smoke::before{background:radial-gradient(ellipse at 78% 24%,#e66b4944,transparent 38%),radial-gradient(ellipse at 48% 52%,#a8412f22,transparent 42%)}
.fluid-css-smoke::after{background:radial-gradient(ellipse at 65% 78%,#229dc866,transparent 42%),radial-gradient(ellipse at 30% 95%,#3373d144,transparent 40%);animation-direction:alternate-reverse;animation-duration:29s}
.tt-css-running .fluid-css-smoke::before,.tt-css-running .fluid-css-smoke::after{animation-play-state:running}
@keyframes tt-light-smoke{from{transform:translate3d(-1.5%,1%,0);opacity:.38}to{transform:translate3d(1.5%,-1%,0);opacity:.65}}
@media(prefers-reduced-motion:reduce){.fluid-css-smoke::before,.fluid-css-smoke::after{animation:none!important}}

/* Standard dark site background is visible immediately and never delayed. */
.tt-background,.tt-background:not(.tt-canvas-ready){background:none!important;mix-blend-mode:screen}
/* Visible compositor-only smoke when WebGL is unavailable or over budget. */
.fluid-css-smoke{animation:tt-smoke-enter 12s linear both;animation-play-state:paused}
.tt-css-running .fluid-css-smoke{animation-play-state:running}
.fluid-css-smoke::before,.fluid-css-smoke::after{animation-name:tt-smoke-drift;animation-duration:16s;opacity:.7}
.fluid-css-smoke::before{background:radial-gradient(ellipse at 98% 32%,#ed715eaa,transparent 42%),radial-gradient(ellipse at 26% 24%,#c7564277,transparent 38%)}
.fluid-css-smoke::after{background:radial-gradient(ellipse at 65% 68%,#299dd9bb,transparent 44%),radial-gradient(ellipse at 8% 88%,#3e7acb88,transparent 40%);animation-duration:21s}
@keyframes tt-smoke-enter{from{clip-path:circle(0% at 100% 32%);opacity:0}to{clip-path:circle(150% at 100% 32%);opacity:1}}
@keyframes tt-smoke-drift{from{transform:translate3d(-5%,3%,0);opacity:.5}to{transform:translate3d(5%,-3%,0);opacity:.8}}

#wallpaper-entry{display:block;position:relative;min-width:160px;min-height:44px;margin:60px auto 12px;padding:10px;background:transparent;border:0;color:transparent;cursor:pointer}
#wallpaper-entry:focus-visible{color:#edf7fa;background:#101923;outline:2px solid #8ed9f1;outline-offset:3px}
.wallpaper-active body{overflow:hidden;touch-action:pinch-zoom}
.wallpaper-active body> :not(#fluid-flow-background):not(#wallpaper-controls){visibility:hidden!important;pointer-events:none!important}
#wallpaper-controls{position:fixed;z-index:10001;bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px;text-align:center;pointer-events:none}
#wallpaper-controls[hidden]{display:none}
#wallpaper-controls button{pointer-events:auto;min-height:44px;margin:4px;padding:10px 16px;border:1px solid #8ed9f1;border-radius:8px;background:#101923;color:#edf7fa;font:inherit;cursor:pointer}
#wallpaper-controls button:focus-visible{outline:3px solid #fff;outline-offset:3px}
#wallpaper-controls button:disabled{color:#b5c5ca;cursor:default}
#wallpaper-help{max-width:38rem;margin:6px auto 0;padding:4px 8px;background:#101923;color:#edf7fa;font:12px/1.5 system-ui}
@media print{#wallpaper-entry,#wallpaper-controls{display:none!important}.wallpaper-active body> :not(#fluid-flow-background){visibility:visible!important}}
