html,
body {
  margin: 0;
  padding: 0;
}
html {
  scroll-padding-top: 1.5rem;
}
@font-face {
  font-family: WebsiteSans;
  src: url("/_website/assets/2ffebe993e969069a9789d15164b7715d42491b5835516c5e3b935d5f81b05f1") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: WebsiteSerif;
  src: url("/_website/assets/60c06664b5a95c7de6cc3e00d1f9034d78bd1e40b564016b241674449a067d4d") format("woff2");
  font-weight: 400;
  font-display: swap;
}
.website-system {
  --ws-bg: #faf9f6;
  --ws-paper: #fff;
  --ws-ink: #1e2b29;
  --ws-muted: #536460;
  --ws-accent: #155c50;
  --ws-line: #d8dfdb;
  --ws-space: clamp(1.25rem, 4vw, 4rem);
  --ws-max: 76rem;
  --ws-body: WebsiteSans, system-ui, sans-serif;
  --ws-heading: WebsiteSerif, Georgia, serif;
  --ws-on-strong: var(--ws-bg);
  --ws-radius: 0;
  --ws-small: 0.875rem;
  --ws-base: 1rem;
  --ws-large: 1.25rem;
  --ws-title: clamp(2.5rem, 6vw, 5.5rem);
  color: var(--ws-ink);
  background: var(--ws-bg);
  font: 400 var(--ws-base) / 1.7 var(--ws-body);
  min-height: 100vh;
  overflow-wrap: anywhere;
}
.website-system * {
  box-sizing: border-box;
}
.website-system a:not(.ws-button) {
  color: inherit;
  text-underline-offset: 0.22em;
}
.website-system a:not(.ws-button):hover {
  color: var(--ws-accent);
}
.website-system :focus-visible {
  outline: 0.18rem solid var(--ws-accent);
  outline-offset: 0.25rem;
}
.website-system h1,
.website-system h2,
.website-system h3,
.website-system h4 {
  font-family: var(--ws-heading);
  font-weight: 400;
  line-height: 1.13;
  text-wrap: balance;
  letter-spacing: -0.025em;
}
.website-system h1 {
  font-size: var(--ws-title);
  margin: 0.25em 0;
}
.website-system h2 {
  font-size: clamp(1.8rem, 3vw, 3rem);
  margin: 1.6em 0 0.65em;
}
.website-system h3 {
  font-size: 1.55rem;
  margin: 1.4em 0 0.5em;
}
.website-system h4 {
  font-size: 1.2rem;
}
.website-system p {
  margin: 0 0 1.2em;
}
.website-system img {
  display: block;
  max-width: 100%;
  height: auto;
  width: 100%;
  border-radius: var(--ws-radius);
}
.website-system figure {
  margin: 0;
}
.website-system figcaption {
  font-size: var(--ws-small);
  color: var(--ws-muted);
  margin-top: 0.75rem;
}
.ws-credit {
  display: block;
}
.ws-palette-dark {
  --ws-bg: #122b29;
  --ws-paper: #1d3935;
  --ws-ink: #f7f5eb;
  --ws-muted: #c1d0ca;
  --ws-accent: #b8dba4;
  --ws-line: #4e655b;
}
.ws-palette-warm {
  --ws-bg: #f6f0e5;
  --ws-paper: #fffdf7;
  --ws-ink: #342c22;
  --ws-muted: #6a6054;
  --ws-accent: #8c3c1f;
  --ws-line: #d9cebc;
}
.ws-type-modern {
  --ws-heading: WebsiteSans, system-ui, sans-serif;
}
.ws-type-traditional {
  --ws-heading: Georgia, serif;
}
.ws-skip {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 50;
  background: var(--ws-paper);
  padding: 0.5rem 1rem;
  transform: translateY(-200%);
}
.ws-skip:focus {
  transform: none;
}
.ws-header {
  position: relative;
}
.ws-header,
.ws-footer {
  padding: 1.5rem var(--ws-space);
  border-bottom: 1px solid var(--ws-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.ws-wordmark {
  font: 600 1.4rem/1.2 var(--ws-body);
  text-decoration: none;
  letter-spacing: -0.045em;
}
.ws-header-centered {
  --ws-max: 84rem;
}
.ws-header-centered .ws-header {
  flex-direction: column;
  gap: 1rem;
}
.ws-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.25rem;
}
.ws-nav a {
  text-decoration: none;
}
.ws-nav a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-thickness: 0.12rem;
}
.ws-nav li {
  position: relative;
}
.ws-nav-toggle {
  font: inherit;
  color: inherit;
  border: 0;
  background: transparent;
  padding: 0.3rem 0.4rem;
  cursor: pointer;
}
.ws-submenu {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 15rem;
  padding: 1.25rem;
  background: var(--ws-paper);
  border: 1px solid var(--ws-line);
  box-shadow: 0 1rem 2rem #00000012;
  z-index: 10;
  display: none;
}
.ws-submenu ul {
  display: grid;
  gap: 0.9rem;
}
.ws-submenu-mega {
  min-width: min(36rem, 85vw);
}
.ws-submenu-mega > ul {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ws-nav-toggle[aria-expanded="true"] + .ws-submenu {
  display: block;
}
.ws-nav-utility {
  font-size: var(--ws-small);
  color: var(--ws-muted);
  margin-bottom: 0.6rem;
}
.ws-mobile {
  flex: 0 0 auto;
  display: none;
}
.website-system main {
  max-width: var(--ws-max);
  margin: auto;
  padding: 0 var(--ws-space) 5rem;
}
.ws-content {
  display: grid;
  gap: clamp(2.5rem, 6vw, 6rem);
}
.ws-section {
  min-width: 0;
}
.ws-section:has(.ws-prose) + .ws-section:has(.ws-prose) {
  margin-top: -1rem;
}
.ws-page-heading {
  max-width: 56rem;
  margin: 4rem auto 2rem;
}
.ws-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: var(--ws-small);
  color: var(--ws-muted);
  font-weight: 600;
}
.ws-intro {
  font-size: var(--ws-large);
  max-width: 48rem;
}
.ws-hero {
  padding: 4rem 0 1rem;
}
.ws-hero-editorial > div {
  max-width: 64rem;
  margin-bottom: 3rem;
}
.ws-hero-editorial figure img {
  max-height: 36rem;
  object-fit: cover;
  aspect-ratio: 16/9;
}
.ws-hero-split {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
  gap: 3rem;
}
.ws-hero-split h1 {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}
.ws-hero-split img {
  aspect-ratio: 4/5;
  object-fit: cover;
}
.ws-hero-compact {
  max-width: 54rem;
  margin: auto;
  padding: 3rem 0 0;
}
.ws-prose {
  max-width: 48rem;
  margin-inline: auto;
}
.ws-prose p,
.ws-prose li {
  font-size: 1.1rem;
}
.ws-prose > figure {
  margin-block: 2.5rem;
}
.ws-prose blockquote {
  border-left: 0.25rem solid var(--ws-accent);
  margin: 2rem 0;
  padding: 1rem 1.5rem;
  font-size: var(--ws-large);
}
.ws-table-scroll {
  overflow: auto;
  margin-block: 2rem;
}
.website-system table {
  border-collapse: collapse;
  width: 100%;
  background: var(--ws-paper);
  font-size: var(--ws-small);
}
.website-system th,
.website-system td {
  border-bottom: 1px solid var(--ws-line);
  padding: 1rem;
  text-align: left;
  min-width: 7rem;
  vertical-align: top;
}
.website-system th {
  font-weight: 600;
}
.website-system caption {
  font-weight: 600;
  text-align: left;
  padding-bottom: 0.75rem;
}
.ws-callout {
  background: var(--ws-paper);
  padding: 1.5rem;
  border-left: 0.25rem solid var(--ws-accent);
  margin: 2rem 0;
}
.ws-callout h3 {
  margin-top: 0;
}
.ws-prose details {
  border-bottom: 1px solid var(--ws-line);
  padding: 1.2rem 0;
}
.ws-prose summary {
  font-weight: 600;
  cursor: pointer;
}
.ws-prose details p {
  padding-top: 1rem;
}
.ws-button {
  display: inline-flex;
  align-items: center;
  gap: 2rem;
  background: var(--ws-accent);
  color: var(--ws-on-strong);
  border: 1px solid var(--ws-accent);
  border-radius: var(--ws-radius);
  padding: 0.9rem 1.3rem;
  font-weight: 600;
  text-decoration: none;
}
.ws-button span {
  display: inline-block;
  transition: transform 0.2s ease;
}
.ws-button:hover span {
  transform: translateX(0.3rem);
}
.ws-cta {
  padding: 2.5rem;
  background: var(--ws-paper);
  border: 1px solid var(--ws-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.ws-cta h2 {
  margin-top: 0;
}
.ws-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.ws-cards article {
  border-top: 1px solid var(--ws-ink);
  padding: 1.5rem 0;
}
.ws-cards h3 {
  margin: 0.6rem 0 1rem;
}
.ws-cards h3 a {
  text-decoration: none;
}
.ws-collection nav {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
}
.ws-collection-compact .ws-cards {
  grid-template-columns: 1fr;
}
.ws-collection-compact article {
  display: grid;
  grid-template-columns: 1fr 2fr;
  column-gap: 2rem;
}
.ws-collection-service .ws-cards article {
  background: var(--ws-paper);
  padding: 1.5rem;
  border: 1px solid var(--ws-line);
}
.ws-image-text {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.ws-image-text-right figure {
  order: 2;
}
.ws-image-text h2 {
  margin-top: 0;
}
.ws-toc {
  margin: 2rem auto;
  max-width: 48rem;
  border-block: 1px solid var(--ws-line);
  padding: 1rem 0;
}
.ws-toc summary {
  cursor: pointer;
  font-weight: 600;
}
.ws-toc a {
  font-size: var(--ws-small);
}
.ws-editorial-meta {
  max-width: 48rem;
  margin: 1rem auto;
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  color: var(--ws-muted);
  font-size: var(--ws-small);
}
.ws-sources {
  margin-top: 3rem;
}
.ws-footer {
  border-top: 1px solid var(--ws-line);
  border-bottom: 0;
  background: var(--ws-paper);
  padding-block: 3rem;
}
.ws-footer-columns .ws-footer {
  align-items: start;
}
.ws-footer-columns .ws-nav-footer > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ws-footer nav[aria-label="Languages"] {
  display: flex;
  gap: 1rem;
}
.ws-nav-breadcrumbs {
  font-size: var(--ws-small);
  margin-top: 1.5rem;
}
.ws-family-local-craft {
  --ws-radius: 0.7rem;
  --ws-heading: WebsiteSans, system-ui, sans-serif;
  --ws-title: clamp(2.5rem, 5vw, 4.5rem);
  --ws-max: 72rem;
}
.ws-family-local-craft .ws-hero {
  padding-block: 3rem;
}
.ws-family-local-craft .ws-cards article {
  background: var(--ws-paper);
  padding: 1.5rem;
  border-radius: var(--ws-radius);
  border: 1px solid var(--ws-line);
}
.ws-family-local-craft .ws-cta {
  border-radius: var(--ws-radius);
  background: var(--ws-accent);
  color: var(--ws-bg);
}
.ws-family-local-craft .ws-cta .ws-button {
  background: var(--ws-bg);
  color: var(--ws-accent);
}
.ws-family-local-craft .ws-header {
  padding-block: 1.75rem;
}
.ws-quote-form {
  display: grid;
  gap: 1rem;
}
.ws-quote-form label {
  display: grid;
  gap: 0.4rem;
}
.ws-quote-form input,
.ws-quote-form textarea,
.ws-calculator input,
.ws-calculator select {
  width: 100%;
  border: 1px solid var(--ws-line);
  border-radius: var(--ws-radius);
  background: var(--ws-paper);
  color: var(--ws-ink);
  padding: 0.7rem;
  font: inherit;
}
.ws-quote-form textarea {
  min-height: 8rem;
}
.ws-quote-form .ws-consent {
  display: flex;
  align-items: start;
  gap: 0.75rem;
}
.ws-consent input {
  width: auto;
  margin-top: 0.5rem;
}
.ws-honeypot {
  display: none;
}
.ws-quote-form button {
  font: inherit;
  cursor: pointer;
}
.ws-calculator {
  padding: 1.5rem;
  background: var(--ws-paper);
  border: 1px solid var(--ws-line);
  border-radius: var(--ws-radius);
}
.ws-calculator label {
  display: grid;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.ws-calculator output {
  font-weight: 600;
  font-size: var(--ws-large);
  display: block;
  padding: 1rem 0;
}
/* Job picker: choice tiles with an icon, a cost field with a slider, and a two-figure result */
.ws-services {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
}
.ws-services legend {
  margin-bottom: 0.75rem;
  padding: 0;
  font-weight: 600;
}
.ws-service {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 1rem 0.5rem;
  border: 1px solid var(--ws-line);
  border-radius: var(--ws-radius);
  background: var(--ws-paper);
  font-size: 0.875rem;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
}
.ws-service input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ws-service:has(input:checked) {
  border-color: var(--ws-ink);
  box-shadow: inset 0 0 0 1px var(--ws-ink);
}
.ws-service:has(input:focus-visible) {
  outline: 0.18rem solid var(--ws-accent);
  outline-offset: 0.18rem;
}
.ws-range {
  width: 100%;
  margin: 0 0 0.5rem;
  accent-color: var(--ws-ink);
}
.ws-calculator-hint {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
}
.ws-calculator-result:not(:empty) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.ws-calculator-result > span {
  display: grid;
  gap: 0.25rem;
}
.ws-calculator-result > span > span {
  font-size: 0.8125rem;
  font-weight: 500;
}
.ws-calculator-result strong {
  font-size: var(--ws-large);
  font-variant-numeric: tabular-nums;
}
@media (max-width: 56rem) {
  .ws-desktop {
    display: none;
  }
  .ws-mobile {
    display: block;
  }
  .ws-header-centered .ws-header {
    flex-direction: row;
  }
  .ws-mobile > summary {
    cursor: pointer;
    list-style: none;
    border: 1px solid var(--ws-line);
    padding: 0.5rem 1rem;
  }
  .ws-mobile > nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 5rem;
    background: var(--ws-paper);
    padding: 1.5rem;
    z-index: 20;
    border-bottom: 1px solid var(--ws-line);
  }
  .ws-mobile ul {
    display: grid;
    gap: 1rem;
  }
  .ws-mobile .ws-submenu {
    position: static;
    box-shadow: none;
    border: 0;
    padding: 0.75rem 0 0.25rem 1rem;
  }
  .ws-hero-split,
  .ws-image-text {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .ws-image-text-right figure {
    order: 0;
  }
  .ws-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ws-cta,
  .ws-footer {
    flex-direction: column;
    align-items: start;
  }
  .ws-hero {
    padding-top: 2.5rem;
  }
  .ws-hero-split img {
    aspect-ratio: 16/11;
  }
  .ws-page-heading {
    margin-top: 2.5rem;
  }
}
@media (max-width: 36rem) {
  .ws-cards {
    grid-template-columns: 1fr;
  }
  .ws-collection-compact article {
    display: block;
  }
  .ws-cta {
    padding: 1.5rem;
  }
  .ws-submenu-mega > ul {
    grid-template-columns: 1fr;
  }
  .ws-hero-editorial figure img {
    aspect-ratio: 4/3;
  }
  .website-system main {
    padding-bottom: 3rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .website-system * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

.website-system .ws-logo {
  width: auto;
  max-height: 2.5rem;
}
.ws-layout-wide .ws-prose {
  max-width: 64rem;
}
.ws-layout-landing .ws-page-heading {
  text-align: center;
}
.ws-layout-sidebar .ws-toc {
  max-width: 100%;
}
.ws-header-minimal .ws-header {
  border-bottom: 0;
  padding-block: 1rem;
}
.ws-footer-minimal .ws-footer {
  padding-block: 1.5rem;
}

.ws-nav-parent[data-dismissed="true"] > .ws-submenu {
  display: none;
}
.website-system .ws-button:hover {
  color: var(--ws-on-strong);
}
.ws-family-local-craft .ws-cta .ws-button:hover {
  color: var(--ws-accent);
}

.ws-review-notice {
  font-size: var(--ws-small);
  margin-top: 1.5rem;
  color: var(--ws-muted);
}
.ws-cards figure {
  margin-bottom: 1.25rem;
}
.ws-cards figure img {
  aspect-ratio: 16/10;
  object-fit: cover;
}
.ws-cards figcaption {
  font-size: 0.75rem;
}

.website-system img {
  object-position: var(--ws-image-x, 50%) var(--ws-image-y, 50%);
}

.ws-opening {
  margin-bottom: clamp(2.5rem, 6vw, 6rem);
}
.website-system main:has(.ws-editorial-meta) .ws-opening {
  margin-bottom: 1rem;
}

.ui-static-accordion {
  border-bottom: 1px solid var(--ws-line, var(--border));
}
.ui-static-accordion .ui-static-accordion-heading {
  margin: 0;
  font: inherit;
}
.ui-static-accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 0;
  width: 100%;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.ui-static-accordion-chevron {
  flex-shrink: 0;
  transition: transform 0.25s ease;
}
.ui-static-accordion-content {
  display: grid;
  grid-template-rows: 0fr;
  visibility: hidden;
  transition:
    grid-template-rows 0.25s ease,
    visibility 0.25s;
}
.ui-static-accordion-body {
  overflow: hidden;
  min-height: 0;
}
.ui-static-accordion[data-state="open"] > .ui-static-accordion-content {
  grid-template-rows: 1fr;
  visibility: visible;
}
.ui-static-accordion[data-state="open"] .ui-static-accordion-chevron {
  transform: rotate(180deg);
}
.ui-static-accordion[data-variant="editorial"] p {
  padding-bottom: 1rem;
}
.ui-static-accordion[data-variant="navigation"] {
  border: 0;
}
.ui-static-accordion[data-variant="navigation"]
  > .ui-static-accordion-heading
  .ui-static-accordion-trigger {
  white-space: nowrap;
  padding: 0.5rem 1rem;
  border: 1px solid var(--ws-line, var(--border));
}
.ui-static-accordion[data-variant="navigation"] > .ui-static-accordion-content {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: var(--ws-paper, var(--surface));
  z-index: 20;
}
.ui-static-accordion[data-variant="navigation"]
  > .ui-static-accordion-content
  > .ui-static-accordion-body {
  padding-inline: 1.5rem;
}
.ui-static-accordion[data-variant="navigation"][data-state="open"]
  > .ui-static-accordion-content
  > .ui-static-accordion-body {
  padding-block: 1.5rem;
}
@media (prefers-reduced-motion: reduce) {
  .ui-static-accordion-content,
  .ui-static-accordion-chevron {
    transition: none;
  }
}

/*
 * Serif terrace: a calm editorial composition on a warm off-white, set in Instrument Serif over Geist. Very
 * large serif headings end in the italic cut, actions are pills (the theme accent for the main action), one
 * wide rounded photograph sits under the hero, the collection is a dark band of photograph cards and a
 * numbered index beside a still, steps are numbered cards and the form sits beside a photograph on a soft
 * panel. Sections rise into place while scrolling where the browser supports scroll-driven animation.
 */
@font-face {
  font-family: WebsiteSerif;
  src: url("/_website/assets/6ee678c33f388dd7ba59700ebea635deb98821baafd817b09891f7927177f702") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}
.ws-family-serif-terrace {
  --ws-bg: var(--ws-paper);
  --st-1: 0.25rem; --st-2: 0.5rem; --st-3: 0.75rem; --st-4: 1rem; --st-5: 1.25rem; --st-6: 1.5rem; --st-8: 2rem;
  --st-10: 2.5rem; --st-12: 3rem; --st-16: 4rem; --st-20: 5rem; --st-24: 6rem; --st-32: 8rem;
  --st-serif: WebsiteSerif, Georgia, serif;
  --st-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --st-canvas: #fcfbf8;
  --st-panel: #f7f5f0;
  --st-panel-strong: #efebe3;
  --st-night: #1c1b18;
  --st-on-night: #fcfbf8;
  --st-on-night-soft: rgb(252 251 248 / 0.64);
  --st-line: #e3ded4;
  --st-line-strong: #d3cdbf;
  --st-line-night: rgb(252 251 248 / 0.14);
  --st-soft: color-mix(in srgb, var(--ws-ink) 60%, var(--st-canvas));
  --st-text: color-mix(in srgb, var(--ws-ink) 86%, var(--st-canvas));
  --st-action: var(--ws-accent, #5b6142);
  --st-on-action: var(--ws-on-strong, #ffffff);
  --st-radius: 1.25rem;
  --st-radius-lg: 1.75rem;
  --st-frame: 84rem;
  --st-gutter: var(--st-5);
  --st-hero: clamp(3rem, 7.4vw, 6.5rem);
  --st-display: clamp(2.25rem, 4.6vw, 4.5rem);
  --st-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --st-enter: cubic-bezier(0.22, 1, 0.36, 1);
  background: var(--st-canvas);
  color: var(--ws-ink);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 48rem) { .ws-family-serif-terrace { --st-gutter: var(--st-8); } }
@media (min-width: 80rem) { .ws-family-serif-terrace { --st-gutter: var(--st-12); } }
.ws-family-serif-terrace :is(h1, h2, h3, h4) { margin: 0; color: var(--ws-ink); text-wrap: balance; }
.ws-family-serif-terrace :is(h1, h2, .st-display, .st-hero-heading) { font-family: var(--st-serif); font-weight: 400; letter-spacing: -0.02em; }
.ws-family-serif-terrace :is(h3, h4) { font-family: var(--ws-body); font-weight: 500; letter-spacing: -0.02em; }
.ws-family-serif-terrace em { font-style: italic; }
.ws-family-serif-terrace :is(p, li) { text-wrap: pretty; }
.ws-family-serif-terrace img { display: block; max-inline-size: 100%; }
.ws-family-serif-terrace :is(.ws-button span[aria-hidden="true"]) { display: none; }
.ws-family-serif-terrace :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--ws-ink); outline-offset: 3px; }
.ws-family-serif-terrace .st-label { margin: 0 0 var(--st-5); font-size: 0.8125rem; font-weight: 500; color: var(--st-soft); }
.ws-family-serif-terrace .st-hero-heading { font-size: var(--st-hero); line-height: 0.98; letter-spacing: -0.03em; }
.ws-family-serif-terrace .st-display { font-size: var(--st-display); line-height: 1.02; }

/* Pills: the accent for the action, an outline or light pill for the rest */
.ws-family-serif-terrace a.st-button,
.ws-family-serif-terrace .ws-section .ws-button,
.ws-family-serif-terrace .ws-quote-form button {
  display: inline-flex; align-items: center; justify-content: center; min-block-size: 2.75rem; padding: 0 var(--st-6);
  border: 1px solid transparent; border-radius: 999px; font: 500 0.9375rem/1 var(--ws-body); letter-spacing: -0.01em; text-decoration: none; white-space: nowrap;
  cursor: pointer; background: var(--st-action); color: var(--st-on-action); transition: background-color 140ms var(--st-ease), color 140ms var(--st-ease), border-color 140ms var(--st-ease);
}
.ws-family-serif-terrace a.st-button:hover, .ws-family-serif-terrace .ws-section .ws-button:hover, .ws-family-serif-terrace .ws-quote-form button:hover { background: color-mix(in srgb, var(--st-action) 82%, var(--st-night)); color: var(--st-on-action); }
.ws-family-serif-terrace a.st-button[data-tone="outline"] { background: var(--st-canvas); color: var(--ws-ink); border-color: var(--st-line-strong); }
.ws-family-serif-terrace a.st-button[data-tone="outline"]:hover { background: var(--st-panel); color: var(--ws-ink); }
.ws-family-serif-terrace a.st-button[data-tone="light"] { background: var(--st-on-night); color: var(--st-night); }
.ws-family-serif-terrace a.st-button[data-tone="light"]:hover { background: var(--st-panel-strong); color: var(--st-night); }

/* Header: serif brand, links in the middle, two pills */
.ws-family-serif-terrace .st-nav { position: sticky; inset-block-start: 0; z-index: 100; background: color-mix(in srgb, var(--st-canvas) 92%, transparent); border-block-end: 1px solid var(--st-line); backdrop-filter: blur(12px); }
.ws-family-serif-terrace .st-nav-inner { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--st-4); max-inline-size: var(--st-frame); min-block-size: 4.25rem; margin-inline: auto; padding-inline: var(--st-gutter); }
.ws-family-serif-terrace a.st-brand { justify-self: start; display: inline-flex; color: var(--ws-ink); font-family: var(--st-serif); font-size: 1.5rem; letter-spacing: -0.01em; line-height: 1; text-decoration: none; }
.ws-family-serif-terrace .st-logo { block-size: 1.75rem; inline-size: auto; }
.ws-family-serif-terrace .st-nav-list { display: flex; gap: var(--st-1); margin: 0; padding: 0; list-style: none; }
.ws-family-serif-terrace .st-nav-list a { display: block; padding: var(--st-2) var(--st-3); color: var(--st-text); font-size: 0.875rem; font-weight: 500; text-decoration: none; transition: color 140ms var(--st-ease); }
.ws-family-serif-terrace .st-nav-list a:is(:hover, [aria-current="page"]) { color: var(--ws-ink); }
.ws-family-serif-terrace .st-nav-actions { justify-self: end; display: flex; gap: var(--st-2); margin: 0; }
.ws-family-serif-terrace .st-nav-actions a.st-button { min-block-size: 2.375rem; padding-inline: var(--st-4); font-size: 0.875rem; }
.ws-family-serif-terrace .st-nav-mobile { display: none; }

.ws-family-serif-terrace .st-main { max-inline-size: none; margin: 0; padding: 0; overflow-x: clip; }
.ws-family-serif-terrace .st-section { max-inline-size: var(--st-frame); margin-inline: auto; padding: var(--st-24) var(--st-gutter); }
.ws-family-serif-terrace .st-review { max-inline-size: var(--st-frame); margin: 0 auto; padding: var(--st-4) var(--st-gutter); font-size: 0.875rem; }
.ws-family-serif-terrace .ws-nav-breadcrumbs ul { display: flex; flex-wrap: wrap; gap: var(--st-2); margin: 0 0 var(--st-6); padding: 0; font-size: 0.8125rem; color: var(--st-soft); }
.ws-family-serif-terrace .ws-nav-breadcrumbs a { color: inherit; text-decoration: none; }
.ws-family-serif-terrace .ws-nav-breadcrumbs a:hover { color: var(--ws-ink); }
.ws-family-serif-terrace .st-actions { display: flex; flex-wrap: wrap; gap: var(--st-2); margin: var(--st-8) 0 0; }
.ws-family-serif-terrace .st-lede { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--st-text); }

/* Hero: the large serif heading beside its summary, then one wide rounded photograph */
.ws-family-serif-terrace .st-hero-text { display: grid; gap: var(--st-8); padding-block: var(--st-16) var(--st-12); }
.ws-family-serif-terrace .st-hero-aside { max-inline-size: 24rem; }
@media (min-width: 64rem) { .ws-family-serif-terrace .st-hero-text { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--st-16); align-items: end; } }
.ws-family-serif-terrace .st-hero-image { position: relative; max-inline-size: calc(var(--st-frame) + 2 * var(--st-3)); margin: 0 auto; padding-inline: var(--st-3); }
.ws-family-serif-terrace .st-hero-image figure { margin: 0; }
.ws-family-serif-terrace .st-hero-image img { inline-size: 100%; block-size: min(48rem, 78svh); object-fit: cover; object-position: var(--ws-image-x, 50%) var(--ws-image-y, 55%); border-radius: var(--st-radius-lg); }
.ws-family-serif-terrace .st-credit { position: absolute; inset-block-end: var(--st-4); inset-inline-end: calc(var(--st-3) + var(--st-4)); margin: 0; padding: var(--st-1) var(--st-3); border-radius: 999px; background: rgb(252 251 248 / 0.85); font-size: 0.6875rem; color: var(--st-text); }

/* Statement: one large serif sentence that fades to grey, then a wide photograph */
.ws-family-serif-terrace .st-statement { display: grid; }
.ws-family-serif-terrace .st-statement-text { max-inline-size: 64rem; margin: 0; font-family: var(--st-serif); font-size: clamp(2rem, 3.8vw, 3.5rem); line-height: 1.1; letter-spacing: -0.015em; color: var(--st-soft); }
.ws-family-serif-terrace .st-statement-text span { color: var(--ws-ink); }
.ws-family-serif-terrace .st-statement-image { margin-block-start: var(--st-16); }
.ws-family-serif-terrace .st-statement-image figure { margin: 0; }
.ws-family-serif-terrace .st-statement-image img { inline-size: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--st-radius); }

/* Dark band: a centred very large heading over photograph cards */
.ws-family-serif-terrace .st-band { background: var(--st-night); color: var(--st-on-night); }
.ws-family-serif-terrace .st-band-inner { max-inline-size: var(--st-frame); margin: 0 auto; padding: var(--st-32) var(--st-gutter) var(--st-24); }
.ws-family-serif-terrace .st-band-head { display: grid; justify-items: center; margin-block-end: var(--st-20); text-align: center; }
.ws-family-serif-terrace .st-band .st-label { color: var(--st-on-night-soft); }
.ws-family-serif-terrace .st-band .st-hero-heading { max-inline-size: 64rem; color: var(--st-on-night); }
.ws-family-serif-terrace .st-band .st-actions { justify-content: center; margin-block-start: var(--st-10); }
.ws-family-serif-terrace .st-gallery { display: grid; gap: var(--st-12) var(--st-5); margin: 0; padding: 0; list-style: none; }
@media (min-width: 40rem) { .ws-family-serif-terrace .st-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64rem) { .ws-family-serif-terrace .st-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ws-family-serif-terrace .st-gallery a { display: grid; gap: var(--st-2); color: var(--st-on-night); text-decoration: none; }
.ws-family-serif-terrace .st-gallery figure { margin: 0 0 var(--st-3); border-radius: var(--st-radius); overflow: hidden; }
.ws-family-serif-terrace .st-gallery img { inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 0; transition: transform 600ms var(--st-enter); }
.ws-family-serif-terrace .st-gallery a:hover img { transform: scale(1.04); }
.ws-family-serif-terrace .st-gallery-text { display: flex; justify-content: space-between; align-items: baseline; gap: var(--st-4); }
.ws-family-serif-terrace .st-gallery-title { font-size: 1.375rem; font-weight: 500; line-height: 1.2; letter-spacing: -0.02em; }
.ws-family-serif-terrace .st-gallery-number { font: 500 0.75rem/1 var(--st-mono); color: var(--st-on-night-soft); }
.ws-family-serif-terrace .st-gallery-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.875rem; line-height: 1.5; color: var(--st-on-night-soft); }
.ws-family-serif-terrace .st-band :focus-visible { outline-color: var(--st-on-night); }
.ws-family-serif-terrace .st-band .st-pagination a { color: var(--st-on-night); }

/* Index: numbered rows with a small photograph, beside a large still */
.ws-family-serif-terrace .st-collection[data-hub="true"] { padding-block-start: var(--st-8); }
.ws-family-serif-terrace .st-index { display: grid; gap: var(--st-12); }
.ws-family-serif-terrace .st-index-list { display: grid; margin: 0; padding: 0; list-style: none; border-block-start: 1px solid var(--st-line); }
.ws-family-serif-terrace .st-index-list li { border-block-end: 1px solid var(--st-line); }
.ws-family-serif-terrace .st-index-list a { display: grid; grid-template-columns: 2.25rem 5rem minmax(0, 1fr); align-items: center; gap: var(--st-5); padding-block: var(--st-5); color: var(--ws-ink); text-decoration: none; }
.ws-family-serif-terrace .st-index-number { align-self: start; padding-block-start: var(--st-2); font: 500 0.75rem/1.4 var(--st-mono); color: var(--st-soft); font-variant-numeric: tabular-nums; }
.ws-family-serif-terrace .st-index-list figure { margin: 0; border-radius: 0.75rem; overflow: hidden; }
.ws-family-serif-terrace .st-index-list img { inline-size: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 0; }
.ws-family-serif-terrace .st-index-text { display: grid; gap: var(--st-1); }
.ws-family-serif-terrace .st-index-title { font-family: var(--st-serif); font-size: clamp(1.625rem, 2.6vw, 2.25rem); line-height: 1.05; letter-spacing: -0.015em; }
.ws-family-serif-terrace .st-index-list a:hover .st-index-title { font-style: italic; }
.ws-family-serif-terrace .st-index-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.875rem; line-height: 1.5; color: var(--st-soft); }
.ws-family-serif-terrace .st-index-action { display: none; }
.ws-family-serif-terrace .st-index-feature { display: none; }
@media (min-width: 64rem) {
  .ws-family-serif-terrace .st-index[data-feature="true"] { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--st-16); align-items: start; }
  .ws-family-serif-terrace .st-index-list a { grid-template-columns: 2.5rem 6rem minmax(0, 1fr) auto; gap: var(--st-6); padding-block: var(--st-6); }
  .ws-family-serif-terrace .st-index-action { display: block; padding: var(--st-2) var(--st-4); border: 1px solid var(--st-line-strong); border-radius: 999px; font-size: 0.8125rem; font-weight: 500; color: var(--st-text); transition: background-color 140ms var(--st-ease); }
  .ws-family-serif-terrace .st-index-list a:hover .st-index-action { background: var(--st-panel); color: var(--ws-ink); }
  .ws-family-serif-terrace .st-index-feature { position: sticky; inset-block-start: var(--st-24); display: block; }
  .ws-family-serif-terrace .st-index-feature figure { margin: 0; }
  .ws-family-serif-terrace .st-index-feature img { inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--st-radius); }
}
.ws-family-serif-terrace .st-related { display: grid; gap: var(--st-12); }
.ws-family-serif-terrace .st-pagination { display: flex; gap: var(--st-6); margin-block-start: var(--st-8); font-weight: 500; }

/* Lead: numbered step cards beside the heading, then the form beside a photograph on a soft panel */
.ws-family-serif-terrace .st-lead-wrap { scroll-margin-top: var(--st-16); }
.ws-family-serif-terrace .st-process { display: grid; gap: var(--st-12); }
.ws-family-serif-terrace .st-process .st-display { scroll-margin-top: var(--st-24); }
@media (min-width: 64rem) { .ws-family-serif-terrace .st-process { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--st-16); align-items: start; } .ws-family-serif-terrace .st-process-head { position: sticky; inset-block-start: var(--st-24); } }
.ws-family-serif-terrace .st-steps { display: grid; gap: var(--st-4); margin: 0; padding: 0; list-style: none; }
.ws-family-serif-terrace .st-steps li { display: grid; gap: var(--st-3); padding: var(--st-8); border-radius: var(--st-radius-lg); background: var(--st-panel); }
.ws-family-serif-terrace .st-step-label { margin-block-end: var(--st-6); font: 500 0.6875rem/1.4 var(--st-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--st-soft); }
.ws-family-serif-terrace .st-step-title { font-family: var(--st-serif); font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1; letter-spacing: -0.015em; }
.ws-family-serif-terrace .st-step-body { max-inline-size: 30rem; font-size: 0.9375rem; line-height: 1.55; color: var(--st-text); }
.ws-family-serif-terrace .st-visit { padding-block-start: 0; max-inline-size: calc(var(--st-frame) + 2 * var(--st-3)); padding-inline: var(--st-3); }
.ws-family-serif-terrace .st-visit-panel { display: grid; overflow: hidden; border-radius: var(--st-radius-lg); background: var(--st-panel); }
.ws-family-serif-terrace .st-visit-image figure { block-size: 100%; margin: 0; }
.ws-family-serif-terrace .st-visit-image img { inline-size: 100%; block-size: 100%; min-block-size: 18rem; object-fit: cover; border-radius: 0; }
.ws-family-serif-terrace .st-visit-form { display: grid; align-content: center; padding: var(--st-12) var(--st-gutter); }
.ws-family-serif-terrace .st-visit-form h3 { margin: 0 0 var(--st-8); font-family: var(--st-serif); font-size: clamp(2.25rem, 4vw, 3.5rem); font-weight: 400; line-height: 1; letter-spacing: -0.02em; scroll-margin-top: var(--st-24); }
@media (min-width: 64rem) {
  .ws-family-serif-terrace .st-visit-panel[data-image="true"] { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-block-size: 40rem; }
  .ws-family-serif-terrace .st-visit-form { padding: var(--st-16); }
}

/* Form fields */
.ws-family-serif-terrace :is(.ws-quote-form, .ws-calculator) :is(input, select, textarea) {
  inline-size: 100%; min-block-size: 2.875rem; padding: var(--st-2) var(--st-4); border: 1px solid var(--st-line-strong); border-radius: 0.75rem;
  background: var(--st-canvas); color: var(--ws-ink); font: 400 0.9375rem/1.4 var(--ws-body); transition: border-color 140ms var(--st-ease), box-shadow 140ms var(--st-ease);
}
.ws-family-serif-terrace :is(.ws-quote-form, .ws-calculator) :is(input, select, textarea):focus { outline: none; border-color: var(--ws-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--st-action) 20%, transparent); }
.ws-family-serif-terrace .ws-quote-form { display: grid; gap: var(--st-4); margin: 0; }
.ws-family-serif-terrace .ws-quote-form label { display: grid; gap: var(--st-2); font-size: 0.8125rem; font-weight: 500; color: var(--st-text); }
.ws-family-serif-terrace .ws-quote-form textarea { min-block-size: 8rem; resize: vertical; }
.ws-family-serif-terrace .ws-quote-form > p:not([role="status"]) { margin: 0; font-size: 0.8125rem; line-height: 1.55; color: var(--st-soft); }
.ws-family-serif-terrace .ws-quote-form .ws-consent { display: flex; align-items: flex-start; gap: var(--st-3); font-size: 0.8125rem; font-weight: 400; line-height: 1.5; }
.ws-family-serif-terrace .ws-quote-form .ws-consent input { inline-size: 1rem; min-block-size: 1rem; block-size: 1rem; margin-block-start: 0.2rem; padding: 0; accent-color: var(--st-action); }
.ws-family-serif-terrace .ws-quote-form > small { display: none; }
.ws-family-serif-terrace .ws-quote-form button { inline-size: 100%; min-block-size: 3rem; }
@media (min-width: 40rem) {
  .ws-family-serif-terrace .ws-quote-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ws-family-serif-terrace .ws-quote-form > :not(label:nth-of-type(-n + 4)) { grid-column: 1 / -1; }
}

/* FAQ */
.ws-family-serif-terrace .st-faq { display: grid; gap: var(--st-10); }
.ws-family-serif-terrace .st-faq-list { border-block-start: 1px solid var(--st-line); }
.ws-family-serif-terrace .st-faq-list .ui-static-accordion { border: 0; border-block-end: 1px solid var(--st-line); border-radius: 0; }
.ws-family-serif-terrace .st-faq-list .ui-static-accordion-heading { margin: 0; font-size: 1.0625rem; font-weight: 500; }
.ws-family-serif-terrace .st-faq-list .ui-static-accordion-trigger { display: flex; justify-content: space-between; align-items: center; gap: var(--st-4); inline-size: 100%; min-block-size: 4.5rem; padding: var(--st-5) 0; border: 0; background: none; color: var(--ws-ink); font: inherit; font-weight: 500; text-align: start; cursor: pointer; }
.ws-family-serif-terrace .st-faq-list .ui-static-accordion-body p { max-inline-size: 42rem; margin: 0; padding-block-end: var(--st-6); color: var(--st-text); }
@media (min-width: 64rem) {
  .ws-family-serif-terrace .st-main > .st-faq { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--st-16); align-items: start; }
  .ws-family-serif-terrace .st-main > .st-faq > .st-faq-head { position: sticky; inset-block-start: var(--st-24); }
}

/* Closing: a very large centred serif heading with one action */
.ws-family-serif-terrace .st-closing { display: grid; justify-items: center; padding-block: var(--st-24) var(--st-32); text-align: center; }
.ws-family-serif-terrace .st-closing .st-hero-heading { max-inline-size: 64rem; }
.ws-family-serif-terrace .st-closing > p:not(.st-label, .st-actions) { max-inline-size: 32rem; margin: var(--st-8) 0 0; color: var(--st-text); }
.ws-family-serif-terrace .st-closing .st-actions { justify-content: center; margin-block-start: var(--st-10); }

/* Title block and cover for the hub and the guides */
.ws-family-serif-terrace .st-title-block { padding-block: var(--st-16) var(--st-12); }
.ws-family-serif-terrace .st-title-block h1 { max-inline-size: 64rem; font-size: clamp(2.75rem, 6.4vw, 5.75rem); line-height: 0.98; letter-spacing: -0.03em; }
.ws-family-serif-terrace .st-title-block .st-lede { max-inline-size: 40rem; margin-block-start: var(--st-8); font-size: 1.125rem; }
.ws-family-serif-terrace .st-meta { display: flex; flex-wrap: wrap; gap: var(--st-1) var(--st-5); margin: var(--st-6) 0 0; font-size: 0.8125rem; color: var(--st-soft); }
.ws-family-serif-terrace .st-meta span:first-child { padding: 0 var(--st-3); border: 1px solid var(--st-line-strong); border-radius: 999px; color: var(--ws-ink); }
.ws-family-serif-terrace .st-cover { max-inline-size: calc(var(--st-frame) + 2 * var(--st-3)); margin: 0 auto; padding-inline: var(--st-3); }
.ws-family-serif-terrace .st-cover figure { margin: 0; }
.ws-family-serif-terrace .st-cover img { inline-size: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--st-radius-lg); }
.ws-family-serif-terrace .st-cover figcaption { padding: var(--st-2) var(--st-2) 0; font-size: 0.75rem; color: var(--st-soft); text-align: end; }

/* Reading: contents rail beside one serif-headed column */
.ws-family-serif-terrace .st-article { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--st-10); padding-block-start: var(--st-16); }
@media (min-width: 64rem) { .ws-family-serif-terrace .st-article { grid-template-columns: 15rem minmax(0, 44rem); justify-content: space-between; align-items: start; } }
.ws-family-serif-terrace .st-rail { display: none; }
@media (min-width: 64rem) {
  .ws-family-serif-terrace .st-rail { position: sticky; inset-block-start: var(--st-24); display: grid; gap: var(--st-8); }
  .ws-family-serif-terrace .st-toc-mobile { display: none; }
}
.ws-family-serif-terrace .st-toc-title { margin: 0 0 var(--st-3); font-size: 0.8125rem; font-weight: 500; color: var(--st-soft); }
.ws-family-serif-terrace :is(.st-toc, .st-toc-mobile) ol { display: grid; margin: 0; padding: 0; list-style: none; }
.ws-family-serif-terrace .st-toc li + li { border-block-start: 1px solid var(--st-line); }
.ws-family-serif-terrace :is(.st-toc, .st-toc-mobile) a { display: block; padding: var(--st-2) 0; font-size: 0.875rem; line-height: 1.4; color: var(--st-text); text-decoration: none; }
.ws-family-serif-terrace :is(.st-toc, .st-toc-mobile) a:hover { color: var(--ws-ink); text-decoration: underline; text-underline-offset: 0.2em; }
.ws-family-serif-terrace a.st-button.st-rail-action { inline-size: 100%; }
.ws-family-serif-terrace .st-toc-mobile { border-block: 1px solid var(--st-line); }
.ws-family-serif-terrace .st-toc-mobile .ui-static-accordion { border: 0; }
.ws-family-serif-terrace .st-toc-mobile .ui-static-accordion-heading { margin: 0; font-family: var(--ws-body); font-size: 0.9375rem; letter-spacing: 0; }
.ws-family-serif-terrace .st-toc-mobile .ui-static-accordion-trigger { display: flex; justify-content: space-between; align-items: center; inline-size: 100%; min-block-size: 3rem; padding: 0; border: 0; background: none; color: var(--ws-ink); font: inherit; font-weight: 500; cursor: pointer; }
.ws-family-serif-terrace .st-toc-mobile ol { margin-block-end: var(--st-4); }
/* One shrinkable column, so wide tables scroll inside their own box instead of widening the page. */
.ws-family-serif-terrace .st-read { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--st-6); min-inline-size: 0; }
.ws-family-serif-terrace .st-read .st-section { max-inline-size: none; min-inline-size: 0; margin-inline: 0; padding: 0; border: 0; }
.ws-family-serif-terrace .st-intro { margin: 0; font-size: 1.25rem; line-height: 1.55; color: var(--ws-ink); }
.ws-family-serif-terrace .st-read .ws-prose { color: var(--st-text); font-size: 1.0625rem; line-height: 1.75; }
.ws-family-serif-terrace .st-read .ws-prose > :first-child { margin-block-start: 0; }
.ws-family-serif-terrace .st-read .ws-prose :is(p, ul, ol) { margin-block: 0 var(--st-5); }
.ws-family-serif-terrace .st-read .ws-prose h2 { margin: var(--st-16) 0 var(--st-5); font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1.04; scroll-margin-top: var(--st-24); }
/* Venue and topic headings open a ruled block. */
.ws-family-serif-terrace .st-read .ws-prose h3 { margin: var(--st-10) 0 var(--st-3); padding-block-start: var(--st-5); border-block-start: 1px solid var(--st-line); font-size: 1.25rem; line-height: 1.3; scroll-margin-top: var(--st-24); }
.ws-family-serif-terrace .st-read .ws-prose h4 { margin: var(--st-6) 0 var(--st-2); font-size: 1.0625rem; }
.ws-family-serif-terrace .st-read .ws-prose strong { color: var(--ws-ink); font-weight: 600; }
.ws-family-serif-terrace .ws-prose a { color: var(--ws-ink); text-decoration: underline; text-decoration-color: var(--st-line-strong); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.ws-family-serif-terrace .ws-prose a:hover { text-decoration-color: var(--ws-ink); }
.ws-family-serif-terrace .ws-prose li { margin-block-end: var(--st-2); }
.ws-family-serif-terrace .ws-prose blockquote { margin: var(--st-6) 0; padding: var(--st-5) var(--st-6); border: 0; border-radius: var(--st-radius); background: var(--st-panel); font-size: 0.9375rem; }
.ws-family-serif-terrace .ws-prose blockquote > :last-child { margin-block-end: 0; }
.ws-family-serif-terrace .ws-prose > figure img { border-radius: var(--st-radius); }
.ws-family-serif-terrace .ws-table-scroll { margin: var(--st-6) 0; border: 1px solid var(--st-line); border-radius: var(--st-radius); overflow-x: auto; }
.ws-family-serif-terrace .ws-table-scroll table { inline-size: 100%; border-collapse: collapse; font-size: 0.875rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
.ws-family-serif-terrace .ws-table-scroll caption { padding: var(--st-4) var(--st-5) var(--st-2); font-weight: 500; text-align: start; color: var(--ws-ink); }
/* Words never break mid-word: a table that needs more room scrolls sideways instead. */
.ws-family-serif-terrace .ws-table-scroll :is(th, td) { min-inline-size: 6rem; padding: var(--st-3) var(--st-5); border-block-end: 1px solid var(--st-line); text-align: start; vertical-align: top; overflow-wrap: normal; word-break: normal; }
.ws-family-serif-terrace .ws-table-scroll th { background: var(--st-panel); color: var(--ws-ink); font-weight: 500; }
.ws-family-serif-terrace .ws-table-scroll tr:last-child td { border-block-end: 0; }
.ws-family-serif-terrace .st-inline-cta { margin: 0; }
.ws-family-serif-terrace .st-read .st-lead-wrap { display: grid; gap: var(--st-6); margin-block-start: var(--st-10); }
.ws-family-serif-terrace .st-read .st-process { grid-template-columns: minmax(0, 1fr); gap: var(--st-6); }
.ws-family-serif-terrace .st-read .st-process-head { position: static; }
.ws-family-serif-terrace .st-read .st-display { font-size: clamp(2rem, 3.2vw, 2.75rem); }
.ws-family-serif-terrace .st-read .st-steps li { padding: var(--st-6); }
.ws-family-serif-terrace .st-read .st-step-label { margin-block-end: var(--st-2); }
.ws-family-serif-terrace .st-read .st-step-title { font-size: 1.75rem; }
.ws-family-serif-terrace .st-read .st-visit-panel { grid-template-columns: minmax(0, 1fr); min-block-size: 0; }
.ws-family-serif-terrace .st-read .st-visit-image { display: none; }
.ws-family-serif-terrace .st-read .st-visit-form { padding: var(--st-6); }
.ws-family-serif-terrace .st-read .st-visit-form h3 { font-size: clamp(1.75rem, 2.6vw, 2.25rem); }
.ws-family-serif-terrace .st-read .st-faq { grid-template-columns: minmax(0, 1fr); gap: var(--st-6); margin-block-start: var(--st-10); }
.ws-family-serif-terrace .st-sources { margin-block-start: var(--st-6); padding-block-start: var(--st-6); border-block-start: 1px solid var(--st-line); font-size: 0.875rem; color: var(--st-soft); }
.ws-family-serif-terrace .st-sources h2 { margin: 0 0 var(--st-3); font-family: var(--ws-body); font-size: 0.9375rem; font-weight: 500; letter-spacing: 0; }
.ws-family-serif-terrace .st-sources ul { display: grid; gap: var(--st-2); margin: 0; padding: 0; list-style: none; }
.ws-family-serif-terrace .st-sources a { color: var(--st-text); }
/* The homepage's sources follow the closing as a short footnote, not a full section. */
.ws-family-serif-terrace .st-main > .st-content:has(> .st-sources) { padding-block: 0 var(--st-8); }

/* Footer: dark, the name and tagline in serif */
.ws-family-serif-terrace .st-footer { background: var(--st-night); color: var(--st-on-night); }
.ws-family-serif-terrace .st-footer-inner { display: grid; gap: var(--st-16); max-inline-size: var(--st-frame); margin: 0 auto; padding: var(--st-24) var(--st-gutter) var(--st-8); }
.ws-family-serif-terrace a.st-footer-brand { color: var(--st-on-night); font-family: var(--st-serif); font-size: 1.5rem; text-decoration: none; }
.ws-family-serif-terrace .st-footer-tagline { max-inline-size: 34rem; margin: var(--st-6) 0 0; font-family: var(--st-serif); font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 1; color: var(--st-on-night); }
.ws-family-serif-terrace .st-footer-columns { display: grid; gap: var(--st-10); }
.ws-family-serif-terrace .st-footer-title { margin: 0 0 var(--st-4); font-size: 0.8125rem; color: var(--st-on-night-soft); }
.ws-family-serif-terrace .st-footer-title a { color: inherit; text-decoration: none; }
.ws-family-serif-terrace .st-footer-list { display: grid; gap: var(--st-3); margin: 0; padding: 0; list-style: none; font-size: 0.9375rem; line-height: 1.4; }
.ws-family-serif-terrace .st-footer-list a { color: var(--st-on-night); text-decoration: none; }
.ws-family-serif-terrace .st-footer-list a:hover, .ws-family-serif-terrace .st-footer-title a:hover { color: var(--st-on-night); text-decoration: underline; }
.ws-family-serif-terrace .st-footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--st-2) var(--st-8); margin: 0; padding-block-start: var(--st-6); border-block-start: 1px solid var(--st-line-night); font-size: 0.75rem; color: var(--st-on-night-soft); }
.ws-family-serif-terrace .st-footer :focus-visible { outline-color: var(--st-on-night); }
@media (min-width: 48rem) {
  .ws-family-serif-terrace .st-footer-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
  .ws-family-serif-terrace .st-footer-group .st-footer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--st-6); }
}
/* Footer links keep whole words; long lists get the widest column. */
.ws-family-serif-terrace .st-footer-list { overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (min-width: 64rem) {
  .ws-family-serif-terrace .st-footer-columns { grid-template-columns: minmax(0, 0.8fr) minmax(0, 2.6fr) minmax(0, 1.2fr); }
  .ws-family-serif-terrace .st-footer-group .st-footer-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 80rem) {
  .ws-family-serif-terrace .st-footer-inner { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); }
  .ws-family-serif-terrace .st-footer-base { grid-column: 1 / -1; }
}

/* The shared link hover colour would turn card text and links on dark surfaces to the accent; keep their own colours. */
.ws-family-serif-terrace :is(.st-gallery a, a.st-footer-brand):hover { color: var(--st-on-night); }
.ws-family-serif-terrace :is(.st-index-list a, a.st-brand):hover { color: var(--ws-ink); }

/* Sections rise into place once while scrolling, where scroll-driven animation is supported. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .ws-family-serif-terrace :is(.st-reveal, .st-gallery > li, .st-steps > li, .st-index-list > li) {
      animation: st-rise linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }
  }
}
@keyframes st-rise { from { opacity: 0; transform: translateY(1.5rem); } to { opacity: 1; transform: none; } }

/* Mobile action, hidden on wide screens */
.ws-family-serif-terrace a.st-button.st-sticky-action { display: none; }

@media (max-width: 56rem) {
  .ws-family-serif-terrace .st-nav-inner { grid-template-columns: minmax(0, 1fr) auto; min-block-size: 3.75rem; }
  .ws-family-serif-terrace :is(.st-nav-links, .st-nav-actions) { display: none; }
  .ws-family-serif-terrace .st-nav-mobile { display: block; }
  .ws-family-serif-terrace .st-nav-mobile .ui-static-accordion { position: static; border: 0; }
  .ws-family-serif-terrace .st-nav-mobile .ui-static-accordion-heading { margin: 0; font-family: var(--ws-body); font-size: 0.9375rem; letter-spacing: 0; }
  .ws-family-serif-terrace .st-nav-mobile .ui-static-accordion-trigger { display: inline-flex; align-items: center; gap: var(--st-2); min-block-size: 2.5rem; padding: 0 var(--st-4); border: 1px solid var(--st-line-strong); border-radius: 999px; background: var(--st-canvas); color: var(--ws-ink); font: 500 0.875rem/1 var(--ws-body); cursor: pointer; }
  .ws-family-serif-terrace .st-nav-mobile .ui-static-accordion-content { position: absolute; inset-inline: 0; inset-block-start: 100%; background: var(--st-canvas); border-block-end: 1px solid var(--st-line); box-shadow: 0 16px 32px -12px rgb(28 27 24 / 0.18); }
  .ws-family-serif-terrace .st-nav-mobile .ui-static-accordion-body { padding: var(--st-2) var(--st-5) var(--st-5); }
  .ws-family-serif-terrace .st-menu-list { display: grid; margin: 0; padding: 0; list-style: none; }
  .ws-family-serif-terrace .st-menu-list a { display: block; padding: var(--st-4) 0; border-block-end: 1px solid var(--st-line); color: var(--ws-ink); font-size: 1.0625rem; font-weight: 500; text-decoration: none; }
  .ws-family-serif-terrace a.st-button.st-sticky-action { position: fixed; z-index: 90; inset-inline: var(--st-4); inset-block-end: var(--st-4); display: flex; min-block-size: 3rem; border-color: rgb(255 255 255 / 0.28); box-shadow: 0 12px 32px -12px rgb(28 27 24 / 0.4); }
  .ws-family-serif-terrace .st-footer-inner { padding-block-end: var(--st-24); }
}
@media (max-width: 40rem) {
  .ws-family-serif-terrace .st-section { padding-block: var(--st-16); }
  .ws-family-serif-terrace .st-hero-text { padding-block: var(--st-10) var(--st-8); }
  .ws-family-serif-terrace .st-hero-heading { font-size: 3.25rem; line-height: 0.98; }
  .ws-family-serif-terrace .st-actions { display: grid; inline-size: 100%; }
  .ws-family-serif-terrace .st-hero-image { padding-inline: var(--st-2); }
  .ws-family-serif-terrace .st-hero-image img { block-size: auto; aspect-ratio: 4 / 5; border-radius: var(--st-radius); }
  .ws-family-serif-terrace .st-credit { inset-inline-end: var(--st-4); }
  .ws-family-serif-terrace .st-statement-image img { aspect-ratio: 4 / 3; }
  .ws-family-serif-terrace .st-band-inner { padding-block: var(--st-20) var(--st-16); }
  .ws-family-serif-terrace .st-band-head { margin-block-end: var(--st-12); }
  .ws-family-serif-terrace .st-index-list a { grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--st-4); }
  .ws-family-serif-terrace .st-index-number { display: none; }
  .ws-family-serif-terrace .st-index-title { font-size: 1.5rem; }
  .ws-family-serif-terrace .st-steps li { padding: var(--st-6); }
  .ws-family-serif-terrace .st-visit { padding-inline: var(--st-2); }
  .ws-family-serif-terrace .st-visit-panel { border-radius: var(--st-radius); }
  .ws-family-serif-terrace .st-visit-form { padding: var(--st-8) var(--st-4); }
  .ws-family-serif-terrace .st-closing { padding-block: var(--st-16) var(--st-20); }
  .ws-family-serif-terrace .st-title-block { padding-block: var(--st-10) var(--st-8); }
  .ws-family-serif-terrace .st-title-block h1 { font-size: 2.75rem; line-height: 1; }
  .ws-family-serif-terrace .st-cover { padding-inline: var(--st-2); }
  .ws-family-serif-terrace .st-cover img { aspect-ratio: 4 / 3; border-radius: var(--st-radius); }
  .ws-family-serif-terrace .st-article { padding-block-start: var(--st-8); }
  .ws-family-serif-terrace .st-read .st-visit-form { padding: var(--st-5) var(--st-4); }
  .ws-family-serif-terrace .ws-table-scroll :is(th, td) { min-inline-size: 5.5rem; padding: var(--st-3); }
  .ws-family-serif-terrace .ws-table-scroll :is(th, td):first-child { min-inline-size: 8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ws-family-serif-terrace * { transition: none !important; }
  .ws-family-serif-terrace .st-gallery a:hover img { transform: none; }
}

/* Discovery is the default palette and can be explicitly restored inside a branded theme. */
:root,
.ui-theme[data-theme="discovery"],
.ui-theme[data-purpose="interface"] {
  --interface-accent-dark-ink: #000;
  --interface-accent-light-ink: #fff;
  --danger: #a13a35;
  --warning: #946c23;
  --danger-soft: #fbedeb;
  --background: #ffffff;
  --surface: #fff;
  --ink: #101827;
  --muted: #235a55;
  --border: #d7cec4;
  --accent: #235a55;
  --accent-soft: #e3ebea;
  --on-strong: #fff;
  --badge-background: #e8e6e0;
  --preview-background: #e3ebea;
  --preview-border: #d7cec4;
  --on-strong-muted: #e3ebea;
  --connector: #d7cec4;
  --notice-border: #e3ebea;
  --notice-foreground: #235a55;
}

.ui-theme {
  --dialog-backdrop: color-mix(in srgb, var(--ink) 45%, transparent);
  color: var(--ink);
  background: var(--background);
  /* Recompute derived tokens at the theme boundary instead of inheriting
     root-computed aliases, so sidebars and shadows follow runtime colors. */
  --sidebar-background: var(--background);
  --sidebar-border: var(--border);
  --sidebar-active: var(--accent-soft);
  --sidebar-active-foreground: var(--accent);
  --overlay-surface: var(--surface);
  --shell-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 5%, transparent);
  --select-shadow: 0 4px 12px color-mix(in srgb, var(--ink) 12%, transparent);
}

.ui-theme[data-purpose="interface"][data-theme="custom"][data-appearance="light"] {
  --accent-soft: color-mix(in srgb, var(--accent) 10%, var(--background));
}

.ui-theme input[type="checkbox"],
.ui-theme input[type="radio"] {
  accent-color: var(--accent);
}

.ui-theme[data-appearance="dark"] {
  color-scheme: dark;
  --dialog-backdrop: hsl(240 4% 2% / 45%);
  /* Light foreground-derived shadows look like a glow on dark surfaces. */
  --shell-shadow: none;
  --select-shadow: none;
  --view-toggle-shadow: none;
  --background: hsl(240 4% 10%);
  --surface: hsl(240 4% 8%);
  --overlay-surface: var(--surface);
  --ink: #ededed;
  --muted: #a3a3a3;
  --border: hsl(240 4% 19%);
  --sidebar-border: hsl(240 4% 16%);
  /* Keep the brand accent on text, icons, borders and focus rings;
     neutral surface tokens prevent the dark UI from taking on the accent colour. */
  --accent: #a0bdbb;
  --accent-soft: hsl(240 4% 19%);
  --sidebar-active: color-mix(in srgb, var(--accent) 14%, var(--sidebar-background));
  --sidebar-active-foreground: var(--accent);
  --danger: #f19c95;
  --danger-soft: #472b29;
  --warning: #e6c17b;
  --on-strong: hsl(240 4% 10%);
  --badge-background: hsl(240 4% 11.5%);
  --preview-background: hsl(240 4% 11.5%);
  --preview-border: hsl(240 4% 19%);
  --on-strong-muted: #bfbfbf;
  --connector: #737373;
  --notice-border: #404040;
  --notice-foreground: #d4d4d4;
}
.ui-theme[data-theme="custom"][data-appearance="dark"] {
  --accent: color-mix(in srgb, var(--brand-dark-accent, #235a55) 65%, var(--ink));
}
.ui-theme[data-appearance="light"] { color-scheme: light; }

:root, .ui-theme {
  --toast-error-surface: #fff;
  --toast-error-foreground: #182e29;
  --toast-error-border: #dfe6e2;
  --toast-error-hover: #f7f9f8;
  --http-get: #176744;
  --http-get-soft: #e5f5ec;
  --http-post: #2059ac;
  --http-post-soft: #e7efff;
  --http-put: #8b570a;
  --http-put-soft: #fff1d6;
  --http-patch: #7540a4;
  --http-patch-soft: #f2e9fb;
  --http-delete: #ac333f;
  --http-delete-soft: #fde9ec;
  --http-head: #146775;
  --http-head-soft: #e0f4f7;
  --http-options: #536176;
  --http-options-soft: #edf0f5;
  --code-background: #f6f8fc;
  --code-foreground: #263348;
  --code-comment: #64748b;
  --code-keyword: #8e3baa;
  --code-string: #12674c;
  --code-function: #245fba;
  --code-property: #a33b55;
  --code-number: #98500f;
}
.ui-theme[data-appearance="dark"] {
  --toast-error-surface: hsl(240 4% 8%);
  --toast-error-foreground: #ededed;
  --toast-error-border: hsl(240 4% 19%);
  --toast-error-hover: hsl(240 4% 10%);
  --http-get: #83dfac;
  --http-get-soft: #193b2b;
  --http-post: #8fbaff;
  --http-post-soft: #1e3253;
  --http-put: #f3c577;
  --http-put-soft: #43341c;
  --http-patch: #d1a6fa;
  --http-patch-soft: #39264d;
  --http-delete: #ff9ba9;
  --http-delete-soft: #492630;
  --http-head: #86d9e6;
  --http-head-soft: #183b43;
  --http-options: #bdcadf;
  --http-options-soft: #2c3441;
  --code-background: #252a33;
  --code-foreground: #dbe6f5;
  --code-comment: #91a1b8;
  --code-keyword: #d4a5ff;
  --code-string: #8bd5ae;
  --code-function: #91bdff;
  --code-property: #f3a5b7;
  --code-number: #f2bf87;
}

/* Button states follow each theme boundary, including validated brand palettes. */
:root, .ui-theme {
  /* Deep brand surfaces and raised pale tiles echo the social-sharing artwork. */
  --brand-cta-start: color-mix(in srgb, var(--accent) 82%, #000);
  --brand-cta-middle: color-mix(in srgb, var(--accent) 60%, #000);
  --brand-cta-end: color-mix(in srgb, var(--accent) 35%, #000);
  --brand-cta-foreground: var(--on-strong);
  --brand-cta-button-foreground: color-mix(in srgb, var(--accent) 60%, #000);
  --brand-cta-muted: color-mix(in srgb, var(--on-strong) 78%, transparent);
  --brand-cta-glow: color-mix(in srgb, var(--accent-soft) 16%, transparent);
  --brand-cta-outline: color-mix(in srgb, var(--on-strong) 8%, transparent);
  --brand-cta-tile-start: #fff;
  --brand-cta-tile-end: color-mix(in srgb, var(--accent-soft) 55%, #fff);
  --brand-cta-tile-depth: color-mix(in srgb, var(--accent) 68%, #000);
  --brand-cta-shadow: color-mix(in srgb, #000 42%, transparent);
  --color-picker-black: #000000;
  --color-picker-white: #ffffff;
  --button-outline-background: transparent;
  --button-outline-border: var(--border);
  --button-outline-hover-background: var(--border);
  --button-outline-hover-border: var(--border);
  --button-primary-background: var(--accent);
  --button-primary-hover-shadow:
    0px 1px 3px 0px color-mix(in srgb, var(--ink) 8%, transparent),
    inset 1px 1px 4px 0px color-mix(in srgb, var(--on-strong) 5%, transparent),
    0px 3px 8px 0px color-mix(in srgb, var(--button-primary-background) 16%, transparent),
    inset 0px -2px 4px 0px color-mix(in srgb, var(--ink) 6%, transparent);
  --button-primary-hover-background: color-mix(in srgb, var(--accent) 88%, var(--ink) 12%);
  --button-secondary-background: var(--surface);
  --button-secondary-hover-background: color-mix(in srgb, var(--surface) 94%, var(--ink) 6%);
  --button-ghost-hover-background: color-mix(in srgb, var(--ink) 6%, transparent);
}

/* Self-contained website design palettes; revisions freeze these semantic tokens. */
.website[data-template="conversion-canvas"] {
  color-scheme: light;
  --background: #faf9f6;
  --surface: #ffffff;
  --ink: #1c2823;
  --muted: #5a6962;
  --border: #e2e6df;
  --accent: #2d6a4f;
  --accent-soft: #edf4ee;
  --on-strong: #ffffff;
}
.website[data-template="guide-spotlight"] {
  color-scheme: dark;
  --background: #0e0e0f;
  --surface: #181819;
  --ink: #f1efeb;
  --muted: #a5a3a0;
  --border: #303031;
  --accent: #ff9a62;
  --accent-soft: #25201e;
  --on-strong: #0e0e0f;
}

/* Reusable acquisition design palettes. Runtime brand values map through semantic tokens. */
.source-layout[data-layout="conversion-canvas"] {
  --on-strong: white;
  --background: #FAFAF7;
  --ref-bg: var(--background, #FAFAF7);
  --surface: #FFFFFF;
  --ref-bg-card: var(--surface, #FFFFFF);
  --ref-bg-warm: #F5F2EC;
  --ink: #0A0A0A;
  --ref-ink: var(--ink, #0A0A0A);
  --muted: #6B6B6B;
  --ref-ink-mid: var(--muted, #6B6B6B);
  --ref-ink-soft: #9C9C9C;
  --ref-ink-faint: #C7C4BE;
  --border: #E8E5DF;
  --ref-line: var(--border, #E8E5DF);
  --ref-line-soft: #F0EDE7;
  --accent: #2D6A4F;
  --ref-green: var(--accent, #2D6A4F);
  --ref-green-dark: #1B4332;
  --ref-green-soft: #D8F3DC;
  --accent-soft: #EDF7F0;
  --ref-green-wash: var(--accent-soft, #EDF7F0);
  --ref-orange: #F4A261;
  --ref-orange-dark: #E76F51;
  --ref-gold: #D4A574;
  --ref-error: #DC2626;
  --ref-error-soft: #FEE2E2;
  --reference-color-conversion-canvas-1: white;
  --reference-color-conversion-canvas-2: color-mix(in srgb, var(--background) 88%, transparent);
  --reference-color-conversion-canvas-3: rgba(0,0,0,0.03);
  --reference-color-conversion-canvas-4: color-mix(in srgb, var(--accent) 8%, transparent);
  --reference-color-conversion-canvas-5: color-mix(in srgb, var(--accent) 25%, transparent);
  --reference-color-conversion-canvas-6: color-mix(in srgb, var(--accent) 20%, transparent);
  --reference-color-conversion-canvas-7: color-mix(in srgb, var(--accent) 35%, transparent);
  --reference-color-conversion-canvas-8: color-mix(in srgb, var(--accent) 8%, transparent);
  --reference-color-conversion-canvas-9: #1B4332;
  --reference-color-conversion-canvas-10: #14352B;
  --reference-color-conversion-canvas-11: rgba(27, 67, 50, 0.25);
  --reference-color-conversion-canvas-12: rgba(27, 67, 50, 0.15);
  --reference-color-conversion-canvas-13: #E8B07C;
  --reference-color-conversion-canvas-14: rgba(232, 176, 124, 0.08);
  --reference-color-conversion-canvas-15: rgba(232, 176, 124, 0.12);
  --reference-color-conversion-canvas-16: rgba(255,255,255,0.78);
  --reference-color-conversion-canvas-17: rgba(255,255,255,0.08);
  --reference-color-conversion-canvas-18: rgba(255,255,255,0.15);
  --reference-color-conversion-canvas-19: rgba(255,255,255,0.5);
  --reference-color-conversion-canvas-20: rgba(255,255,255,0.12);
  --reference-color-conversion-canvas-21: rgba(232, 176, 124, 0.15);
  --reference-color-conversion-canvas-22: #FCA5A5;
  --reference-color-conversion-canvas-23: rgba(220, 38, 38, 0.15);
  --reference-color-conversion-canvas-24: rgba(232, 176, 124, 0.25);
  --reference-color-conversion-canvas-25: #D49862;
  --reference-color-conversion-canvas-26: rgba(232, 176, 124, 0.35);
  --reference-color-conversion-canvas-27: rgba(255,255,255,0.7);
  --reference-color-conversion-canvas-28: rgba(255,255,255,0.75);
  --reference-color-conversion-canvas-29: rgba(232, 176, 124, 0.45);
  --reference-color-conversion-canvas-30: rgba(232, 176, 124, 0);
  --reference-color-conversion-canvas-31: rgba(255,255,255,0.65);
  --reference-color-conversion-canvas-32: rgba(255,255,255,0.55);
  --reference-color-conversion-canvas-33: rgba(255,255,255,0.06);
  --reference-color-conversion-canvas-34: rgba(232, 176, 124, 0.4);
  --reference-color-conversion-canvas-35: rgba(232, 176, 124, 0.2);
  --reference-color-conversion-canvas-36: rgba(255,255,255,0.3);
  --reference-color-conversion-canvas-37: rgba(255,255,255,0.4);
  --reference-color-conversion-canvas-38: rgba(255,255,255,0.1);
  --reference-color-conversion-canvas-39: rgba(255,255,255,0.04);
  --reference-color-conversion-canvas-40: rgba(255,255,255,0.2);
  --reference-color-conversion-canvas-41: rgba(0,0,0,0.7);
  --reference-color-conversion-canvas-42: rgba(255,255,255,0.6);
  --reference-color-conversion-canvas-43: rgba(27, 67, 50, 0.35);
  --reference-color-conversion-canvas-44: rgba(10,10,10,0.7);
  --reference-color-conversion-canvas-45: rgba(0,0,0,0.08);
  --reference-color-conversion-canvas-46: color-mix(in srgb, var(--accent) 10%, transparent);
  --reference-color-conversion-canvas-47: rgba(0,0,0,0.04);
  --reference-color-conversion-canvas-48: #6FCF87;
}
.source-layout[data-layout="guide-spotlight"] {
  --background: #0E0E0F;
  --ref-bg: var(--background, #0E0E0F);
  --surface: #161618;
  --ref-bg-elevated: var(--surface, #161618);
  --ref-bg-subtle: #1C1C1F;
  --ref-bg-overlay: color-mix(in srgb, var(--accent) 4%, transparent);
  --ink: #F5F5F4;
  --ref-text: var(--ink, #F5F5F4);
  --muted: #A8A8A8;
  --ref-text-muted: var(--muted, #A8A8A8);
  --ref-text-fade: #6B6B6B;
  --border: #2A2A2C;
  --ref-line: var(--border, #2A2A2C);
  --ref-line-strong: #3A3A3D;
  --accent: #FFB347;
  --ref-accent: var(--accent, #FFB347);
  --ref-accent-glow: color-mix(in srgb, var(--accent) 15%, transparent);
  --accent-soft: color-mix(in srgb, var(--accent) 8%, transparent);
  --ref-accent-soft: var(--accent-soft, color-mix(in srgb, var(--accent) 8%, transparent));
  --ref-cyan: #7DD3FC;
  --ref-max-w: 720px;
  --ref-max-w-wide: 1080px;
  --reference-color-guide-spotlight-1: rgba(168, 168, 168, 0.4);
  --reference-color-guide-spotlight-2: rgba(14, 14, 15, 0.7);
  --reference-color-guide-spotlight-3: #FF8C42;
  --reference-color-guide-spotlight-4: #1F1A12;
  --reference-color-guide-spotlight-5: white;
}

/* Default dark actions retain the Sjögräs brand colour; text and focus use the lifted accent. */
.ui-theme[data-theme="discovery"][data-appearance="dark"] {
  --button-primary-background: #235a55;
  --button-primary-hover-background: color-mix(in srgb, #235a55 88%, #101827 12%);
}
.ui-theme[data-theme="discovery"][data-appearance="dark"] .button-dark { color: #fff; }

:root {
  --field-error-ring-width: 3px;

  /* Shared corner geometry: surfaces and controls use one global radius. */
  --radius: 0.5rem;
  --radius-small: calc(var(--radius) * 0.75);
  --avatar-upload-size: 4.5rem;
  --description-font-size: 0.8125rem;
  --description-font-weight: 400;
  --description-line-height: 1.5;
  --tooltip-max-width: 16rem;
  --page-title-size: 1.375rem;
  --brand-wordmark-font-size: 1.3125rem;
  --page-title-tracking: var(--heading-tracking);
  --page-title-gap: 0.375rem;
  --page-heading-spacing: 1.25rem;
  --sidebar-width: 14rem;
  --sidebar-collapsed-width: 3rem;
  --sidebar-background: var(--background);
  --sidebar-border: var(--border);
  --sidebar-border-width: 1px;
  --sidebar-rail-padding: 0.375rem;
  --sidebar-nav-icon-size: 1.125rem;
  --sidebar-header-separator-height: 1rem;
  --sidebar-active: var(--accent-soft);
  --shell-header-height: 3rem;
  --shell-gap: 0.75rem;
  --shell-content-padding: 1.5rem;
  --shell-content-padding-inline: 1rem;
  --shell-mobile-padding: 1rem;
  --shell-mobile-padding-inline: 0.75rem;
  --sidebar-padding: 0.75rem;
  --sidebar-section-gap: 0.5rem;
  --sidebar-nav-gap: 0.25rem;
  --sidebar-item-padding-block: 0.5rem;
  --sidebar-item-height: 2.5rem;
  --sidebar-font-size: 0.75rem;
  --sidebar-caption-size: 0.625rem;
  --sidebar-toggle-icon-size: 1rem;
  --account-avatar-size: 2rem;
  --account-avatar-radius: var(--radius);
  --sidebar-scope-exit-ms: 150ms;
  --sidebar-scope-enter-ms: 220ms;
  --sidebar-scope-offset: -0.75rem;
  --sidebar-scope-exit-easing: cubic-bezier(0.4, 0, 1, 1);
  --sidebar-scope-enter-easing: cubic-bezier(0.22, 1, 0.36, 1);
  --form-save-motion: 300ms;
  --save-button-width: 8rem;
  --search-filter-width: 8rem;
  --search-list-height: 24rem;
  --sidebar-width-ms: 240ms;
  --interaction-feedback-ms: 120ms;
  --brand-navigation-motion: 360ms;
  --brand-label-motion: 240ms;
  --brand-page-motion: 380ms;
  --brand-label-offset: 0.65em;
  --brand-page-offset: 0.75rem;
  --announcement-hover-motion: 240ms ease-in-out;
  --sidebar-hover-transition: var(--interaction-feedback-ms) ease-in-out;
  --sidebar-hover-properties: background-color var(--sidebar-hover-transition), color var(--sidebar-hover-transition);
  --sidebar-transition: var(--sidebar-width-ms) cubic-bezier(0.22, 1, 0.36, 1);
  --sidebar-content-exit-ms: 88ms;
  --sidebar-enter-after-exit-ms: 20ms;
  --sidebar-waterfall-stagger-ms: 34ms;
  --sidebar-waterfall-item-ms: 130ms;
  --sidebar-rail-stagger-ms: 22ms;
  --sidebar-rail-item-ms: 105ms;
  --sidebar-content-offset: -0.75rem;
  --sidebar-rail-offset: -0.5rem;
  --sidebar-enter-easing: cubic-bezier(0.22, 1, 0.36, 1);
  --sidebar-exit-easing: cubic-bezier(0.4, 0, 0.85, 1);
  --shell-radius: var(--radius);
  --shell-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 5%, transparent);
  --view-toggle-shadow: 0 1px 2px color-mix(in srgb, var(--ink) 12%, transparent);
  --control-height: 2.25rem;
  --control-font-size: 0.875rem;
  --control-font-family: var(--font-body);
  --control-font-weight: 400;
  --control-line-height: 1.5;
  --control-focus-ring: 0 0 0 var(--field-error-ring-width) color-mix(in srgb, var(--accent) 15%, transparent);
  --control-padding: 0.625rem;
  --control-radius: var(--radius);
  --select-height: var(--control-height);
  --select-font-size: var(--control-font-size);
  --select-padding: var(--control-padding);
  --select-gap: 0.5rem;
  --select-radius: var(--control-radius);
  --select-item-radius: var(--radius-small);
  --select-list-padding: 0.25rem;
  --select-option-height: 2rem;
  --select-option-end-padding: 2rem;
  --select-list-height: 18rem;
  --select-popup-chrome-height: 4.5rem;
  --select-shadow: 0 4px 12px color-mix(in srgb, var(--ink) 12%, transparent);
  --dialog-backdrop: color-mix(in srgb, var(--ink) 45%, transparent);
  --layer-overlay: 50;
  --layer-dialog: 60;
  --layer-popover: 70;
  /* Consent remains actionable above public-site navigation and sticky actions. */
  --layer-consent: 110;
  --breadcrumb-switcher-width: 15rem;
  --breadcrumb-switch-size: 1.25rem;
  --breadcrumb-switch-icon-size: 0.75rem;
  --breadcrumb-switcher-option-height: 1.75rem;
  --breadcrumb-entity-width: 12rem;
  --breadcrumb-text-padding: 0.125rem;
  --breadcrumb-line-height: 1.5;
  --breadcrumb-gap: 0.5rem;
  --sheet-width: 36rem;
  --sheet-transition: 180ms;
  --entity-grid-min: 17rem;
  --entity-grid-gap: 1rem;
  --entity-card-transition: 220ms cubic-bezier(0.22, 1, 0.36, 1);
  --role-card-icon-size: 2.5rem;
  --integration-logo-size: 2rem;
  --role-scope-width: 24rem;
  --provisioning-notice-width: 60ch;
  --dialog-resize-duration: 300ms;
  --dialog-width: 40rem;
  --dialog-wide-width: 64rem;
  --dialog-edge: 1rem;
  --dialog-padding: 1.5rem;
  --dialog-footer-padding: 1rem;
  --dialog-title-size: 1.25rem;
  --menu-width: 12rem;
  --menu-max-width: 22rem;
  --menu-enter-ms: 180ms;
  --menu-exit-ms: 120ms;
  --menu-motion-offset: 0.25rem;
  --menu-motion-scale: 0.97;
  --menu-enter-easing: cubic-bezier(0.22, 1, 0.36, 1);
  --menu-exit-easing: cubic-bezier(0.4, 0, 1, 1);
  --table-section-gap: 1.75rem;
  --table-font-size: 0.8125rem;
  --table-title-size: 1rem;
  --table-heading-gap: 0.5rem;
  --table-toolbar-padding: 0.75rem;
  --table-search-width: 17rem;
  --table-filter-width: 8rem;
  --table-tool-size: 2rem;
  --table-max-height: 60svh;
  --table-header-height: 2.5rem;
  --table-row-height: 2.75rem;
  --table-compact-padding: 0.625rem;
  --table-cell-padding: 1rem;
  --table-check-width: 2.5rem;
  --table-check-size: 0.9375rem;
  --table-action-width: 3rem;
  --table-badge-block: 0.125rem;
  --table-dot-size: 0.375rem;
  --table-tags-width: 24rem;
  --table-empty-height: 12rem;
  --table-empty-width: 24rem;
  --table-skeleton-width: 7rem;
  --table-skeleton-height: 1rem;
  --table-focus-width: 0.1875rem;
  --button-font-size: 0.875rem;
  --button-line-height: 1.4;
  --button-padding-block: 0.375rem;
  --button-padding-inline: 0.875rem;
  --button-gap: 0.375rem;
  --button-resize-ms: 220ms;
  --button-resize-easing: ease-in-out;
  --button-radius: var(--radius-small);
  --button-font-weight: 500;
  --button-height: 2.125rem;
  --button-large-height: 3.375rem;
  --button-small-height: 1.875rem;
  --button-motion-easing: cubic-bezier(0.14, 0.875, 0.33, 0.915);
  --button-transition: 260ms var(--button-motion-easing);
  --button-ghost-transition: 110ms var(--button-motion-easing);
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--background);
  font-synthesis: none;
}

:root {
  --layer-toast: 80;
  --toast-width: min(356px, calc(100vw - 2rem));
  --toast-padding: 1rem;
  --toast-gap: 0.625rem;
  --toast-text-gap: 0.25rem;
  --toast-icon-size: 1rem;
  --toast-close-size: 1.75rem;
  --toast-close-inset: 0.5rem;
}

:root {
  --language-select-compact-width: 7.5rem;
  --docs-max-width: 100rem;
  --docs-article-width: 58rem;
  --docs-sidebar-width: 16rem;
  --docs-toc-width: 12rem;
  --docs-header-height: 4.25rem;
  --docs-title-size: clamp(2rem, 3vw, 2.75rem);
  --docs-content-gap: 3rem;
  --docs-section-gap: 2.5rem;
  --docs-prose-size: 0.9375rem;
  --docs-code-size: 0.8125rem;
  --docs-line-height: 1.8;
  --docs-anchor-offset: 6rem;
}

:root {
  --accordion-motion: 240ms;
  --accordion-easing: cubic-bezier(0.22, 1, 0.36, 1);
  --http-method-width: 4.5rem;
}

:root { --color-motion: 160ms; --toc-motion: 240ms; --motion-easing: cubic-bezier(0.22, 1, 0.36, 1); --docs-toc-indicator-width: 2px; }

:root { --mcp-consent-width: 42rem; }

:root {
  --checkbox-size: 1.05rem;
  --checkbox-mark-size: 0.7rem;
  --checkbox-radius: 0.4rem;
  --checkbox-border-width: 1.5px;
  --checkbox-focus-width: 2px;
  --checkbox-fill-motion: 150ms;
  --checkbox-draw-motion: 220ms;
  --checkbox-opacity-motion: 80ms;
  --checkbox-draw-easing: cubic-bezier(0.65, 0, 0.35, 1);
}

/* One type scale for both applications. Display and section sizes follow the
   Quotes landing page; compact roles keep dialogs and workspace panels usable. */
:root {
  --font-body: "Figtree", sans-serif;
  --font-heading: "Manrope", sans-serif;
  --heading-weight: 500;
  --heading-tracking: -0.025em;
  --heading-line-height: 1.3;
  --heading-display-size: clamp(3.025rem, 4.8vw, 4.2625rem);
  --heading-display-line-height: 1.05;
  --heading-section-size: clamp(2.3375rem, 3.4vw, 3.09375rem);
  --heading-section-line-height: 1.14;
  --heading-page-size: clamp(1.75rem, 2.5vw, 2rem);
  --heading-auth-size: 1.875rem;
  --heading-title-size: 1.375rem;
  --heading-subtitle-size: 1.125rem;
  --heading-label-size: 0.875rem;
  --heading-caption-size: 0.8125rem;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: var(--heading-weight);
  line-height: var(--heading-line-height);
  letter-spacing: var(--heading-tracking);
  overflow-wrap: break-word;
}
h1 { font-size: var(--heading-page-size); }
h2 { font-size: var(--heading-title-size); }
h3 { font-size: var(--heading-subtitle-size); }
h4 { font-size: var(--heading-label-size); }
h5, h6 { font-size: var(--heading-caption-size); }

/* Public page hierarchy uses the same display scale across Next and TanStack. */
:where(.brand-products, .marketing, .platform-page) h1 {
  font-size: var(--heading-display-size);
  line-height: var(--heading-display-line-height);
}
:where(.brand-products, .marketing, .platform-page) h2 {
  font-size: var(--heading-section-size);
  line-height: var(--heading-section-line-height);
}
:where(.brand-products, .marketing, .platform-page) h3 { font-size: var(--heading-title-size); }
:where(.brand-products, .marketing, .platform-page) h4 { font-size: var(--heading-subtitle-size); }
:where(.brand-products, .marketing, .platform-page) h5 { font-size: var(--heading-label-size); }

.button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  --button-hover-layer: var(--button-outline-hover-background);
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  min-height: var(--button-height);
  justify-self: start;
  align-items: center;
  justify-content: center;
  gap: var(--button-gap);
  padding: var(--button-padding-block) var(--button-padding-inline);
  border: 1px solid var(--button-outline-border);
  border-radius: var(--button-radius);
  background-color: var(--button-outline-background);
  color: var(--ink);
  font-weight: var(--button-font-weight);
  font-size: var(--button-font-size);
  line-height: var(--button-line-height);
  cursor: pointer;
  transition:
    background-color var(--button-transition),
    border-color var(--button-transition),
    color var(--button-transition),
    opacity var(--button-transition),
    box-shadow var(--button-transition);
}
.button-dark {
  --button-hover-layer: var(--button-primary-hover-background);
  background-color: var(--button-primary-background);
  border-color: var(--button-primary-background);
  color: var(--on-strong);
}
@media (hover: hover) {
  .button:not(:disabled):not([aria-disabled="true"]):hover {
    border-color: var(--button-outline-hover-border);
  }
  .button-dark:not(:disabled):not([aria-disabled="true"]):hover {
    border-color: var(--button-primary-hover-background);
  }
  .button-danger-ghost:not(:disabled):not([aria-disabled="true"]):hover {
    border-color: transparent;
  }
}

.button-spinner {
  animation: button-spin 800ms linear infinite;
}
.button:disabled, .button[aria-disabled="true"] {
  opacity: 0.6;
  cursor: not-allowed;
}
@keyframes button-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .button {
    transition: none;
  }
  .button-spinner {
    animation: none;
  }
}

.button-loading-label { position: relative; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
.button-label-hidden { visibility: hidden; }
.button-loading-overlay { position: absolute; inset: 0; display: grid; place-items: center; }
.button-danger-ghost { --button-hover-layer: var(--danger-soft); background-color: transparent; border-color: transparent; color: var(--danger); }

.button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* Both states share a grid cell so request feedback never shifts nearby controls. */
.button-content { display: inline-grid; align-items: center; justify-items: center; }
.button-idle, .button-pending { grid-area: 1 / 1; display: inline-flex; align-items: center; justify-content: center; gap: var(--button-gap); }
.button-idle, .button-pending { transition: opacity var(--button-transition); }
.button-pending { opacity: 0; pointer-events: none; }
.button-content[data-loading="true"] > .button-idle { opacity: 0; }
.button-content[data-loading="true"] > .button-pending { opacity: 1; }
.button-content[data-loading="false"] .button-spinner { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .button-idle, .button-pending { transition: none; }
}
.button-spinner { flex-shrink: 0; }
.button[aria-busy="true"] { cursor: wait; }

.button-ghost { background: transparent; border-color: transparent; }

.button-width-animated { min-width: 0; overflow: hidden; }
.button-width-animated .button-idle { white-space: nowrap; }

.button-outline { box-shadow: none; }

/* Destructive confirmations keep their danger treatment in both appearances. */
.button-danger {
  --button-hover-layer: color-mix(in srgb, var(--danger) 18%, var(--danger-soft));
  background-color: var(--danger-soft);
  border-color: var(--danger);
  color: var(--danger);
}
@media (hover: hover) {
  .button-danger:not(:disabled):not([aria-disabled="true"]):hover {
    border-color: var(--danger);
  }
}
.button-danger:focus-visible,
.button-danger-ghost:focus-visible {
  outline-color: var(--danger);
}

/* Icon controls stay borderless, including hover; keyboard focus uses the shared outline. */
.button-icon { border-color: transparent; box-shadow: none; }
@media (hover: hover) {
  .button-icon:not(:disabled):not([aria-disabled="true"]):hover,
  .button-ghost:not(:disabled):not([aria-disabled="true"]):hover {
    border-color: transparent;
  }
}

.copy-feedback { display: inline-flex; align-items: center; gap: var(--button-gap); position: relative; }
.copy-feedback-stack { display: inline-grid; place-items: center; overflow: hidden; }
.copy-feedback-stack > span { grid-area: 1 / 1; display: inline-flex; align-items: center; transition: transform var(--form-save-motion) var(--motion-easing), opacity var(--form-save-motion) var(--motion-easing); }
.copy-feedback-idle { transform: translateY(0); opacity: 1; }
.copy-feedback-done { transform: translateY(100%); opacity: 0; }
.copy-feedback[data-copied="true"] .copy-feedback-idle { transform: translateY(-100%); opacity: 0; }
.copy-feedback[data-copied="true"] .copy-feedback-done { transform: translateY(0); opacity: 1; }
.copy-feedback-announcement { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) { .copy-feedback-stack > span { transition: none; } }

/* Shared flat treatments for actions and navigation links in either frontend. */
.button-secondary { --button-hover-layer: var(--button-secondary-hover-background); background-color: var(--button-secondary-background); border-color: var(--button-secondary-background); color: var(--ink); }
.button-ghost { --button-hover-layer: var(--button-ghost-hover-background); }
.button[data-size="lg"] { min-height: var(--button-large-height); padding-block: var(--button-padding-inline); }
.button[data-size="sm"] { min-height: var(--button-small-height); padding-block: var(--select-list-padding); }
.button-icon { min-height: var(--control-height); }
@media (hover: hover) {
  .button-secondary:not(:disabled):not([aria-disabled="true"]):hover { border-color: var(--button-secondary-hover-background); color: var(--ink); }
  .button-ghost:not(:disabled):not([aria-disabled="true"]):hover { border-color: transparent; color: var(--ink); }
}
@media (prefers-reduced-motion: reduce) { .button-ghost { transition: none; } }

/* Match the reference's stationary colour/glow transition, without a moving fill.
   Primary actions share this treatment with native .button-dark links. */
@media (hover: hover) {
  .button:not(:disabled):not([aria-disabled="true"]):hover {
    background-color: var(--button-hover-layer);
  }
  .button-dark:not(:disabled):not([aria-disabled="true"]):hover {
    box-shadow: var(--button-primary-hover-shadow);
  }
}

/* Stripe-style chevron-to-arrow motion; the icon slot and label never resize. */
.button-arrow { flex-shrink: 0; overflow: visible; }
.button-arrow-motion { transform: translateX(0); }
.button-arrow-shaft { opacity: 0; }
@media (hover: hover) {
  :where(a, button):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):hover .button-arrow-motion { transform: translateX(6px); }
  :where(a, button):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):hover .button-arrow-shaft { opacity: 1; }
}
:where(a, button):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):focus-visible .button-arrow-motion { transform: translateX(6px); }
:where(a, button):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):focus-visible .button-arrow-shaft { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .button-arrow-motion { transition: transform 300ms cubic-bezier(.25, 1, .5, 1); }
  .button-arrow-shaft { transition: opacity 300ms cubic-bezier(.25, 1, .5, 1); }
}

.cookie-consent, .cookie-consent * { box-sizing: border-box; }
.cookie-consent[data-cookie-sticky-action-space] { padding-block-end: calc(var(--control-height) + var(--shell-content-padding) * 2); }
.cookie-preferences-trigger { display: inline-flex; align-items: center; gap: var(--select-gap); margin: var(--shell-content-padding-inline) var(--shell-content-padding); padding: var(--select-gap) 0; background: transparent; border: 0; color: var(--muted); font: inherit; font-size: var(--control-font-size); cursor: pointer; }
.cookie-preferences-trigger:hover { color: var(--ink); }
.cookie-preferences-trigger[data-cookie-preferences-location="footer"] { margin: 0; padding: 0; min-height: var(--control-height); font-size: inherit; color: inherit; }
/* Keep the standalone trigger as a fallback for pages without an embedded one. */
body:has([data-cookie-preferences-location="footer"]) .cookie-consent[data-cookie-trigger="standalone"] > .cookie-preferences-trigger { display: none; }
.cookie-preferences-trigger:focus-visible { outline: 2px solid var(--accent); outline-offset: var(--select-list-padding); }
.cookie-consent-panel { position: fixed; inset-inline: var(--dialog-edge); bottom: max(var(--shell-content-padding), env(safe-area-inset-bottom)); margin-inline: auto; width: min(var(--dialog-wide-width), calc(100% - var(--dialog-edge) * 2)); max-height: calc(100dvh - var(--dialog-edge) * 2); overflow: auto; display: grid; grid-template-columns: 1fr auto; gap: var(--shell-content-padding-inline); padding: var(--shell-content-padding); background: var(--surface); color: var(--ink); border: 1px solid var(--border); border-radius: var(--control-radius); box-shadow: var(--select-shadow); z-index: var(--layer-consent); animation: cookie-consent-enter var(--menu-enter-ms) var(--menu-enter-easing); }
.cookie-consent-panel[hidden], .cookie-consent-manage[hidden] { display: none; }
.cookie-consent-copy h2 { display: flex; align-items: center; gap: var(--select-gap); margin: 0; font-size: var(--heading-label-size); line-height: var(--heading-line-height); }
.cookie-consent-copy h2 svg { flex-shrink: 0; }
.cookie-consent-copy p, .cookie-consent-manage p { margin-block: var(--select-gap); font-size: var(--control-font-size); color: var(--muted); line-height: var(--body-line-height, 1.5); }
.cookie-consent-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--select-gap); }
.cookie-consent-manage { grid-column: 1 / -1; display: grid; gap: var(--select-gap); padding-block: var(--shell-content-padding-inline); border-block: 1px solid var(--border); }
.cookie-consent-manage :is(label, div) { display: flex; align-items: center; justify-content: space-between; gap: var(--select-gap); font-size: var(--control-font-size); }
.cookie-consent-manage input { accent-color: var(--accent); width: var(--sidebar-nav-icon-size); height: var(--sidebar-nav-icon-size); }
.cookie-consent-manage > button { justify-self: end; }
@keyframes cookie-consent-enter { from { opacity: 0; transform: translateY(var(--menu-motion-offset)); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .cookie-consent-panel { animation: none; } }
.website-system{--ws-muted:#66655f;--ws-accent:#4f5638;--ws-line:#e7e7e1;--ws-paper:#fbfbf9;--ws-on-strong:#ffffff;--ws-bg:#fbfbf9;--ws-ink:#1c1b18}