
@font-face {
  font-family: "Oswald";
  font-style: normal;
  font-weight: 200 700;
  font-display: swap;
  src: url("https://asimgutachter.de/wp-content/themes/canopy-theme/resources/css/base/../../fonts/oswald-latin-wght-normal.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("https://asimgutachter.de/wp-content/themes/canopy-theme/resources/css/base/../../fonts/source-sans-3-latin-wght-normal.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Source Sans 3";
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
  src: url("https://asimgutachter.de/wp-content/themes/canopy-theme/resources/css/base/../../fonts/source-sans-3-latin-wght-italic.woff2") format("woff2-variations");
}
:root {
  --site-max-width: 120rem;
  --container-width: 75rem;
  --content-width-reading: 56.25rem;
  --header-container-width: var(--container-width);
  --footer-container-width: var(--container-width);
  --site-shell-shadow: 0 0 0 1px rgb(15 23 42 / 0.04), 0 24px 60px rgb(15 23 42 / 0.08);
  --viewport-min: 360;
  --viewport-max: 1200;
  --section-padding-x: var(--space-l);
  --section-padding-y: var(--space-3xl);
  --content-width-s: 42rem;
  --content-width-m: 46rem;
  --content-width-l: 48rem;
  --page-stack-space: var(--space-l);
  --page-content-stack-space: var(--space-m);
  --front-page-content-stack-space: var(--space-xl);
  --header-height: 5rem;
  --admin-bar-offset: 0px;
  --font-family-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --font-family-heading: "Oswald", "Arial Narrow", sans-serif;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-heading: var(--font-weight-semibold);
  --letter-spacing-caps: 0.08em;
  --color-primary-50: hsl(220 52% 97%);
  --color-primary-100: hsl(219 55% 93%);
  --color-primary-200: hsl(219 52% 85%);
  --color-primary-300: hsl(218 59% 70%);
  --color-primary-500: hsl(218 42% 33%);
  --color-primary-700: hsl(219 45% 24%);
  --color-primary-900: hsl(220 47% 16%);
  --color-neutral-0: hsl(0 0% 100%);
  --color-neutral-50: hsl(220 25% 98%);
  --color-neutral-100: hsl(220 20% 95%);
  --color-neutral-200: hsl(220 16% 88%);
  --color-neutral-500: hsl(221 12% 40%);
  --color-neutral-800: hsl(222 26% 15%);
  --color-neutral-900: hsl(222 32% 11%);
  --color-star: hsl(36 96% 50%);
  --color-text: var(--color-neutral-800);
  --color-text-muted: var(--color-neutral-500);
  --color-heading: var(--color-primary-900);
  --color-surface: var(--color-neutral-0);
  --color-surface-alt: var(--color-primary-50);
  --color-surface-dark: var(--color-primary-900);
  --color-text-on-dark: var(--color-neutral-0);
  --color-text-on-dark-muted: hsl(219 40% 84%);
  --color-google-attribution: #5e5e5e;
  --color-google-attribution-on-dark: #ffffff;
  --color-accent-on-dark: var(--color-primary-300);
  --color-border: var(--color-neutral-200);
  --color-border-on-dark: hsl(219 30% 30%);
  --color-link: var(--color-primary-500);
  --color-link-hover: var(--color-primary-700);
  --color-focus: var(--color-primary-500);
  --color-focus-on-dark: var(--color-primary-300);
  --color-selection-bg: var(--color-primary-500);
  --color-selection-bg-link: var(--color-primary-700);
  --color-selection-text: var(--color-neutral-0);
  --site-bg-outer: var(--color-neutral-100);
  --site-bg-inner: var(--color-surface);
  --color-surface-warm: var(--color-primary-50);
  --color-surface-accent-soft: color-mix(in srgb, var(--color-primary-500) 5%, var(--color-surface));
  --color-surface-accent-hover: var(--color-primary-100);
  --text-2xs-min: 12;
  --text-2xs-max: 14;
  --text-xs-min: 14;
  --text-xs-max: 16;
  --text-s-min: 15;
  --text-s-max: 17;
  --text-m-min: 16;
  --text-m-max: 18;
  --text-l-min: 18;
  --text-l-max: 20;
  --text-xl-min: 20;
  --text-xl-max: 24;
  --text-2xl-min: 22;
  --text-2xl-max: 28;
  --heading-1-min: 36;
  --heading-1-max: 58;
  --heading-2-min: 30;
  --heading-2-max: 46;
  --heading-3-min: 24;
  --heading-3-max: 36;
  --heading-4-min: 20;
  --heading-4-max: 26;
  --heading-5-min: 18;
  --heading-5-max: 22;
  --heading-6-min: 16;
  --heading-6-max: 18;
  --line-height-body: 1.65;
  --line-height-body-tight: 1.5;
  --line-height-heading: 1.2;
  --line-height-heading-tight: 1.1;
  --fluid-viewport-range: calc(var(--viewport-max) - var(--viewport-min));
  --fluid-viewport-factor: calc((100vw - (var(--viewport-min) * 1px)) / var(--fluid-viewport-range));
  --text-2xs-scale: calc((var(--text-2xs-max) - var(--text-2xs-min)) * var(--fluid-viewport-factor));
  --text-xs-scale: calc((var(--text-xs-max) - var(--text-xs-min)) * var(--fluid-viewport-factor));
  --text-s-scale: calc((var(--text-s-max) - var(--text-s-min)) * var(--fluid-viewport-factor));
  --text-m-scale: calc((var(--text-m-max) - var(--text-m-min)) * var(--fluid-viewport-factor));
  --text-l-scale: calc((var(--text-l-max) - var(--text-l-min)) * var(--fluid-viewport-factor));
  --text-xl-scale: calc((var(--text-xl-max) - var(--text-xl-min)) * var(--fluid-viewport-factor));
  --text-2xl-scale: calc((var(--text-2xl-max) - var(--text-2xl-min)) * var(--fluid-viewport-factor));
  --heading-1-scale: calc((var(--heading-1-max) - var(--heading-1-min)) * var(--fluid-viewport-factor));
  --heading-2-scale: calc((var(--heading-2-max) - var(--heading-2-min)) * var(--fluid-viewport-factor));
  --heading-3-scale: calc((var(--heading-3-max) - var(--heading-3-min)) * var(--fluid-viewport-factor));
  --heading-4-scale: calc((var(--heading-4-max) - var(--heading-4-min)) * var(--fluid-viewport-factor));
  --heading-5-scale: calc((var(--heading-5-max) - var(--heading-5-min)) * var(--fluid-viewport-factor));
  --heading-6-scale: calc((var(--heading-6-max) - var(--heading-6-min)) * var(--fluid-viewport-factor));
  --text-2xs: clamp(calc(var(--text-2xs-min) * 1px), calc((var(--text-2xs-min) * 1px) + var(--text-2xs-scale)), calc(var(--text-2xs-max) * 1px));
  --text-xs: clamp(calc(var(--text-xs-min) * 1px), calc((var(--text-xs-min) * 1px) + var(--text-xs-scale)), calc(var(--text-xs-max) * 1px));
  --text-s: clamp(calc(var(--text-s-min) * 1px), calc((var(--text-s-min) * 1px) + var(--text-s-scale)), calc(var(--text-s-max) * 1px));
  --text-m: clamp(calc(var(--text-m-min) * 1px), calc((var(--text-m-min) * 1px) + var(--text-m-scale)), calc(var(--text-m-max) * 1px));
  --text-l: clamp(calc(var(--text-l-min) * 1px), calc((var(--text-l-min) * 1px) + var(--text-l-scale)), calc(var(--text-l-max) * 1px));
  --text-xl: clamp(calc(var(--text-xl-min) * 1px), calc((var(--text-xl-min) * 1px) + var(--text-xl-scale)), calc(var(--text-xl-max) * 1px));
  --text-2xl: clamp(calc(var(--text-2xl-min) * 1px), calc((var(--text-2xl-min) * 1px) + var(--text-2xl-scale)), calc(var(--text-2xl-max) * 1px));
  --heading-1: clamp(calc(var(--heading-1-min) * 1px), calc((var(--heading-1-min) * 1px) + var(--heading-1-scale)), calc(var(--heading-1-max) * 1px));
  --heading-2: clamp(calc(var(--heading-2-min) * 1px), calc((var(--heading-2-min) * 1px) + var(--heading-2-scale)), calc(var(--heading-2-max) * 1px));
  --heading-3: clamp(calc(var(--heading-3-min) * 1px), calc((var(--heading-3-min) * 1px) + var(--heading-3-scale)), calc(var(--heading-3-max) * 1px));
  --heading-4: clamp(calc(var(--heading-4-min) * 1px), calc((var(--heading-4-min) * 1px) + var(--heading-4-scale)), calc(var(--heading-4-max) * 1px));
  --heading-5: clamp(calc(var(--heading-5-min) * 1px), calc((var(--heading-5-min) * 1px) + var(--heading-5-scale)), calc(var(--heading-5-max) * 1px));
  --heading-6: clamp(calc(var(--heading-6-min) * 1px), calc((var(--heading-6-min) * 1px) + var(--heading-6-scale)), calc(var(--heading-6-max) * 1px));
  --space-2xs-min: 4;
  --space-2xs-max: 6;
  --space-xs-min: 8;
  --space-xs-max: 10;
  --space-s-min: 12;
  --space-s-max: 16;
  --space-m-min: 16;
  --space-m-max: 20;
  --space-l-min: 24;
  --space-l-max: 32;
  --space-xl-min: 32;
  --space-xl-max: 48;
  --space-2xl-min: 48;
  --space-2xl-max: 80;
  --space-3xl-min: 64;
  --space-3xl-max: 108;
  --space-2xs-scale: calc((var(--space-2xs-max) - var(--space-2xs-min)) * var(--fluid-viewport-factor));
  --space-xs-scale: calc((var(--space-xs-max) - var(--space-xs-min)) * var(--fluid-viewport-factor));
  --space-s-scale: calc((var(--space-s-max) - var(--space-s-min)) * var(--fluid-viewport-factor));
  --space-m-scale: calc((var(--space-m-max) - var(--space-m-min)) * var(--fluid-viewport-factor));
  --space-l-scale: calc((var(--space-l-max) - var(--space-l-min)) * var(--fluid-viewport-factor));
  --space-xl-scale: calc((var(--space-xl-max) - var(--space-xl-min)) * var(--fluid-viewport-factor));
  --space-2xl-scale: calc((var(--space-2xl-max) - var(--space-2xl-min)) * var(--fluid-viewport-factor));
  --space-3xl-scale: calc((var(--space-3xl-max) - var(--space-3xl-min)) * var(--fluid-viewport-factor));
  --space-2xs: clamp(calc(var(--space-2xs-min) * 1px), calc((var(--space-2xs-min) * 1px) + var(--space-2xs-scale)), calc(var(--space-2xs-max) * 1px));
  --space-xs: clamp(calc(var(--space-xs-min) * 1px), calc((var(--space-xs-min) * 1px) + var(--space-xs-scale)), calc(var(--space-xs-max) * 1px));
  --space-s: clamp(calc(var(--space-s-min) * 1px), calc((var(--space-s-min) * 1px) + var(--space-s-scale)), calc(var(--space-s-max) * 1px));
  --space-m: clamp(calc(var(--space-m-min) * 1px), calc((var(--space-m-min) * 1px) + var(--space-m-scale)), calc(var(--space-m-max) * 1px));
  --space-l: clamp(calc(var(--space-l-min) * 1px), calc((var(--space-l-min) * 1px) + var(--space-l-scale)), calc(var(--space-l-max) * 1px));
  --space-xl: clamp(calc(var(--space-xl-min) * 1px), calc((var(--space-xl-min) * 1px) + var(--space-xl-scale)), calc(var(--space-xl-max) * 1px));
  --space-2xl: clamp(calc(var(--space-2xl-min) * 1px), calc((var(--space-2xl-min) * 1px) + var(--space-2xl-scale)), calc(var(--space-2xl-max) * 1px));
  --space-3xl: clamp(calc(var(--space-3xl-min) * 1px), calc((var(--space-3xl-min) * 1px) + var(--space-3xl-scale)), calc(var(--space-3xl-max) * 1px));
  --flow-space: var(--space-s);
  --paragraph-space: var(--space-s);
  --heading-space: var(--space-l);
  --list-indent-space: var(--space-m);
  --list-item-space: var(--space-xs);
  --figure-space: var(--space-l);
  --blockquote-space: var(--space-l);
  --content-gap: var(--space-l);
  --grid-gap: var(--space-l);
  --radius-xs: 0.25rem;
  --radius-s: 0.375rem;
  --radius-m: 0.625rem;
  --radius-l: 0.875rem;
  --radius-pill: 999px;
  --border-width-thin: 1px;
  --border-width-accent: 4px;
  --shadow-soft: 0 18px 40px rgb(22 35 61 / 0.1);
  --shadow-card: 0 1px 2px rgb(22 35 61 / 0.06), 0 8px 24px rgb(22 35 61 / 0.06);
  --shadow-card-hover: 0 2px 4px rgb(22 35 61 / 0.08), 0 16px 36px rgb(22 35 61 / 0.12);
  --transition-standard: 350ms ease;
  --translate-interactive-hover: -1px;
  --focus-ring-width: 3px;
  --focus-ring-offset: 3px;
  --brand-slant: 0.55em;
  --icon-size-s: 1.25rem;
  --icon-size-m: 1.75rem;
  --icon-size-l: 3rem;
  --button-padding-y: 0.9rem;
  --button-padding-x: 1.5rem;
  --button-font-size: var(--text-m);
  --button-font-weight: var(--font-weight-semibold);
  --button-radius: var(--radius-s);
  --button-bg: var(--color-primary-500);
  --button-bg-hover: var(--color-primary-700);
  --button-text: var(--color-neutral-0);
  --button-border-width: 2px;
  --button-border: var(--button-border-width) solid var(--color-primary-500);
  --button-border-hover: var(--button-border-width) solid var(--color-primary-700);
  --button-outline-bg: transparent;
  --button-outline-text: var(--color-primary-500);
  --button-outline-text-hover: var(--color-primary-700);
  --object-fit: cover;
  --object-position: 50% 50%;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
blockquote {
  margin: 0;
}
img {
  display: block;
  height: auto;
  max-width: 100%;
}
body {
  background: var(--site-bg-outer);
  color: var(--color-text);
  font-family: var(--font-family-body);
  font-size: var(--text-m);
  line-height: var(--line-height-body);
}
h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-heading-tight);
  text-wrap: balance;
}
h1 {
  font-size: var(--heading-1);
  line-height: var(--line-height-heading-tight);
}
h2 {
  font-size: var(--heading-2);
  line-height: var(--line-height-heading-tight);
}
h3 {
  font-size: var(--heading-3);
  line-height: var(--line-height-heading);
}
h4 {
  font-size: var(--heading-4);
  line-height: var(--line-height-heading);
}
h5 {
  font-size: var(--heading-5);
  line-height: var(--line-height-heading);
}
h6 {
  font-size: var(--heading-6);
  line-height: var(--line-height-heading);
}
.text-2xl,
.text-xl {
  line-height: var(--line-height-body-tight);
}
a {
  color: var(--color-link);
  transition: color var(--transition-standard);
}
a:hover,
a:focus-visible {
  color: var(--color-link-hover);
}
::selection {
  background: var(--color-selection-bg);
  color: var(--color-selection-text);
}
a::selection {
  background: var(--color-selection-bg-link);
}
.h1 {
  font-size: var(--heading-1);
}
.h2 {
  font-size: var(--heading-2);
}
.h3 {
  font-size: var(--heading-3);
}
.h4 {
  font-size: var(--heading-4);
}
.h5 {
  font-size: var(--heading-5);
}
.h6 {
  font-size: var(--heading-6);
}
.text-2xs {
  font-size: var(--text-2xs);
}
.text-xs {
  font-size: var(--text-xs);
}
.text-s {
  font-size: var(--text-s);
}
.text-m {
  font-size: var(--text-m);
}
.text-l {
  font-size: var(--text-l);
}
.text-xl {
  font-size: var(--text-xl);
}
.text-2xl {
  font-size: var(--text-2xl);
}
.has-text-2xs-font-size {
  font-size: var(--text-2xs) !important;
}
.has-text-xs-font-size {
  font-size: var(--text-xs) !important;
}
.has-text-s-font-size {
  font-size: var(--text-s) !important;
}
.has-text-m-font-size {
  font-size: var(--text-m) !important;
}
.has-text-l-font-size {
  font-size: var(--text-l) !important;
}
.has-text-xl-font-size {
  font-size: var(--text-xl) !important;
  line-height: var(--line-height-body-tight);
}
.has-text-2xl-font-size {
  font-size: var(--text-2xl) !important;
  line-height: var(--line-height-body-tight);
}
.has-primary-500-color {
  color: var(--color-primary-500) !important;
}
.has-primary-700-color {
  color: var(--color-primary-700) !important;
}
.has-text-color {
  color: var(--color-text) !important;
}
.has-text-muted-color {
  color: var(--color-text-muted) !important;
}
.has-heading-color {
  color: var(--color-heading) !important;
}
.has-surface-color {
  color: var(--color-surface) !important;
}
.has-surface-alt-color {
  color: var(--color-surface-alt) !important;
}
.has-neutral-100-color {
  color: var(--color-neutral-100) !important;
}
.has-primary-soft-background-color {
  background-color: var(--color-primary-100) !important;
}
.has-primary-500-background-color {
  background-color: var(--color-primary-500) !important;
}
.has-primary-700-background-color {
  background-color: var(--color-primary-700) !important;
}
.has-surface-background-color {
  background-color: var(--color-surface) !important;
}
.has-surface-alt-background-color {
  background-color: var(--color-surface-alt) !important;
}
.has-neutral-100-background-color {
  background-color: var(--color-neutral-100) !important;
}
.flow > * + *,
.canopy-page__content > * + *,
.canopy-front-page__content > * + *,
.gutenberg-content > * + * {
  margin-block-start: var(--flow-space);
}
.flow > :where(h1, h2, h3, h4, h5, h6),
.canopy-page__content > :where(h1, h2, h3, h4, h5, h6),
.canopy-front-page__content > :where(h1, h2, h3, h4, h5, h6),
.gutenberg-content > :where(h1, h2, h3, h4, h5, h6) {
  margin-block-start: 0;
}
.flow > * + :where(h1, h2, h3, h4, h5, h6),
.canopy-page__content > * + :where(h1, h2, h3, h4, h5, h6),
.canopy-front-page__content > * + :where(h1, h2, h3, h4, h5, h6),
.gutenberg-content > * + :where(h1, h2, h3, h4, h5, h6) {
  margin-block-start: var(--heading-space);
}
.flow > * + p,
.canopy-page__content > * + p,
.canopy-front-page__content > * + p,
.gutenberg-content > * + p {
  margin-block-start: var(--paragraph-space);
}
.flow > :is(ul, ol),
.canopy-page__content > :is(ul, ol),
.canopy-front-page__content > :is(ul, ol),
.gutenberg-content > :is(ul, ol) {
  padding-inline-start: var(--list-indent-space);
}
.flow > :is(ul, ol) li + li,
.canopy-page__content > :is(ul, ol) li + li,
.canopy-front-page__content > :is(ul, ol) li + li,
.gutenberg-content > :is(ul, ol) li + li {
  margin-block-start: var(--list-item-space);
}
.flow > * + figure,
.canopy-page__content > * + figure,
.canopy-front-page__content > * + figure,
.gutenberg-content > * + figure {
  margin-block-start: var(--figure-space);
}
.flow > * + blockquote,
.canopy-page__content > * + blockquote,
.canopy-front-page__content > * + blockquote,
.gutenberg-content > * + blockquote {
  margin-block-start: var(--blockquote-space);
}
html {
  scroll-behavior: smooth;
  scroll-padding-block-start: calc(var(--header-height) + var(--admin-bar-offset) + var(--space-s));
}
body {
  min-height: 100vh;
  background: var(--site-bg-outer);
  overflow-x: hidden;
}
.site-shell {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  width: min(100%, var(--site-max-width));
  margin-inline: auto;
  background: var(--site-bg-inner);
  box-shadow: var(--site-shell-shadow);
  overflow: clip;
}
.site-shell > main {
  flex: 1 0 auto;
}
.site-header-spacer {
  flex: 0 0 auto;
  block-size: var(--header-height);
}
.skip-link {
  position: fixed;
  inset-block-start: calc(var(--admin-bar-offset) + var(--space-xs));
  inset-inline-start: var(--space-s);
  z-index: 1000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 2.75rem;
  padding: 0.625rem 1rem;
  border-radius: var(--radius-pill);
  background: var(--color-heading);
  color: var(--color-neutral-0);
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  transform: translateY(calc(-100% - var(--space-s)));
  transition: transform var(--transition-standard), background-color var(--transition-standard);
}
.skip-link:not(:focus) {
  box-shadow: none;
}
.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
  background: var(--color-primary-700);
  color: var(--color-neutral-0);
}
body.admin-bar {
  --admin-bar-offset: 32px;
}
@media (max-width: 782px) {
  body.admin-bar {
    --admin-bar-offset: 46px;
  }
}
.scroll-top {
  position: fixed;
  inset-inline-end: max(1rem, calc((100vw - var(--site-max-width)) / 2 + 1rem));
  inset-block-end: 1rem;
  z-index: 120;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 3rem;
  block-size: 3rem;
  border-radius: 999px;
  background: var(--color-primary-500);
  color: var(--color-neutral-0);
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.75rem);
  transition: opacity var(--transition-standard), transform var(--transition-standard), background-color var(--transition-standard), color var(--transition-standard);
}
.scroll-top__icon {
  display: inline-flex;
  inline-size: 1.7rem;
  block-size: 1.7rem;
  transform: rotate(-90deg);
}
.scroll-top__icon svg {
  inline-size: 100%;
  block-size: 100%;
}
.scroll-top:hover,
.scroll-top:focus-visible {
  background: var(--color-link-hover);
  color: var(--color-neutral-0);
}
.scroll-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.mobile-contact-bar {
  display: none;
}
@media (max-width: 767px) {
  body:has(.mobile-contact-bar) {
    --mobile-contact-bar-height: 3.25rem;
    padding-block-end: calc(var(--mobile-contact-bar-height) + env(safe-area-inset-bottom, 0px));
  }
  .mobile-contact-bar {
    position: fixed;
    inset-inline: 0;
    inset-block-end: 0;
    z-index: 110;
    display: grid;
    grid-auto-columns: 1fr;
    grid-auto-flow: column;
    padding-block-end: env(safe-area-inset-bottom, 0px);
    background: var(--color-neutral-900);
    box-shadow: 0 -2px 12px rgb(0 0 0 / 0.15);
  }
  .mobile-contact-bar__link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-block-size: var(--mobile-contact-bar-height);
    border-block-end: 1px solid rgb(255 255 255 / 0.15);
    color: var(--color-neutral-0);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    transition: color var(--transition-standard);
  }
  .mobile-contact-bar__link + .mobile-contact-bar__link {
    border-inline-start: 1px solid rgb(255 255 255 / 0.15);
  }
  .mobile-contact-bar__link:hover,
  .mobile-contact-bar__link:focus-visible {
    color: var(--color-primary-100);
  }
  .mobile-contact-bar__link:focus-visible {
    outline-offset: -3px;
  }
  .mobile-contact-bar__icon {
    display: inline-flex;
    inline-size: 1.15rem;
    block-size: 1.15rem;
  }
  .mobile-contact-bar__icon svg {
    inline-size: 100%;
    block-size: 100%;
  }
  body:has(.mobile-contact-bar) .scroll-top {
    inset-block-end: calc(var(--mobile-contact-bar-height) + env(safe-area-inset-bottom, 0px) + 0.75rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .scroll-top {
    transition: none;
  }
}
@media (prefers-reduced-motion: no-preference) {
  @view-transition {
    navigation: auto;
  }
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 0.5s;
    animation-timing-function: ease-in-out;
  }
  ::view-transition-group(site-header),
  ::view-transition-old(site-header),
  ::view-transition-new(site-header) {
    animation: none;
  }
}
.site-header {
  view-transition-name: site-header;
}
.site-header {
  position: fixed;
  inset-block-start: var(--admin-bar-offset);
  inset-inline-start: 50%;
  z-index: 100;
  inline-size: min(100%, var(--site-max-width));
  border-block-end: var(--border-width-thin) solid var(--color-border);
  transform: translateX(-50%);
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgb(255 255 255 / 0.94);
  backdrop-filter: saturate(1.4) blur(10px);
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-l);
  inline-size: min(100% - 2 * var(--section-padding-x), var(--header-container-width));
  min-block-size: var(--header-height);
  margin-inline: auto;
}
.site-header__nav {
  display: flex;
  align-items: center;
  gap: var(--space-l);
}
.site-header__menu {
  display: flex;
  gap: var(--space-l);
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-header__menu a {
  position: relative;
  padding-block: var(--space-xs);
  color: var(--color-heading);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
}
.site-header__menu a::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 2px;
  background: var(--color-primary-300);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition-standard);
}
.site-header__menu a:hover,
.site-header__menu a:focus-visible,
.site-header__menu .current-menu-item > a,
.site-header__menu .current-menu-ancestor > a {
  color: var(--color-primary-500);
}
.site-header__menu a:hover::after,
.site-header__menu a:focus-visible::after,
.site-header__menu .current-menu-item > a::after,
.site-header__menu .current-menu-ancestor > a::after {
  transform: scaleX(1);
}
.site-header__menu .sub-menu {
  display: none;
}
.site-header__cta {
  --button-padding-y: 0.7rem;
  --button-padding-x: 1.1rem;
  --button-font-size: var(--text-s);
  white-space: nowrap;
}
.site-header__toggle,
.site-header__backdrop {
  display: none;
}
@media (max-width: 1023px) {
  .site-header {
    inset-inline-start: 0;
    inline-size: 100%;
    transform: none;
  }
  .site-header__toggle {
    position: relative;
    z-index: 131;
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.3rem;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    min-block-size: 0;
    padding: 0;
    border: 0;
    border-radius: var(--radius-s);
    background: transparent;
    color: var(--color-heading);
    cursor: pointer;
    transition: background-color var(--transition-standard), color var(--transition-standard);
  }
  .site-header__toggle:hover,
  .site-header__toggle:focus-visible {
    background: var(--color-primary-50);
  }
  .site-header__toggle-line {
    display: block;
    inline-size: 1.4rem;
    block-size: 2px;
    border-radius: var(--radius-pill);
    background: currentColor;
    transition: transform var(--transition-standard), opacity var(--transition-standard);
  }
  body.has-mobile-menu-open .site-header__toggle {
    color: var(--color-neutral-0);
  }
  body.has-mobile-menu-open .site-header__toggle:hover,
  body.has-mobile-menu-open .site-header__toggle:focus-visible {
    background: rgb(255 255 255 / 0.1);
  }
  body.has-mobile-menu-open .site-header__toggle-line:nth-child(1) {
    transform: translateY(calc(0.3rem + 2px)) rotate(45deg);
  }
  body.has-mobile-menu-open .site-header__toggle-line:nth-child(2) {
    opacity: 0;
  }
  body.has-mobile-menu-open .site-header__toggle-line:nth-child(3) {
    transform: translateY(calc(-0.3rem - 2px)) rotate(-45deg);
  }
  body.has-mobile-menu-open {
    overflow: hidden;
  }
  .site-header__backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 128;
    min-block-size: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: rgb(15 23 42 / 0.58);
    opacity: 0;
    pointer-events: none;
  }
  .site-header__nav {
    position: fixed;
    inset-block: 0;
    inset-inline-end: 0;
    z-index: 130;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-xl);
    inline-size: min(calc(100vw - 1rem), 320px);
    padding: calc(var(--admin-bar-offset) + var(--header-height) + var(--space-m)) var(--space-l) calc(var(--space-2xl) + env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    background: var(--color-primary-900);
    box-shadow: -18px 0 40px rgb(15 23 42 / 0.22);
    opacity: 0;
    visibility: hidden;
    transform: translateX(100%);
  }
  .site-header__nav:focus {
    outline: none;
  }
  body.has-mobile-menu-ready .site-header__backdrop {
    transition: opacity var(--transition-standard);
  }
  body.has-mobile-menu-ready .site-header__nav {
    transition: transform var(--transition-standard), visibility var(--transition-standard);
  }
  body.has-mobile-menu-open .site-header__nav {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
  }
  body.has-mobile-menu-open .site-header__backdrop {
    opacity: 1;
    pointer-events: auto;
  }
  .site-header__menu {
    flex-direction: column;
    gap: 0;
    margin-block-start: auto;
  }
  .site-header__menu li {
    border-block-end: var(--border-width-thin) solid rgb(255 255 255 / 0.18);
  }
  .site-header__menu li:first-child {
    border-block-start: var(--border-width-thin) solid rgb(255 255 255 / 0.18);
  }
  .site-header__menu a {
    display: block;
    padding-block: var(--space-m);
    color: rgb(255 255 255 / 0.96);
    font-family: var(--font-family-heading);
    font-size: var(--heading-5);
    font-weight: var(--font-weight-medium);
  }
  .site-header__menu a:hover,
  .site-header__menu a:focus-visible,
  .site-header__menu .current-menu-item > a,
  .site-header__menu .current-menu-ancestor > a {
    color: var(--color-accent-on-dark);
  }
  .site-header__menu a::after {
    display: none;
  }
  .site-header__cta {
    --button-bg: var(--color-neutral-0);
    --button-bg-hover: var(--color-primary-100);
    --button-text: var(--color-primary-900);
    --button-border: var(--button-border-width) solid var(--color-neutral-0);
    --button-border-hover: var(--button-border-width) solid var(--color-primary-100);
    --button-padding-y: 1rem;
    --button-font-size: var(--text-l);
    margin-block-end: auto;
  }
}
body.is-resizing-mobile-menu .site-header__nav,
body.is-resizing-mobile-menu .site-header__backdrop,
body.is-resizing-mobile-menu .site-header__toggle,
body.is-resizing-mobile-menu .site-header__toggle-line {
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .site-header__nav,
  .site-header__backdrop,
  .site-header__toggle,
  .site-header__toggle-line,
  .site-header__menu a::after {
    transition: none;
  }
}
.canopy-shell-section,
.canopy-page,
.canopy-service-page {
  padding-inline: var(--section-padding-x);
  padding-block: var(--section-padding-y);
}
.canopy-shell-container,
.canopy-page__inner,
.canopy-service-page__inner {
  width: min(100%, var(--layout-container-width, var(--container-width)));
  margin-inline: auto;
}
.canopy-shell-reading {
  width: min(100%, var(--layout-reading-width, var(--content-width-reading)));
  margin-inline: 0 auto;
}
.canopy-page__inner > * + * {
  margin-top: var(--page-stack-space);
}
.canopy-service-page__content > * + *,
.canopy-front-page__content > * + * {
  margin-top: var(--front-page-content-stack-space);
}
.canopy-page__content > * + * {
  margin-top: var(--page-content-stack-space);
}
.section {
  padding-inline: var(--section-padding-x);
  padding-block: var(--section-padding-y);
}
.site-footer {
  padding-inline: var(--section-padding-x);
  border-block-start: var(--border-width-thin) solid var(--color-border-on-dark);
  background: var(--color-surface-dark);
  color: var(--color-text-on-dark-muted);
}
.site-footer__inner {
  inline-size: min(100%, var(--footer-container-width));
  margin-inline: auto;
}
.site-footer__main {
  display: grid;
  grid-template-columns: minmax(0, 22rem) repeat(3, max-content);
  justify-content: space-between;
  gap: var(--space-xl);
  padding-block: var(--space-2xl);
}
.site-footer__company {
  display: grid;
  align-content: start;
  gap: var(--space-m);
  max-inline-size: 22rem;
}
.site-footer__column {
  display: grid;
  align-content: start;
  gap: var(--space-xs);
}
.site-footer__heading {
  margin-block-end: var(--space-xs);
  color: var(--color-text-on-dark);
  font-size: var(--text-m);
  letter-spacing: var(--letter-spacing-caps);
  text-transform: uppercase;
}
.site-footer__address {
  font-style: normal;
}
.site-footer__list {
  display: grid;
  gap: var(--space-xs);
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-footer a {
  color: var(--color-text-on-dark-muted);
  text-decoration: none;
}
.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--color-text-on-dark);
}
.site-footer .brand-logo {
  color: var(--color-text-on-dark);
}
.site-footer .site-footer__route {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  color: var(--color-accent-on-dark);
  font-weight: var(--font-weight-semibold);
}
.site-footer .site-footer__route:hover,
.site-footer .site-footer__route:focus-visible {
  color: var(--color-text-on-dark);
}
.site-footer__social a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
}
.site-footer__route .icon {
  inline-size: 1.1em;
  block-size: 1.1em;
}
.site-footer__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-s) var(--space-l);
  padding-block: var(--space-l);
  border-block-start: var(--border-width-thin) solid var(--color-border-on-dark);
  font-size: var(--text-s);
}
.site-footer__credit {
  white-space: nowrap;
}
.site-footer__legal-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-l);
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 1023px) {
  .site-footer__main {
    grid-template-columns: repeat(3, max-content);
  }
  .site-footer__company {
    grid-column: 1 / -1;
    max-inline-size: none;
  }
}
@media (max-width: 599px) {
  .site-footer__main {
    grid-template-columns: 1fr;
  }
}
.button,
.wp-element-button,
button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  min-height: 2.75rem;
  padding: var(--button-padding-y) var(--button-padding-x);
  border: var(--button-border);
  border-radius: var(--button-radius);
  background: var(--button-bg);
  color: var(--button-text);
  font-size: var(--button-font-size);
  font-weight: var(--button-font-weight);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition:
    background var(--transition-standard),
    color var(--transition-standard),
    border-color var(--transition-standard),
    transform var(--transition-standard);
}
.button:hover,
.button:focus-visible,
.wp-element-button:hover,
.wp-element-button:focus-visible,
button:hover,
button:focus-visible,
input[type="submit"]:hover,
input[type="submit"]:focus-visible,
input[type="button"]:hover,
input[type="button"]:focus-visible,
input[type="reset"]:hover,
input[type="reset"]:focus-visible {
  background: var(--button-bg-hover);
  border: var(--button-border-hover);
  color: var(--button-text);
  transform: translateY(-1px);
}
.button--outline,
.is-style-outline .wp-element-button {
  background: var(--button-outline-bg);
  color: var(--button-outline-text);
}
.button--outline:hover,
.button--outline:focus-visible,
.is-style-outline .wp-element-button:hover,
.is-style-outline .wp-element-button:focus-visible {
  color: var(--button-outline-text-hover);
}
.button:disabled,
button:disabled,
input[type="submit"]:disabled,
input[type="button"]:disabled,
input[type="reset"]:disabled {
  cursor: not-allowed;
}
.ff-message-success,
.fluentform .ff-message-success,
.frm-fluent-form .ff-message-success {
  background: var(--color-primary-500) !important;
  color: #ffffff !important;
  font-weight: 500 !important;
  text-align: center !important;
  border: none !important;
  box-shadow: none !important;
}
.ff-el-form-control:focus,
.ff-el-form-control:focus-visible,
.fluentform .ff-el-form-control:focus,
.fluentform .ff-el-form-control:focus-visible,
.frm-fluent-form .ff-el-form-control:focus,
.frm-fluent-form .ff-el-form-control:focus-visible {
  border-color: var(--color-primary-500) !important;
  box-shadow: 0 0 0 1px var(--color-primary-500) !important;
  outline: 0 !important;
}
.visually-hidden {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.nowrap {
  white-space: nowrap;
}
.icon-sprite {
  position: absolute;
  inline-size: 0;
  block-size: 0;
  overflow: hidden;
}
.icon {
  flex-shrink: 0;
  inline-size: var(--icon-size-s);
  block-size: var(--icon-size-s);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.icon--star {
  fill: var(--color-star);
  stroke: none;
}
:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-focus);
  outline-offset: var(--focus-ring-offset);
}
.brand-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.2em;
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-size: var(--text-2xl);
  font-weight: var(--font-weight-bold);
  line-height: 1;
  letter-spacing: 0.01em;
  text-decoration: none;
  text-transform: uppercase;
}
.brand-logo__mark {
  padding-block: 0.12em;
  padding-inline: 0.28em calc(var(--brand-slant) + 0.12em);
  background: var(--color-primary-300);
  clip-path: polygon(0 0, 100% 0, calc(100% - var(--brand-slant)) 100%, 0 100%);
}
.brand-logo:hover,
.brand-logo:focus-visible {
  color: var(--color-primary-500);
}
.brand-logo--on-dark {
  color: var(--color-text-on-dark);
}
.brand-logo--on-dark .brand-logo__mark {
  color: var(--color-primary-900);
}
.brand-logo--on-dark:hover,
.brand-logo--on-dark:focus-visible {
  color: var(--color-accent-on-dark);
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  color: var(--color-primary-500);
  font-family: var(--font-family-heading);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-caps);
  text-transform: uppercase;
}
.eyebrow::before {
  content: "";
  inline-size: 1.6em;
  block-size: 0.7em;
  background: var(--color-primary-300);
  clip-path: polygon(0 0, 100% 0, calc(100% - 0.35em) 100%, 0 100%);
}
.eyebrow--on-dark {
  color: var(--color-accent-on-dark);
}
.section-header {
  display: grid;
  gap: var(--space-s);
  max-inline-size: var(--content-width-m);
  margin-block-end: var(--space-2xl);
}
.section-header--center {
  justify-items: center;
  margin-inline: auto;
  text-align: center;
}
.section-header__intro {
  color: var(--color-text-muted);
  font-size: var(--text-l);
}
.check-list {
  display: grid;
  gap: var(--space-s);
  padding: 0;
  list-style: none;
}
.check-list li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-s);
  font-weight: var(--font-weight-semibold);
}
.check-list .icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
  padding: 0.3rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-primary-500);
  stroke-width: 2.4;
}
.button .icon {
  inline-size: var(--icon-size-s);
  block-size: var(--icon-size-s);
}
.button--large {
  --button-padding-y: 1.05rem;
  --button-padding-x: 1.75rem;
  --button-font-size: var(--text-l);
}
.button--outline:hover,
.button--outline:focus-visible {
  background: var(--color-primary-500);
  border-color: var(--color-primary-500);
  color: var(--color-neutral-0);
}
.button--light {
  --button-bg: var(--color-neutral-0);
  --button-bg-hover: var(--color-primary-100);
  --button-text: var(--color-primary-900);
  --button-border: var(--button-border-width) solid var(--color-neutral-0);
  --button-border-hover: var(--button-border-width) solid var(--color-primary-100);
}
.button--ghost-light {
  --button-bg: transparent;
  --button-bg-hover: rgb(255 255 255 / 0.1);
  --button-text: var(--color-text-on-dark);
  --button-border: var(--button-border-width) solid rgb(255 255 255 / 0.5);
  --button-border-hover: var(--button-border-width) solid var(--color-neutral-0);
}
:where(.help-band, .cta, .site-footer, .mobile-contact-bar) :focus-visible {
  outline-color: var(--color-focus-on-dark);
}
.service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  padding: var(--space-xl) var(--space-l);
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition-standard), transform var(--transition-standard), border-color var(--transition-standard);
}
.service-card:hover,
.service-card:focus-within {
  border-color: var(--color-primary-200);
  box-shadow: var(--shadow-card-hover);
  transform: translateY(var(--translate-interactive-hover));
}
.service-card__icon {
  display: inline-grid;
  place-items: center;
  inline-size: var(--icon-size-l);
  block-size: var(--icon-size-l);
  margin-block-end: var(--space-xs);
  border-radius: var(--radius-s);
  background: var(--color-primary-500);
  color: var(--color-neutral-0);
}
.service-card__icon .icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
}
.service-card__title {
  font-size: var(--heading-5);
}
.service-card__text {
  color: var(--color-text-muted);
}
.service-card__link,
.step__link,
.rating-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  margin-block-start: auto;
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
}
.service-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
.service-card__link .icon,
.step__link .icon,
.rating-card__link .icon {
  inline-size: 1.1em;
  block-size: 1.1em;
  transition: transform var(--transition-standard);
}
.service-card:hover .service-card__link .icon,
.service-card__link:focus-visible .icon,
.step__link:hover .icon,
.step__link:focus-visible .icon,
.rating-card__link:hover .icon,
.rating-card__link:focus-visible .icon {
  transform: translateX(0.2em);
}
.step {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding: var(--space-l);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.step__number {
  color: var(--color-primary-300);
  font-family: var(--font-family-heading);
  font-size: var(--heading-3);
  font-weight: var(--font-weight-bold);
  line-height: 1;
}
.step__text {
  color: var(--color-heading);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-body-tight);
  text-wrap: pretty;
}
.step--highlight {
  background: var(--color-primary-500);
}
.step--highlight .step__number {
  color: var(--color-accent-on-dark);
}
.step--highlight .step__text {
  color: var(--color-text-on-dark);
}
.step--highlight .step__link {
  color: var(--color-text-on-dark);
  font-size: var(--text-s);
}
.step--highlight .step__link:hover,
.step--highlight .step__link:focus-visible {
  color: var(--color-primary-100);
}
.step--highlight :focus-visible {
  outline-color: var(--color-focus-on-dark);
}
.rating-card,
.review-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  margin: 0;
  padding: var(--space-xl) var(--space-l);
  border-radius: var(--radius-m);
}
.rating-card {
  align-items: center;
  justify-content: center;
  background: var(--color-primary-900);
  color: var(--color-text-on-dark);
  text-align: center;
}
.rating-card__score {
  font-family: var(--font-family-heading);
  font-size: calc(var(--heading-1) * 1.25);
  font-weight: var(--font-weight-bold);
  line-height: 1;
}
.rating-card__stars {
  display: flex;
  gap: var(--space-2xs);
}
.rating-card__stars .icon {
  fill: var(--color-star);
  stroke: none;
}
.rating-card__count {
  color: var(--color-text-on-dark-muted);
}
.rating-card__link {
  margin-block-start: var(--space-xs);
  color: var(--color-accent-on-dark);
}
.rating-card__link:hover,
.rating-card__link:focus-visible {
  color: var(--color-text-on-dark);
}
.rating-card :focus-visible {
  outline-color: var(--color-focus-on-dark);
}
.review-card {
  border: var(--border-width-thin) solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.review-card__quote {
  inline-size: var(--icon-size-l);
  block-size: var(--icon-size-l);
  fill: var(--color-primary-300);
  stroke: none;
}
.review-card__text {
  margin: 0;
  font-size: var(--text-l);
  line-height: var(--line-height-body-tight);
}
.review-card__author {
  display: flex;
  align-items: center;
  gap: var(--space-s);
  margin-block-start: auto;
  padding-block-start: var(--space-s);
  border-block-start: var(--border-width-thin) solid var(--color-border);
  color: var(--color-heading);
  font-weight: var(--font-weight-semibold);
}
.review-card__avatar {
  display: inline-grid;
  place-items: center;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100);
  color: var(--color-primary-500);
  font-family: var(--font-family-heading);
  font-size: var(--text-s);
}
.team-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-l);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.team-card__image {
  inline-size: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 20%;
}
.team-card__image--placeholder {
  display: grid;
  place-content: center;
  justify-items: center;
  gap: var(--space-xs);
  background: var(--color-primary-100);
  color: var(--color-primary-500);
  font-size: var(--text-s);
  font-weight: var(--font-weight-semibold);
}
.team-card__image--placeholder .icon {
  inline-size: var(--icon-size-l);
  block-size: var(--icon-size-l);
}
.team-card__body {
  display: grid;
  gap: var(--space-2xs);
  padding: var(--space-l);
}
.team-card__name {
  font-size: var(--heading-5);
}
.team-card__role {
  color: var(--color-text-muted);
}
.team-card__highlight {
  display: flex;
  align-items: center;
  gap: var(--space-s);
  margin-block-start: var(--space-s);
  padding: var(--space-xs) var(--space-s);
  border-radius: var(--radius-m);
  background: var(--color-primary-50);
  line-height: var(--line-height-heading-tight);
}
.team-card__highlight .icon,
.team-card__highlight-logo {
  flex-shrink: 0;
  inline-size: calc(var(--icon-size-m) * 1.25);
  block-size: calc(var(--icon-size-m) * 1.25);
  color: var(--color-primary-500);
}
.team-card__highlight strong {
  display: block;
  color: var(--color-heading);
  font-size: var(--text-s);
}
.team-card__highlight strong + span {
  display: block;
  margin-block-start: var(--space-2xs);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  line-height: var(--line-height-body-tight);
}
.team-card__qualifications {
  gap: var(--space-xs);
  margin-block-start: var(--space-s);
  font-size: var(--text-s);
  line-height: var(--line-height-body-tight);
}
.team-card__qualifications .icon {
  flex-shrink: 0;
  inline-size: var(--icon-size-s);
  block-size: var(--icon-size-s);
  padding: 0.2rem;
}
@media (prefers-reduced-motion: reduce) {
  .service-card,
  .service-card__link .icon,
  .step__link .icon,
  .rating-card__link .icon {
    transition: none;
  }
}
.disclosure {
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  transition: border-color var(--transition-standard), box-shadow var(--transition-standard);
}
.disclosure + .disclosure {
  margin-block-start: var(--space-s);
}
.disclosure[open] {
  border-color: var(--color-primary-200);
  box-shadow: var(--shadow-card);
}
.disclosure__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-m);
  padding: var(--space-m) var(--space-l);
  color: var(--color-heading);
  font-size: var(--text-l);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-body-tight);
  list-style: none;
  cursor: pointer;
  transition: color var(--transition-standard);
}
.disclosure__summary::-webkit-details-marker {
  display: none;
}
.disclosure__summary:hover,
.disclosure__summary:focus-visible {
  color: var(--color-primary-500);
}
.disclosure__summary:focus-visible {
  outline-offset: calc(var(--focus-ring-width) * -1);
  border-radius: var(--radius-m);
}
.disclosure__icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
  padding: 0.25rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-50);
  color: var(--color-primary-500);
  transition: transform var(--transition-standard), background-color var(--transition-standard);
}
.disclosure[open]:not(.is-closing) .disclosure__icon {
  background: var(--color-primary-500);
  color: var(--color-neutral-0);
  transform: rotate(180deg);
}
.disclosure__content {
  padding: 0 var(--space-l) var(--space-l);
  color: var(--color-text);
}
.disclosure__content ul {
  padding-inline-start: var(--list-indent-space);
}
.disclosure__content li + li {
  margin-block-start: var(--list-item-space);
}
.disclosure__content li::marker {
  color: var(--color-primary-300);
}
@media (prefers-reduced-motion: reduce) {
  .disclosure,
  .disclosure__icon {
    transition: none;
  }
}
.lightbox {
  inline-size: min(100% - 2 * var(--space-m), 48rem);
  max-block-size: calc(100dvh - 2 * var(--space-m));
  padding: 0;
  border: 0;
  border-radius: var(--radius-l);
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
  overflow: visible;
}
.lightbox::backdrop {
  background: rgb(22 35 61 / 0.82);
}
.lightbox[open] {
  animation: lightbox-in var(--transition-standard);
}
.lightbox__figure {
  margin: 0;
}
.lightbox__image {
  inline-size: 100%;
  max-block-size: calc(100dvh - 9rem);
  border-radius: var(--radius-l) var(--radius-l) 0 0;
  object-fit: contain;
  background: var(--color-neutral-900);
}
.lightbox__caption {
  padding: var(--space-m) var(--space-l);
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-size: var(--text-xl);
  font-weight: var(--font-weight-medium);
}
.lightbox__close {
  --button-bg: var(--color-neutral-0);
  --button-bg-hover: var(--color-primary-100);
  --button-text: var(--color-primary-900);
  --button-border: var(--button-border-width) solid var(--color-neutral-0);
  --button-border-hover: var(--button-border-width) solid var(--color-primary-100);
  --button-padding-x: 0;
  --button-padding-y: 0;
  --button-radius: var(--radius-pill);
  position: absolute;
  inset-block-start: calc(var(--space-s) * -1);
  inset-inline-end: calc(var(--space-s) * -1);
  inline-size: 2.75rem;
  block-size: 2.75rem;
  box-shadow: var(--shadow-soft);
}
.lightbox__close:hover,
.lightbox__close:focus-visible {
  transform: none;
}
@keyframes lightbox-in {
  from {
    opacity: 0;
    transform: scale(0.97);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lightbox[open] {
    animation: none;
  }
}
.asim-image {
  display: block;
  inline-size: 100%;
  block-size: auto;
  object-fit: cover;
}
.asim-figure {
  position: relative;
  display: block;
}
.asim-ai-label {
  position: absolute;
  inset-block-end: var(--space-xs);
  inset-inline-end: var(--space-xs);
  padding: 0.15em 0.55em;
  border-radius: var(--radius-xs);
  background: rgb(0 0 0 / 0.62);
  color: var(--color-neutral-0);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-body-tight);
  pointer-events: none;
}
.prose .asim-figure {
  display: inline-block;
}
.icon--muted {
  opacity: 0.3;
}
.google-attribution {
  display: inline-block;
  color: var(--color-google-attribution);
  font-family: Roboto, Arial, sans-serif;
  font-size: var(--text-2xs);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  letter-spacing: normal;
  white-space: nowrap;
}
.google-attribution--on-dark {
  color: var(--color-google-attribution-on-dark);
}
.rating-card .google-attribution {
  margin-block-start: var(--space-xs);
}
:root {
  --lc-max-width: var(--site-max-width);
  --lc-content-width: var(--container-width);
  --lc-font: var(--font-family-body);
  --lc-accent: var(--color-primary-500);
  --lc-radius: var(--button-radius);
}
:root .lc-btn:hover,
:root .lc-btn:focus-visible {
  border-color: var(--color-primary-700);
  background-color: var(--color-primary-700);
  color: var(--color-neutral-0);
  filter: none;
  transform: none;
}
:root .lc-linkbtn:hover,
:root .lc-linkbtn:focus-visible,
:root .lc-settings-link:hover,
:root .lc-settings-link:focus-visible {
  border: 0;
  background: transparent;
  color: var(--color-link-hover);
  transform: none;
}
:root .site-footer .lc-settings-link:hover,
:root .site-footer .lc-settings-link:focus-visible {
  color: var(--color-text-on-dark);
}
html.lenis,
html.lenis body {
  height: auto;
}
html.lenis.lenis-smooth {
  scroll-behavior: auto;
}
.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}
.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}
.lenis.lenis-smooth iframe {
  pointer-events: none;
}
.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}
.why,
.about,
.faq {
  background: var(--color-surface-alt);
}
.hero__media::before,
.why__media::before,
.team::before {
  content: "";
  position: absolute;
  z-index: -1;
  background: var(--color-primary-300);
  clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);
}
.hero {
  padding: var(--space-2xl) var(--section-padding-x) var(--space-3xl);
  background: linear-gradient(180deg, var(--color-primary-50) 0%, var(--color-surface) 100%);
  overflow: clip;
}
.hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  align-items: center;
  gap: var(--space-2xl);
}
.hero__content {
  display: grid;
  justify-items: start;
  gap: var(--space-m);
}
.hero__title {
  font-size: var(--heading-1);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading-tight);
}
.hero__lead {
  max-inline-size: var(--content-width-s);
  color: var(--color-text-muted);
  font-size: var(--text-l);
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
  margin-block-start: var(--space-xs);
}
.hero__proof {
  display: grid;
  justify-items: start;
  gap: var(--space-xs);
  margin-block-start: var(--space-m);
}
.hero__credentials {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
  margin: 0;
  padding: var(--space-s) var(--space-m);
  border: var(--border-width-thin) solid var(--color-primary-100);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  list-style: none;
}
.hero__credential {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  line-height: var(--line-height-heading-tight);
}
.hero__credential + .hero__credential {
  padding-inline-start: var(--space-s);
  border-inline-start: var(--border-width-thin) solid var(--color-border);
}
.hero__credential .icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
  color: var(--color-primary-500);
}
.hero__credential-logo {
  flex-shrink: 0;
  inline-size: calc(var(--icon-size-m) * 1.25);
  block-size: calc(var(--icon-size-m) * 1.25);
}
.hero__credential strong {
  display: block;
  color: var(--color-heading);
  font-size: var(--text-s);
}
.hero__credential strong + span {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}
.hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s) var(--space-l);
  margin: 0;
  padding: 0;
  list-style: none;
}
.hero__facts li {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  color: var(--color-heading);
  font-size: var(--text-s);
  font-weight: var(--font-weight-semibold);
}
.hero__facts .icon {
  color: var(--color-primary-500);
}
.hero__rating {
  display: inline-flex;
  align-items: center;
  gap: inherit;
  color: inherit;
  text-decoration: none;
}
.hero__media {
  position: relative;
  isolation: isolate;
  justify-self: end;
  inline-size: min(100%, 28rem);
  margin: 0;
}
.hero__media::before {
  inset: 10% -18% -8% 22%;
}
.hero__image {
  inline-size: 100%;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-l);
  object-fit: cover;
  object-position: 50% 18%;
  box-shadow: var(--shadow-soft);
}
.hero__badge {
  position: absolute;
  inset-inline-start: calc(var(--space-2xl) * -1);
  inset-block-end: var(--space-xl);
  display: flex;
  align-items: flex-start;
  gap: var(--space-s);
  max-inline-size: 17rem;
  padding: var(--space-m);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-soft);
  font-size: var(--text-s);
  line-height: var(--line-height-body-tight);
}
.hero__badge strong {
  display: block;
  color: var(--color-heading);
}
.hero__badge .icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
  color: var(--color-primary-500);
}
.help-band {
  padding: var(--space-xl) var(--section-padding-x);
  background: var(--color-primary-500);
  color: var(--color-text-on-dark);
}
.help-band__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-l) var(--space-xl);
}
.help-band__questions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, auto));
  justify-content: start;
  gap: var(--space-s) var(--space-xl);
  margin: 0;
  padding: 0;
  list-style: none;
}
.help-band__question {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  font-family: var(--font-family-heading);
  font-size: var(--text-l);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-heading);
}
.help-band__action {
  flex-shrink: 0;
}
.help-band__question .icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
  color: var(--color-accent-on-dark);
}
.services__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: var(--grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.why__inner,
.about__inner,
.faq__inner,
.cta__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: var(--space-2xl);
}
.why__media {
  position: relative;
  isolation: isolate;
  padding-block-end: var(--space-2xl);
}
.why__media::before {
  inset: -6% 30% 18% -10%;
}
.why__image {
  object-fit: cover;
}
.why__image--main {
  inline-size: 88%;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-soft);
}
.why__image--detail {
  position: absolute;
  inset-inline-end: 0;
  inset-block-end: 0;
  inline-size: 48%;
  aspect-ratio: 4 / 3;
  border: 6px solid var(--color-surface);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-soft);
}
.why__content,
.about__content,
.faq__intro,
.cta__content {
  display: grid;
  justify-items: start;
  gap: var(--space-m);
}
.why__content .check-list,
.about__content .check-list {
  margin-block: var(--space-xs);
}
.payouts {
  display: grid;
  gap: var(--space-s);
  inline-size: 100%;
  margin-block-start: var(--space-s);
  padding-block-start: var(--space-l);
  border-block-start: var(--border-width-thin) solid var(--color-border);
}
.payouts__title {
  font-size: var(--text-m);
  letter-spacing: var(--letter-spacing-caps);
  text-transform: uppercase;
}
.payouts__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-s);
  margin: 0;
  padding: 0;
  list-style: none;
}
.payout {
  display: grid;
  block-size: 100%;
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  color: var(--color-heading);
  text-decoration: none;
  overflow: hidden;
  transition: box-shadow var(--transition-standard), transform var(--transition-standard), border-color var(--transition-standard);
}
.payout:hover,
.payout:focus-visible {
  border-color: var(--color-primary-200);
  box-shadow: var(--shadow-card-hover);
  color: var(--color-heading);
  transform: translateY(var(--translate-interactive-hover));
}
.payout__media {
  position: relative;
  display: block;
  overflow: hidden;
}
.payout__media img {
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform var(--transition-standard);
}
.payout:hover .payout__media img,
.payout:focus-visible .payout__media img {
  transform: scale(1.06);
}
.payout__zoom {
  position: absolute;
  inset-block-start: var(--space-xs);
  inset-inline-end: var(--space-xs);
  display: inline-grid;
  place-items: center;
  inline-size: 2rem;
  block-size: 2rem;
  border-radius: var(--radius-pill);
  background: rgb(255 255 255 / 0.92);
  color: var(--color-primary-500);
  opacity: 0;
  transition: opacity var(--transition-standard);
}
.payout__zoom .icon {
  inline-size: 1.1rem;
  block-size: 1.1rem;
}
.payout:hover .payout__zoom,
.payout:focus-visible .payout__zoom {
  opacity: 1;
}
@media (hover: none) {
  .payout__zoom {
    opacity: 1;
  }
}
.payout__body {
  display: grid;
  gap: var(--space-2xs);
  padding: var(--space-xs) var(--space-s) var(--space-s);
}
.payout__car {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-body-tight);
}
.payout__amount {
  color: var(--color-primary-500);
  font-family: var(--font-family-heading);
  font-size: var(--text-xl);
  font-weight: var(--font-weight-semibold);
  line-height: 1.1;
}
.payout__label {
  display: block;
  color: var(--color-text-muted);
  font-family: var(--font-family-body);
  font-size: var(--text-2xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-caps);
  text-transform: uppercase;
}
@media (prefers-reduced-motion: reduce) {
  .payout,
  .payout__media img,
  .payout__zoom {
    transition: none;
  }
}
.steps__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: var(--space-m);
  margin: 0;
  padding: 0;
  list-style: none;
}
.steps .step {
  border: var(--border-width-thin) solid var(--color-border);
}
.steps .step--highlight {
  border-color: var(--color-primary-500);
}
.about__inner {
  grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
}
.team {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--grid-gap);
  padding: 0;
  list-style: none;
}
.team::before {
  inset: 10% -8% 20% 35%;
}
@media (max-width: 1099px) {
  .about__inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .team::before {
    inset: 10% -9% 20% 35%;
  }
}
.reviews__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) repeat(2, minmax(0, 1fr));
  gap: var(--grid-gap);
}
.faq__inner {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  align-items: start;
}
.faq__intro {
  position: sticky;
  inset-block-start: calc(var(--header-height) + var(--space-l));
}
.faq__intro p {
  color: var(--color-text-muted);
}
.cta {
  position: relative;
  isolation: isolate;
  background: var(--color-surface-dark);
  color: var(--color-text-on-dark-muted);
  overflow: clip;
}
.cta::before {
  content: "";
  position: absolute;
  inset: -20% -10% -20% 55%;
  z-index: -1;
  background: var(--color-primary-700);
  clip-path: polygon(30% 0, 100% 0, 70% 100%, 0 100%);
}
.cta h2,
.cta h3 {
  color: var(--color-text-on-dark);
}
.cta__content p {
  font-size: var(--text-l);
}
.cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-s);
  margin-block-start: var(--space-xs);
}
.cta__area {
  display: grid;
  gap: var(--space-s);
  padding: var(--space-xl);
  border: var(--border-width-thin) solid var(--color-border-on-dark);
  border-radius: var(--radius-l);
  background: color-mix(in srgb, var(--color-primary-700) 45%, var(--color-primary-900));
  box-shadow: var(--shadow-soft);
}
.cta__area-title {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--heading-5);
}
.cta__area-title .icon {
  inline-size: var(--icon-size-m);
  block-size: var(--icon-size-m);
  color: var(--color-accent-on-dark);
}
.city-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin: 0;
  padding: 0;
  list-style: none;
}
.city-list li {
  padding: var(--space-2xs) var(--space-s);
  border: var(--border-width-thin) solid var(--color-border-on-dark);
  border-radius: var(--radius-pill);
  color: var(--color-text-on-dark);
  font-size: var(--text-s);
}
.cta__area-note {
  font-size: var(--text-s);
}
@media (max-width: 1199px) {
  .help-band__inner {
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
  }
}
@media (max-width: 1099px) {
  .steps__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .reviews__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rating-card {
    grid-column: 1 / -1;
  }
}
@media (max-width: 899px) {
  .hero__inner,
  .why__inner,
  .about__inner,
  .faq__inner,
  .cta__inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero__media {
    justify-self: center;
    inline-size: min(100% - var(--space-xl), 26rem);
  }
  .hero__badge {
    inset-inline-start: calc(var(--space-l) * -1);
  }
  .why__media {
    order: 2;
  }
  .faq__intro {
    position: static;
  }
  .help-band__inner {
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
  }
  .help-band__questions {
    grid-template-columns: minmax(0, 1fr);
  }
  .cta__inner {
    row-gap: var(--space-3xl);
  }
  .cta::before {
    display: none;
  }
  .cta__area {
    position: relative;
  }
  .cta__area::before {
    content: "";
    position: absolute;
    inset: calc(var(--space-xl) * -1) -50vw -100vh 25%;
    z-index: -1;
    background: var(--color-primary-700);
    clip-path: polygon(30% 0, 100% 0, 70% 100%, 0 100%);
  }
}
@media (max-width: 599px) {
  .steps__list {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: auto;
    gap: var(--space-s);
  }
  .steps .step {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    align-items: center;
    gap: var(--space-2xs) var(--space-s);
    padding: var(--space-m);
  }
  .steps .step__number {
    font-size: var(--heading-4);
  }
  .steps .step__link {
    grid-column: 2;
  }
  .reviews__grid,
  .team {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero__actions .button {
    flex: 1 1 100%;
  }
  .hero__proof {
    gap: var(--space-l);
  }
  .hero__credentials {
    flex-direction: column;
    justify-self: stretch;
  }
  .hero__credential + .hero__credential {
    padding-block-start: var(--space-s);
    padding-inline-start: 0;
    border-block-start: var(--border-width-thin) solid var(--color-border);
    border-inline-start: 0;
  }
  .hero__badge {
    position: relative;
    inset: auto;
    max-inline-size: none;
    margin-block-start: calc(var(--space-xl) * -1);
    margin-inline: var(--space-s);
  }
  .hero__media::before {
    inset: 10% -9% 8% 30%;
  }
  .why__media::before {
    inset: -6% 30% 14% -9%;
  }
  .team::before {
    inset: 10% -4% 20% 35%;
  }
}
.page-hero {
  padding-inline: var(--section-padding-x);
  padding-block: var(--space-2xl) var(--space-xl);
  background: var(--color-surface-alt);
}
.page-hero__inner {
  display: grid;
  gap: var(--space-xl);
}
.page-hero__inner--media {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  align-items: center;
}
.page-hero__content {
  display: grid;
  justify-items: start;
  gap: var(--space-m);
  max-inline-size: var(--content-width-l);
}
.page-hero__title {
  font-size: var(--heading-1);
}
.page-hero__lead {
  color: var(--color-text-muted);
  font-size: var(--text-l);
}
.page-hero__media {
  margin: 0;
}
.page-hero__image {
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-soft);
}
.subpage-body {
  padding-block-end: var(--space-xl);
}
.prose {
  max-inline-size: var(--content-width-reading);
}
.prose h2 {
  margin-block-start: var(--space-xl);
  font-size: var(--heading-3);
}
.prose h3 {
  margin-block-start: var(--space-l);
  font-size: var(--heading-4);
}
.prose h4,
.prose h5,
.prose h6 {
  margin-block-start: var(--space-m);
  font-size: var(--heading-5);
}
.prose ul,
.prose ol {
  padding-inline-start: var(--space-l);
}
.prose li + li {
  margin-block-start: var(--space-2xs);
}
.prose a {
  color: var(--color-link);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
  transition: color var(--transition-standard);
}
.prose a:hover,
.prose a:focus-visible {
  color: var(--color-link-hover);
}
.prose img {
  max-inline-size: 100%;
  block-size: auto;
  border-radius: var(--radius-m);
}
.prose figure,
.prose .wp-caption {
  max-inline-size: 100%;
  margin-inline: 0;
}
.prose .wp-caption-text,
.prose figcaption {
  margin-block-start: var(--space-2xs);
  color: var(--color-text-muted);
  font-size: var(--text-s);
}
.prose table {
  inline-size: 100%;
  border-collapse: collapse;
}
.prose th,
.prose td {
  padding: var(--space-xs) var(--space-s);
  border: var(--border-width-thin) solid var(--color-border);
  text-align: start;
}
.regions__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
  gap: var(--grid-gap);
  padding: 0;
  list-style: none;
}
.region-card {
  display: grid;
  align-content: start;
  gap: var(--space-s);
  padding: var(--space-l);
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.region-card__title {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-size: var(--heading-5);
}
.region-card__title .icon,
.related-links .icon,
.contact-card .icon {
  color: var(--color-primary-500);
}
.region-card__links,
.related-links__list {
  display: grid;
  gap: var(--space-2xs);
  padding: 0;
  list-style: none;
}
.region-card__links a,
.related-links__list a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  color: var(--color-link);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  transition: color var(--transition-standard);
}
.region-card__links a:hover,
.region-card__links a:focus-visible,
.related-links__list a:hover,
.related-links__list a:focus-visible {
  color: var(--color-link-hover);
  text-decoration: underline;
}
.aside-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20rem;
  align-items: start;
  gap: var(--space-2xl);
}
.content-aside {
  position: sticky;
  inset-block-start: calc(var(--header-height) + var(--admin-bar-offset) + var(--space-l));
  display: flex;
  flex-direction: column;
  gap: var(--space-m);
  max-block-size: calc(100dvh - var(--header-height) - var(--admin-bar-offset) - var(--space-l) * 2);
}
.content-aside .toc {
  display: flex;
  flex-direction: column;
  min-block-size: 0;
}
.aside-contact {
  flex-shrink: 0;
}
@media (min-width: 1024px) and (max-height: 760px) {
  .content-aside {
    position: static;
    max-block-size: none;
  }
}
.toc--mobile {
  display: none;
}
.toc {
  padding: var(--space-l);
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-l);
  background: var(--color-surface);
}
.toc__title {
  margin-block-end: var(--space-s);
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-size: var(--text-s);
  letter-spacing: var(--letter-spacing-caps);
  text-transform: uppercase;
}
.toc__list {
  display: grid;
  gap: var(--space-s);
  min-block-size: 0;
  margin: 0;
  padding: 0 0 2px;
  overflow-y: auto;
  list-style: none;
  font-size: var(--text-s);
  line-height: 1.3;
  scrollbar-width: thin;
  scrollbar-color: var(--color-primary-200) var(--color-primary-50);
}
.toc__list:hover {
  scrollbar-color: var(--color-primary-300) var(--color-primary-50);
}
.toc__list::-webkit-scrollbar {
  inline-size: 6px;
}
.toc__list::-webkit-scrollbar-track {
  border-radius: var(--radius-pill);
  background: var(--color-primary-50);
}
.toc__list::-webkit-scrollbar-thumb {
  border-radius: var(--radius-pill);
  background: var(--color-primary-200);
}
.toc__list:hover::-webkit-scrollbar-thumb {
  background: var(--color-primary-300);
}
.content-aside .toc__list {
  margin-inline-end: calc(var(--space-l) / -2);
  padding-inline-end: calc(var(--space-l) / 2);
}
.toc__list a {
  display: block;
  color: var(--color-heading);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  transition: color var(--transition-standard);
}
.toc__list a:hover,
.toc__list a:focus-visible {
  color: var(--color-link);
}
.aside-contact {
  display: grid;
  justify-items: center;
  gap: var(--space-2xs);
  padding: var(--space-m) var(--space-l) var(--space-l);
  border-radius: var(--radius-l);
  background: var(--color-surface-alt);
  text-align: center;
}
.aside-contact__portrait {
  inline-size: 4rem;
  margin-block-end: var(--space-2xs);
  border-radius: 50%;
  box-shadow: var(--shadow-soft);
}
.aside-contact__title {
  color: var(--color-heading);
  font-family: var(--font-family-heading);
  font-size: var(--heading-5);
  line-height: 1.2;
}
.aside-contact__name {
  color: var(--color-text-muted);
  font-size: var(--text-s);
}
.aside-contact__actions {
  display: grid;
  gap: var(--space-xs);
  inline-size: 100%;
  margin-block-start: var(--space-s);
}
.aside-contact__actions .button {
  --button-padding-x: var(--space-m);
  --button-font-size: var(--text-s);
  justify-content: center;
}
.location-article {
  max-inline-size: none;
}
.location-article ul,
.location-article ol {
  display: grid;
  gap: var(--space-xs);
  padding-inline-start: 0;
  list-style: none;
}
.location-article li + li {
  margin-block-start: 0;
}
.location-article ul > li,
.location-article ol > li {
  position: relative;
  padding-inline-start: 2.25rem;
}
.location-article ul > li::before {
  content: "";
  position: absolute;
  inset-block-start: 0.15em;
  inset-inline-start: 0;
  inline-size: 1.5rem;
  block-size: 1.5rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23314a77' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 0.85rem no-repeat;
}
.location-article ol {
  counter-reset: location-step;
}
.location-article ol > li {
  counter-increment: location-step;
}
.location-article ol > li::before {
  content: counter(location-step);
  position: absolute;
  inset-block-start: 0.1em;
  inset-inline-start: 0;
  display: grid;
  place-items: center;
  inline-size: 1.6rem;
  block-size: 1.6rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-500);
  color: var(--color-neutral-0);
  font-family: var(--font-family-heading);
  font-size: var(--text-s);
  line-height: 1;
}
.location-article img {
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-soft);
}
.location-article figure,
.location-article .wp-caption {
  margin-block: var(--space-l);
}
@media (max-width: 1023px) {
  .aside-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-l);
  }
  .content-aside {
    display: none;
  }
  .toc--mobile {
    display: block;
    padding: 0;
  }
  .toc__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-m) var(--space-l);
    color: var(--color-heading);
    font-family: var(--font-family-heading);
    letter-spacing: var(--letter-spacing-caps);
    text-transform: uppercase;
    cursor: pointer;
    list-style: none;
  }
  .toc__summary::-webkit-details-marker {
    display: none;
  }
  .toc--mobile[open] .toc__summary .icon {
    transform: rotate(180deg);
  }
  .toc--mobile .toc__list {
    padding: 0 var(--space-l) var(--space-l);
  }
}
.location-reviews {
  background: var(--color-surface-alt);
}
.related-links {
  padding-block: var(--space-xl);
  background: var(--color-surface);
}
.related-links__title {
  margin-block-end: var(--space-m);
  font-size: var(--heading-4);
}
.related-links__list {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: var(--space-s) var(--grid-gap);
}
.about-intro__inner--media {
  display: grid;
  grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
  align-items: center;
  gap: var(--space-2xl);
}
.about-intro__media {
  position: relative;
  isolation: isolate;
  margin: 0;
}
.about-intro__media::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 12% 18% -6% -10%;
  background: var(--color-primary-300);
  clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);
}
.about-intro__image {
  inline-size: 100%;
  border-radius: var(--radius-l);
  object-fit: cover;
  box-shadow: var(--shadow-soft);
}
.about-intro__content {
  display: grid;
  gap: var(--space-m);
}
.memberships {
  background: var(--color-surface-alt);
}
.memberships__list {
  display: grid;
  gap: var(--grid-gap);
}
.membership {
  display: grid;
  gap: var(--space-xl);
  padding: var(--space-xl);
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.membership--media {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.membership__title {
  font-size: var(--heading-4);
}
.membership__images {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--space-m);
  padding: 0;
  list-style: none;
}
.membership__figure {
  display: grid;
  gap: var(--space-xs);
  inline-size: 11rem;
  margin: 0;
}
.membership__figure--logo {
  inline-size: 8rem;
}
.membership__image {
  inline-size: 100%;
  block-size: auto;
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-s);
  transition: transform var(--transition-standard);
}
.membership__figure--logo .membership__image {
  border: 0;
}
.membership__zoom {
  position: relative;
  display: block;
  cursor: zoom-in;
}
.membership__zoom-icon {
  position: absolute;
  inset-block-end: var(--space-xs);
  inset-inline-end: var(--space-xs);
  display: inline-grid;
  place-items: center;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-900);
  color: var(--color-text-on-dark);
  box-shadow: var(--shadow-soft);
  transition: transform var(--transition-standard);
}
.membership__zoom:hover .membership__image,
.membership__zoom:focus-visible .membership__image {
  transform: scale(1.02);
}
.membership__zoom:hover .membership__zoom-icon,
.membership__zoom:focus-visible .membership__zoom-icon {
  transform: scale(1.1);
}
.membership__caption {
  color: var(--color-text-muted);
  font-size: var(--text-s);
  line-height: var(--line-height-body-tight);
}
.values__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--grid-gap);
}
.value-card {
  display: grid;
  align-content: start;
  gap: var(--space-s);
  padding: var(--space-xl);
  border-block-start: var(--space-2xs) solid var(--color-primary-500);
  border-radius: var(--radius-m);
  background: var(--color-surface-alt);
}
.value-card__title {
  font-size: var(--heading-4);
}
.value-card__lead {
  color: var(--color-heading);
  font-size: var(--text-l);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-body-tight);
}
@media (prefers-reduced-motion: reduce) {
  .membership__image,
  .membership__zoom-icon {
    transition: none;
  }
}
.about--page .team {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 24rem));
  justify-content: center;
}
.about--page .team::before {
  display: none;
}
.contact__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: start;
  gap: var(--space-2xl);
}
.contact__title {
  margin-block-end: var(--space-m);
  font-size: var(--heading-4);
}
.contact-card {
  display: grid;
  gap: var(--space-m);
  padding: var(--space-xl);
  border-radius: var(--radius-l);
  background: var(--color-surface-alt);
}
.contact-card__portrait {
  inline-size: 6rem;
  border-radius: 50%;
  box-shadow: var(--shadow-soft);
}
.contact-card__title {
  font-size: var(--heading-5);
}
.contact-card__list {
  display: grid;
  gap: var(--space-m);
  padding: 0;
  list-style: none;
}
.contact-card__list li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-s);
}
.contact-card__list a {
  color: var(--color-heading);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  transition: color var(--transition-standard);
}
.contact-card__list a:hover,
.contact-card__list a:focus-visible {
  color: var(--color-link);
}
.contact-card address {
  font-style: normal;
}
.contact-card__route {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  margin-block-start: var(--space-2xs);
}
@media (max-width: 899px) {
  .page-hero__inner--media,
  .contact__inner,
  .about-intro__inner--media,
  .membership--media,
  .values__grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .about-intro__media {
    justify-self: center;
    inline-size: min(100% - var(--space-xl), 20rem);
  }
}
.article__layout {
  padding-block: var(--space-2xl);
}
.article__header {
  display: grid;
  gap: var(--space-xl);
  padding-block-end: var(--space-xl);
}
.article__heading {
  display: grid;
  justify-items: start;
  gap: var(--space-s);
  max-inline-size: var(--content-width-l);
}
.article__title {
  font-size: var(--heading-2);
}
.article__meta,
.post-card__date {
  color: var(--color-text-muted);
  font-size: var(--text-s);
}
.article__media {
  margin: 0;
  max-inline-size: var(--content-width-l);
}
.article__image {
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-soft);
}
.post-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: var(--grid-gap);
  padding: 0;
  list-style: none;
}
.post-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-m);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  transition: box-shadow var(--transition-standard), transform var(--transition-standard);
}
.post-card:hover,
.post-card:focus-within {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(var(--translate-interactive-hover));
}
.post-card__body {
  display: grid;
  gap: var(--space-xs);
  padding: var(--space-l);
}
.post-card__title {
  font-size: var(--heading-5);
}
.post-card__title a {
  color: var(--color-heading);
  text-decoration: none;
}
.post-card__title a::after {
  content: "";
  position: absolute;
  inset: 0;
}
.post-card__title a:focus-visible {
  outline: none;
}
.post-card:focus-within {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}
.post-card__excerpt {
  color: var(--color-text-muted);
  font-size: var(--text-s);
}
.topic-filter {
  margin-block-end: var(--space-xl);
}
.topic-filter ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  padding: 0;
  list-style: none;
}
.topic-filter__link {
  display: inline-block;
  padding: var(--space-2xs) var(--space-m);
  border: var(--border-width-thin) solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  color: var(--color-heading);
  font-size: var(--text-s);
  font-weight: var(--font-weight-semibold);
  text-decoration: none;
  transition: background-color var(--transition-standard), border-color var(--transition-standard);
}
.topic-filter__link:hover,
.topic-filter__link:focus-visible {
  border-color: var(--color-primary-300);
  background: var(--color-surface-accent-hover);
}
.topic-filter__link[aria-current="page"] {
  border-color: var(--color-primary-500);
  background: var(--color-primary-500);
  color: var(--color-neutral-0);
}
.posts__more,
.pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-s);
  margin-block-start: var(--space-xl);
}
.posts__loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-s);
  margin-block-start: var(--space-xl);
}
.posts__loader[hidden] {
  display: none;
}
.posts__status {
  color: var(--color-text-muted);
  font-size: var(--text-s);
}
.posts__status:empty {
  display: none;
}
@media (prefers-reduced-motion: reduce) {
  .topic-filter__link,
  .post-card {
    transition: none;
  }
}
.article__main .toc--mobile {
  margin-block-end: var(--space-l);
}
.related-posts {
  background: var(--color-surface-alt);
}
.canopy-page--legal {
  padding-block: var(--space-3xl);
}
.canopy-page--legal .canopy-page__article {
  display: grid;
  gap: var(--space-l);
}
.canopy-page__article--legal {
  --layout-reading-width: var(--content-width-reading);
}
.canopy-page--legal .canopy-page__content {
  --flow-space: var(--space-m);
  --paragraph-space: var(--space-s);
  --heading-space: var(--space-l);
}
.canopy-page--legal h1 {
  font-size: clamp(2rem, 1.7rem + 1vw, 2.6rem);
  line-height: 1.12;
}
.canopy-page--legal h2 {
  font-size: clamp(1.35rem, 1.15rem + 0.55vw, 1.75rem);
  line-height: 1.2;
}
.canopy-page--legal h3 {
  font-size: clamp(1.1rem, 1rem + 0.35vw, 1.35rem);
  line-height: 1.3;
}
.canopy-page--legal .canopy-page__content > * + h2 {
  margin-block-start: var(--space-xl);
}
.canopy-page--legal .canopy-page__content > h1 + h2 {
  margin-block-start: var(--space-2xl);
}
.canopy-page--legal .canopy-page__content p,
.canopy-page--legal .canopy-page__content li {
  font-size: var(--text-s);
}
.canopy-page--legal .legal-page__last-updated {
  margin-block-start: var(--space-2xl);
  font-style: italic;
}
.canopy-page--search {
  min-height: calc(100svh - var(--header-height));
  padding-block-start: calc(var(--header-height) + var(--space-2xl));
}
.canopy-page--search .canopy-page__article {
  max-width: var(--content-width-reading);
}
.canopy-page--search h1 {
  margin: 0 0 var(--space-xs);
}
.canopy-page--search .canopy-page__article > p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: var(--text-l);
  font-weight: var(--font-weight-semibold);
}
.canopy-page--search .canopy-page__content {
  display: grid;
  gap: var(--space-m);
  margin-top: var(--space-xl);
}
.canopy-page--search .canopy-page__content > article {
  padding: var(--space-l);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background: var(--color-surface);
}
.canopy-page--search .canopy-page__content h2 {
  margin: 0;
  font-size: var(--heading-4);
  line-height: var(--line-height-heading);
}
.canopy-page--search .canopy-page__content h2 a {
  color: var(--color-link);
  text-decoration: none;
}
.canopy-page--search .canopy-page__content h2 a:hover,
.canopy-page--search .canopy-page__content h2 a:focus-visible {
  color: var(--color-link-hover);
}
.canopy-page--search .canopy-page__content article p,
.canopy-page--search .canopy-page__content > p {
  color: var(--color-text-muted);
}
.canopy-page--search .canopy-page__content article p {
  margin-top: var(--space-s);
}
.canopy-page--search .canopy-page__content > p {
  margin: 0;
}
.canopy-page--search .canopy-page__content > p + p {
  margin-top: calc(var(--space-xs) * -1);
}
.canopy-page--not-found {
  min-height: calc(100svh - var(--header-height));
  display: grid;
  align-items: center;
}
.canopy-page--not-found .canopy-page__article {
  max-width: var(--content-width-s);
}
.not-found-page__code {
  margin-bottom: var(--space-s);
  color: var(--color-primary-500);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.canopy-page--not-found h1 {
  margin: 0;
}
.not-found-page__lead {
  max-width: 42rem;
  margin-top: var(--space-m);
  color: var(--color-text-muted);
  font-size: var(--text-l);
}
.not-found-page__path {
  margin-top: var(--space-s);
  overflow-wrap: anywhere;
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}
.not-found-page__path span {
  color: var(--color-text);
  font-weight: var(--font-weight-semibold);
}
.canopy-page--not-found .button {
  margin-top: var(--space-l);
}
@media (max-width: 40rem) {
  .canopy-page--not-found {
    align-items: start;
  }
}
.reveal {
  opacity: 0;
  transform: translateY(1.5rem);
  transition:
    opacity 0.7s ease var(--reveal-delay, 0ms),
    transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) var(--reveal-delay, 0ms);
}
.reveal.is-revealed {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
