*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);font-weight:var(--weight-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;color:var(--text-display);margin:0;text-transform:uppercase;letter-spacing:var(--tracking-display);line-height:var(--leading-display);text-wrap:balance}
h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3);line-height:var(--leading-heading)}h4{font-size:var(--text-h4);line-height:var(--leading-heading)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--gray-300);transition:var(--transition-interactive)}
a:hover{color:var(--text-link-hover);text-decoration-color:currentColor}
a:active{color:var(--accent-press)}
:focus-visible{outline:var(--border-2) solid var(--focus-ring);outline-offset:2px}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--accent);color:var(--text-on-accent)}
hr{border:0;border-top:var(--border-1) solid var(--divider);margin:var(--space-8) 0}
/* --- shared structural utilities used by cards, components and kits --- */
/* The gutter carries the safe-area inset as well as its own value, because the
   page is served viewport-fit=cover (partials/head.php). In LANDSCAPE on a
   notched phone the notch and the rounded corners eat into the left or right
   edge of the viewport, and a flat 24px gutter puts the first character of
   every line underneath them. max() rather than addition: the inset replaces
   the gutter only where it is the larger of the two, so portrait - where both
   insets are 0 - keeps exactly the gutter it always had, and so does every
   desktop browser. */
.hos-container{width:100%;max-width:var(--container);margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
@media (min-width:900px){.hos-container{padding-left:max(var(--gutter-desktop),env(safe-area-inset-left,0px));padding-right:max(var(--gutter-desktop),env(safe-area-inset-right,0px))}}
.hos-eyebrow{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.hos-eyebrow--accent{color:var(--accent-press)}
[data-theme="dark"] .hos-eyebrow--accent{color:var(--accent)}
.hos-hero-type{font-family:var(--font-display);font-size:var(--text-hero);line-height:var(--leading-hero);letter-spacing:var(--tracking-hero);text-transform:uppercase;color:var(--text-display)}
.hos-rule{height:var(--border-3);background:var(--accent);width:56px;border:0}
