:root {
  --surface: #fff;
  --inset: #f0f5f4;
  --accent-surface: #dcefe9;
}
.header {background:var(--surface);border-bottom:1px solid var(--line)}
.nav-wrap {gap:12px;height:76px}
.nav-wrap .brand {margin-right:auto}
.header-contact {order:1;padding:8px 15px;border:1px solid var(--line);border-radius:12px;color:var(--ink)}
.theme-toggle {order:2;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--teal)}
.theme-toggle:hover,.header-contact:hover {background:var(--accent-surface)}
.theme-toggle svg {width:21px;height:21px;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.theme-toggle[hidden],.theme-toggle .sun,[data-theme="dark"] .theme-toggle .moon {display:none}
[data-theme="dark"] .theme-toggle .sun {display:block}
@media(min-width:761px) {
  .header nav {gap:2px;padding:4px;margin-right:auto;background:var(--inset);border-radius:24px}
  .header nav a {padding:8px clamp(8px,1vw,17px);border:0;border-radius:20px}
  .header nav a:is(:hover,[aria-current]) {background:var(--surface);color:var(--teal);box-shadow:0 1px 4px #08233318}
}
@media(min-width:761px) and (max-width:1000px) {
  .nav-wrap {width:calc(100% - 36px);gap:7px}
  .header .brand {width:130px}
  .header nav a {font-size:13px}
}
@media(max-width:760px) {
  .nav-wrap {height:68px;gap:7px}
  .header .brand {min-width:0;flex:0 1 140px}
  .header nav {top:68px;background:var(--surface)}
  .header-contact {padding:7px 9px}
  .menu-toggle {order:3;background:var(--surface)}
}
.service-grid {align-items:stretch}
.report-points > div > i {
  align-self:flex-start;
  flex:none;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:10px;
  background:var(--accent-surface);
  color:var(--teal);
}
.report-points .icon {width:22px;height:22px;stroke-width:1.7}
.annual-plan {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
  gap:clamp(1.25rem,4vw,4rem);
  margin-top:clamp(2rem,4vw,3.5rem);
  padding:clamp(1.25rem,3vw,2.5rem);
  border-inline-start:3px solid var(--teal);
  border-radius:0 12px 12px 0;
  background:var(--inset);
}
.annual-plan h3 {margin:0;font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.25;letter-spacing:-.03em}
.annual-plan p {max-width:70ch;margin:0;color:var(--ink)}
.annual-plan p+p {margin-top:.7em}
@media (max-width:760px) {
  .annual-plan {grid-template-columns:minmax(0,1fr);gap:.9rem}
}
@media (min-width:761px) {
  .service-grid:not(:has(details[open])) {grid-auto-rows:1fr}
}
.service-grid .service {align-self:stretch;padding:0;overflow:hidden}
.service-grid .service details {border:0}
.service-grid .service summary {display:flex;flex-direction:column;align-items:stretch;padding:clamp(19px,2vw,28px);text-align:left;color:var(--ink);font-weight:400}
.service-grid .service summary::after {content:none}
.service-grid .service details:not([open]),
.service-grid .service details:not([open]) summary {height:100%}
.service-grid .equipment-intro {flex:1}
.service-grid .service summary:focus-visible {outline-offset:-4px;border-radius:12px}
.service:has(summary:hover),.service:has(details[open]) {border-color:var(--teal)}
.equipment-name {display:block;font-size:22px;letter-spacing:-.04em;line-height:1.25}
.equipment-intro {display:block;margin-top:12px;color:var(--muted);font-size:15px;line-height:1.6}
.service .tags {margin:17px 0}
.equipment-more {display:flex;align-items:center;justify-content:space-between;min-height:32px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;font-weight:600;color:var(--teal)}
.equipment-plus {font-size:20px;line-height:1;transition:transform .18s ease}
.service details[open] .equipment-plus {transform:rotate(45deg)}
.service .when-open,.service details[open] .when-closed {display:none}
.service details[open] .when-open {display:inline}
.service p.equipment-detail {margin:0;padding:0 clamp(19px,2vw,28px) 24px;font-size:15px;line-height:1.65;color:var(--ink);min-height:0}
@media(prefers-reduced-motion:no-preference) {
  .service details[open] .equipment-detail {animation:equipment-in .2s ease-out}
  @keyframes equipment-in {from {opacity:0;transform:translateY(-4px)} to {opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce) {.equipment-plus {transition:none}}
:root[data-theme="dark"] {
  color-scheme:dark;
  --surface:#232b33;
  --inset:#101419;
  --accent-surface:#233e38;
  --ink:#eff3f5;
  --muted:#b6c1ca;
  --line:#43505c;
  --teal:#8bdfc9;
  --pale:#191f25;
  --raised:#2b353e;
  --edge:#35404a;
}
[data-theme="dark"] body {background:var(--inset)}
[data-theme="dark"] .services {background:var(--pale)}
[data-theme="dark"] .field {background:#0d202b}
[data-theme="dark"] .contact {background:#1c2e3a}
[data-theme="dark"] :is(.services,.field,.contact) {border-block:1px solid var(--edge)}
[data-theme="dark"] footer {background:#0c1014}
[data-theme="dark"] :is(.service,.service-help,.summer-home-routes,.btu-tool,.btu-method,form,.faq details,.report-stage,.catalogue-toolbar,.radio-options,.audience,.menu-toggle,.btu-grid form) {background:var(--surface);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] :is(.tags span,.service-top i,.audience>i,.btu-invitation>i,.btu-height-options span,.process>div>span) {background:var(--accent-surface);color:var(--teal);border-color:var(--line)}
[data-theme="dark"] :is(.catalogue-toolbar p,.service-top span,.illustration-note,.btu-method p,.audience .audience-copy>span) {color:var(--muted)}
[data-theme="dark"] :is(.audience .audience-copy>.audience-action,.text-link:hover,.btu-mode:hover,.service-top .icon) {color:var(--teal)}
[data-theme="dark"] :is(.audience[aria-current],.btu-tool>summary:hover,.service-help>a.button:hover,.button.secondary:hover,.header nav a[aria-current]) {background:var(--accent-surface)}
[data-theme="dark"] :is(.radio-options label:has(:checked),.btu-height-options input:checked+span) {background:var(--mint);color:var(--deep)}
[data-theme="dark"] :is(input:not([type=radio],[type=checkbox]),select,textarea) {background:var(--inset);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] :is(input,textarea)::placeholder {color:#9fb6bf}
[data-theme="dark"] .field-error {color:#ffb3ac}
[data-theme="dark"] .menu-toggle span {background:var(--ink)}
[data-theme="dark"] .brand img {border-radius:8px;background:white;padding:3px 6px}
[data-theme="dark"] .header {background:#141a20;border-color:var(--edge)}
[data-theme="dark"] .header nav {background:var(--surface)}
[data-theme="dark"] .header nav a:is(:hover,[aria-current]) {background:var(--raised);color:var(--ink)}
[data-theme="dark"] .service {border-color:var(--edge);box-shadow:0 2px 5px #0002}
[data-theme="dark"] .service .tags span {background:var(--raised);color:#d1dbe0;border-color:var(--line)}
[data-theme="dark"] .service-top>span {font-size:11px;letter-spacing:.07em;color:var(--muted)}
[data-theme="dark"] .service:has(summary:is(:hover,:focus-visible)),
[data-theme="dark"] .service:has(details[open]) {background:var(--raised);border-color:#739c92}
[data-theme="dark"] .equipment-more {border-color:var(--line)}
[data-theme="dark"] .service-help {background:#1b2d2a}
[data-theme="dark"] .btu-result {background:#18342f}
[data-theme="dark"] .report-stage {background:#28313a}
[data-theme="dark"] .report-paper {background:#e4e9e9}
[data-theme="dark"] .report-paper {color:#153448;--muted:#526b78;--teal:#0f716d;--ink:#153448;--line:#c9d9da}
html[data-theme="dark"][data-campaign="summer"] .audience-section>.eyebrow {color:#f5ce7a}
.faq .questions {display:grid;gap:8px;min-width:0}
@media (min-width:761px) {
  .audience-copy {display:flex;flex-direction:column;align-self:stretch}
  .audience .audience-copy>.audience-action {margin-top:auto;padding-top:17px}
}
.faq .questions details {border:1px solid var(--line);border-radius:12px;background:var(--inset)}
.faq .questions summary {padding:17px 48px 17px 20px;font-size:16px;line-height:1.5}
.faq .questions summary::after {right:18px;top:14px}
.faq .questions details p {padding:0 20px 18px;margin:0;color:var(--muted)}
.faq .questions details[open] {border-color:var(--teal)}
.footer-bottom {flex-wrap:wrap}
.footer-legal {display:flex;flex-wrap:wrap;gap:0 1.25rem}
.footer-legal a:hover,.footer-legal a:focus-visible {text-decoration:underline;text-underline-offset:3px}
:is(.privacy,.btu-send-note) a {text-decoration:underline;text-underline-offset:3px}
#quote-form[hidden] {display:none}
