* { box-sizing: border-box; }
html { background: var(--sf-color-page); color: var(--sf-color-text-primary); font-family: var(--sf-font); line-height: 1.55; overflow-x: clip; }
body { margin: 0; min-width: 0; background: var(--sf-color-page); }
a { color: var(--sf-color-link); text-decoration: underline; text-underline-offset: .15em; }
a:hover { color: var(--sf-color-accent-primary); }
button, a { min-block-size: var(--sf-touch-min); }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--sf-color-focus); outline-offset: 2px; }
.skip-link { position: fixed; z-index: 20; top: -100px; left: var(--sf-space-4); padding: var(--sf-space-3) var(--sf-space-4); background: var(--sf-color-text-primary); color: #fff; border-radius: var(--sf-radius-sm); }
.skip-link:focus { top: var(--sf-space-4); }
h1,h2,h3,p,ul,ol { margin-block: 0; } h1 { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; } h2 { font-size: clamp(1.45rem, 3vw, 2.15rem); line-height: 1.2; } h3 { font-size: clamp(1.1rem, 2vw, 1.35rem); line-height: 1.25; }
p + p { margin-block-start: var(--sf-space-4); } .lead { font-size: clamp(1.05rem, 2vw, 1.25rem); color: var(--sf-color-text-secondary); }
.container { width: min(calc(100% - 32px), var(--sf-container-max)); margin-inline: auto; min-width: 0; }.reading { max-width: var(--sf-reading-max); }.wide { max-width: var(--sf-wide-max); }.main-shell { padding-block-end: var(--sf-space-16); }.content-section { margin-block-start: var(--sf-space-12); }.component { min-width: 0; }
@media (min-width: 640px) { .container { width: min(calc(100% - 48px), var(--sf-container-max)); }.content-section { margin-block-start: var(--sf-space-16); } }
@media (min-width: 1100px) { .container { width: min(calc(100% - 64px), var(--sf-container-max)); } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }

.home-direction-b {
  background: var(--sf-home-primary-background);
  color: var(--sf-home-text-on-light);
}

.home-direction-b :focus-visible {
  outline-color: var(--sf-home-focus);
  outline-width: 3px;
}

.home-direction-b .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}
